Skip to content

Observability

Metrics

The application exposes metrics (via OpenTelemetry's Prometheus exporter) in the Prometheus format at the /metrics endpoint on its own dedicated port, 8081 by default (Metrics__Port). That endpoint only answers on this port - it isn't reachable on the main app port, and the metrics port doesn't serve anything else. Set Metrics__Enabled=false to turn it off.

Note

Metrics are excluded from the project's semantic versioning guarantees.

Grafana dashboard

A ready-to-import Grafana dashboard covering these metrics is available at grafana/fhir-pseudonymizer-dashboard.json. Besides throughput and failures, it shows how long anonymizing takes per resource - comparable across bundle sizes - how much of that is spent waiting for the pseudonymization service, and the .NET runtime's CPU, memory and garbage collection. Its Kafka consumer lag panels require a Kafka exporter scraped by the same Prometheus.

Tracing

Tracing is off by default. Enable it by setting Tracing__Enabled=true; the development compose file starts Jaeger to try it out.