Fluxheim/Docs/Observability

Observability

Use Prometheus and OpenTelemetry to see aggregate traffic, errors, downloads, and page usage without tracking individual visitors.

Prometheus metrics

[metrics]
enabled = true
listen = "127.0.0.1:9100"

OTLP export

FLUXHEIM_OTLP=enabled
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_METRIC_EXPORT_INTERVAL=5000

The observability compose stack sets these for the website service. Set FLUXHEIM_OTLP=disabled to run the same binary without exporting metrics or traces.

Keep labels low-cardinality: route group, language, status class, download artefact, and GitHub target are useful. Raw IP addresses and user identifiers are not.

What to dashboard

SignalWhy it matters
Requests by routeShows which public pages and docs are being used.
Requests by localeShows which languages need the most care.
Status classesShows errors without tracking individual users.
Download clicksShows which release artefacts are useful.
GitHub clicksShows which external project links matter.

Privacy boundary

  • Use aggregate counters and histograms instead of raw request logs.
  • Do not label metrics with IP addresses, user agents, or full URLs.
  • Keep Prometheus and OTLP listeners on loopback or an internal network.
  • Make tracking behaviour visible on the privacy and cookies pages.
English (UK)