Apollo Router instruments
Standard metric instruments for the router's request lifecycle
Standard metric instruments
The Apollo Router provides a set of non-configurable metric instruments that expose detailed information about the Router's request lifecycle.
These instruments can be consumed by configuring a metrics exporter.
HTTP
apollo_router_http_request_duration_seconds_bucket- HTTP router request durationapollo_router_http_request_duration_seconds_bucket- HTTP subgraph request duration, attributes:subgraph: (Optional) The subgraph being queried
apollo_router_http_requests_total- Total number of HTTP requests by HTTP statusapollo_router_timeout- Number of triggered timeoutsapollo_router_http_request_retry_total- Number of subgraph requests retried, attributes:subgraph: The subgraph being queriedstatus: If the retry was aborted (aborted)
Session
apollo_router_session_count_total- Number of currently connected clientsapollo_router_session_count_active- Number of in-flight GraphQL requests
Cache
apollo_router_cache_size— Number of entries in the cacheapollo_router_cache_hit_count- Number of cache hitsapollo_router_cache_miss_count- Number of cache missesapollo_router_cache_hit_time- Time to hit the cache in secondsapollo_router_cache_miss_time- Time to miss the cache in seconds
All cache metrics listed above have the following attributes:
kind: the cache being queried (apq,query planner,introspection)storage: The backend storage of the cache (memory,redis)
Coprocessor
apollo_router_operations_coprocessor_total- Total operations with coprocessors enabled.apollo_router_operations_coprocessor.duration- Time spent waiting for the coprocessor to answer, in seconds.
The coprocessor operations metric has the following attributes:
coprocessor.stage: string (RouterRequest,RouterResponse,SubgraphRequest,SubgraphResponse)coprocessor.succeeded: bool
Performance
apollo_router_processing_time- Time spent processing a request (outside of waiting for external or subgraph requests) in seconds.apollo_router_query_planning_time- Time spent planning queries in seconds.apollo_router_query_planning_warmup_duration- Time spent planning queries in seconds.apollo_router_schema_load_duration- Time spent loading the schema in seconds.
Uplink
apollo_router_uplink_fetch_duration_seconds_bucket- Uplink request duration, attributes:url: The Uplink URL that was polledquery: The query that the router sent to Uplink (SupergraphSdlorLicense)kind: (new,unchanged,http_error,uplink_error)code: The error code depending on type (if an error occurred)error: The error message (if an error occurred)apollo_router_uplink_fetch_count_totalstatus: (success,failure)query: The query that the router sent to Uplink (SupergraphSdlorLicense)
ⓘ NOTE
The initial call to Uplink during router startup is not reflected in metrics.
Subscriptions
apollo_router_opened_subscriptions- Number of different opened subscriptions (not the number of clients with an opened subscriptions in case it's deduplicated)apollo_router_deduplicated_subscriptions_total- Number of subscriptions that has been deduplicatedapollo_router_skipped_event_count- Number of subscription events that has been skipped because too many events have been received from the subgraph but not yet sent to the client.
Batching
apollo.router.operations.batching- A counter of the number of query batches received by the router.apollo.router.operations.batching.size- A histogram tracking the number of queries contained within a query batch.
GraphOS Studio
apollo.router.telemetry.studio.reports- The number of reports submitted to GraphOS Studio by the Router.report.type: The type of report submitted: "traces" or "metrics"