Our solution
OpenTelemetry, built into the router
The router emits OTLP traces and metrics through the OpenTelemetry Go SDK. Configure exporters in router YAML. Enrich signals with attributes from headers or expressions. Control cardinality with built-in limits and regex exclusions.
What happens on every request
The Cosmo Router uses the OpenTelemetry Go SDK to instrument every GraphQL operation.
Traces capture parsing, validation, planning, and execution across each subgraph; metrics follow the R.E.D. method.
Data is exported over OTLP (HTTP or gRPC) to any OTEL-compatible backend.
Multiple exporters can run side-by-side, so the same telemetry can land in Cosmo Cloud, Datadog, Jaeger, and more at once.
W3C Trace Context propagates by default; Jaeger, B3, and Baggage propagation are available as options.
Static resource attributes and dynamic attributes from request headers or expressions enrich every signal.
One router, one config, every OTEL-compatible backend.

