Our solution
GraphQL-aware Prometheus metrics, built in
The router exports R.E.D. metrics for router and subgraph traffic with the GraphQL labels operators actually need. Cardinality is bounded out of the box.
What happens on every request
The router collects R.E.D. metrics via the OpenTelemetry SDK on every request.
A Prometheus exporter publishes them on http://localhost:8088/metrics by default.
Labels carry GraphQL context: wg_operation_name, wg_operation_type, wg_operation_protocol, wg_client_name, wg_client_version, wg_subgraph_name, wg_subgraph_id, and http_status_code.
Prometheus scrapes the endpoint on its configured interval and stores the series.
Grafana queries the series for dashboards; Alertmanager queries them for SLO alerts.
A built-in cardinality limit of 2000 combinations per metric and regex exclusions keep the series count bounded.
Plug Prometheus into the endpoint. Dashboards and alerts follow.

