mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-12 01:30:18 +00:00
Give developers direct access to the full OpenTelemetry metrics API, symmetric with getTracer(), so all seven OTel instrument types (including UpDownCounter, sync Gauge, and the observable variants) are reachable — not just the four beast::insight models. - Telemetry: build and own the metrics pipeline (OTLP HTTP metric exporter + PeriodicExportingMetricReader + SpanMetrics histogram view) alongside the tracer, sharing the same resource attributes and TLS config. Register it globally via metrics::Provider::SetMeterProvider and expose Telemetry::getMeter(). Metrics enable with [telemetry]; the metrics endpoint is derived from the trace endpoint. - beast OTelCollector: no longer owns a pipeline. It fetches the global Meter, becoming a thin shim over the shared provider (legacy path during beast deprecation). This also resolves the review note that the metric exporter ignored [telemetry] use_tls — TLS now comes from the shared telemetry pipeline. - Add a libxrpl unit test covering getMeter() on the enabled (global provider) and disabled (noop) paths, exercising an UpDownCounter. Design: docs/superpowers/specs/2026-07-07-direct-otel-metrics-api-design.md Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>