Story: Observability and telemetry
Table of Contents
This page documents a story in Sprint 07. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Bring up observability and telemetry as first-class components, and drop the MaxMind GeoIP dependency in favour of a permissively licensed alternative.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 07 |
| Now | Completed 2025-12-28. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2025-12-28 |
Continued in: Observability follow-up (sprint 08) — review pass of telemetry, comms analyser, and event viewer; implementations carried forward.
Acceptance
ores.observabilitycomponent present and emitting structured events.ores.telemetrywires trace IDs into logging and exports via OTLP.- MaxMind code path removed; geo lookups served by the new provider.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Create the observability component | DONE | 2026-05-19 | 2025-12-26 | Stand up ores.observability as a peer of ores.logging: structured event capture, retention, query surface. |
| Incorporate new telemetry component | DONE | 2026-05-19 | 2025-12-27 | Wire the new ores.telemetry component into the existing logging path: trace IDs, span IDs, OpenTelemetry export. |
| Replace MaxMind implementation | DONE | 2026-05-19 | 2025-12-28 | Replace the MaxMind-licensed GeoIP backend with a permissively-licensed alternative for the geo lookups used in session tracking. |
Decisions
- Observability and telemetry as separate components
- durable store (observability) vs live trace stream (telemetry); kept distinct.
- Permissive GeoIP only
- MaxMind's licence terms don't match how we want to ship; replacing rather than dual-shipping avoids confusion.
Out of scope
- Building our own OTLP backend; we just emit, we don't store.
See also
None.