Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
@bmatei/apollo-prometheus-exporter
Advanced tools
Plugin for Apollo Server to export metrics in Prometheus format
Plugin for Apollo Server to export metrics in Prometheus format.
It uses prom-client under the hood the export the metrics.
Since Apollo Server released a new major version, a new version (v2.x.y) of the exporter has been launched. Apollo Server v2 is still supported in v1.x.y. The two versions will be features-matched as much as possible.
Name | Description | Type |
---|---|---|
apollo_server_starting | The last timestamp when Apollo Server was starting. | Gauge |
apollo_server_closing | The last timestamp when Apollo Server was closing. | Gauge |
apollo_query_started | The amount of received queries. | Counter |
apollo_query_failed | The amount of queries that failed. | Counter |
apollo_query_parse_started | The amount of queries for which parsing has started. | Counter |
apollo_query_parse_failed | The amount of queries for which parsing has failed. | Counter |
apollo_query_validation_started | The amount of queries for which validation has started. | Counter |
apollo_query_validation_failed | The amount of queries for which validation has failed. | Counter |
apollo_query_resolved | The amount of queries which could be resolved. | Counter |
apollo_query_execution_started | The amount of queries for which execution has started. | Counter |
apollo_query_execution_failed | The amount of queries for which execution has failed. | Counter |
apollo_query_duration | The total duration of a query. | Histogram |
apollo_query_field_resolution_duration | The total duration for resolving fields. | Histogram |
For default metrics, please refer to prom-client default metrics.
Install prom-client
and @bmatei/apollo-prometheus-exporter
npm install prom-client @bmatei/apollo-prometheus-exporter
Create an instance of the plugin
const app = express();
const prometheusExporterPlugin = createPrometheusExporterPlugin({ app });
Add the plugin to ApolloServer
const server = new ApolloServer({
plugins: [prometheusExporterPlugin]
});
For a complete working example, please have a look over the example
project in this repository.
Name | Description | Type | Default Value |
---|---|---|---|
app | Express instance. For the moment it is used for defining the metrics endpoint. It is mandatory unless metricsEndpoint is set to false. | Express | undefined |
defaultLabels | An object containing default labels to be sent with each metric. | Object | {} |
defaultMetrics | Flag to enable/disable the default metrics registered by prom-client . | Boolean | true |
defaultMetricsOptions | Configuration object for the default metrics. | DefaultMetricsCollectorConfiguration | {} |
durationHistogramBuckets | A list of durations that should be used by histograms. | number[] | [0.001, 0.005, 0.015, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 1, 5, 10] |
hostnameLabel | Flag to enable/disable hostname label. | Boolean | true |
hostnameLabelName | The name of the hostname label. | String | hostname |
metricsEndpoint | Flag to enable/disable the metrics endpoint. If you disable this, you can use the registerPrometheusMetricsEndpoint method to enable the metrics endpoint. | Boolean | true |
metricsEndpointPath | HTTP path where the metrics will be published. | String | "/metrics" |
register | Prometheus client registry to be used by Apollo Metrics. By default, it is also used by the default metrics. | Registry | register |
skipMetrics | A key-value map that controls if a metric is enabled or disabled. | SkipMetricsMap | {} |
FAQs
Plugin for Apollo Server to export metrics in Prometheus format
The npm package @bmatei/apollo-prometheus-exporter receives a total of 4,336 weekly downloads. As such, @bmatei/apollo-prometheus-exporter popularity was classified as popular.
We found that @bmatei/apollo-prometheus-exporter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.