zeekay 315dd6578d PromQL reads the event plane, because table names live in one place
Every metric read through PromQL failed with "Database o11y_metrics does not
exist": dashboards, service health, ingest, memory, plane throughput and alert
delivery all returned an error the UI renders as an empty chart. 96 failures in
30 minutes on one pod, every one of them this.

Metrics moved into the one event plane and telemetrymetrics moved with them --
DBName is "event", the tables are series and metric. This package did not,
because it kept its OWN copy of those names, and a copy has no reason to change
when the original does. It went on addressing signoz-era names in a database
that the rename left behind.

So it no longer keeps a copy. databaseName and samplesTableName alias the
telemetrymetrics constants, and the rollup choice is telemetrymetrics'
WhichTSTableToUse -- the same function every other metrics builder calls -- so
one window resolves to one table service-wide instead of two selectors drifting
apart. That also gains the 1-week tier this package never had: a 30-day PromQL
range read the 1-day rollup because the duplicate stopped at 1 day.

The tests assert the rendered SQL. Nothing did before, which is exactly why a
dead database name survived a rename and shipped.
2026-08-06 05:29:55 -07:00
2021-01-24 13:09:49 +05:30
2026-04-23 19:24:27 -07:00
2021-01-03 18:15:44 +05:30
2026-04-23 19:24:27 -07:00

o11y

o11y

Metrics, traces and logs for the Hanzo platform, in one place. OpenTelemetry on the wire, Hanzo Datastore — an OLAP column store — on disk.

License

Run it

cd deploy/docker
docker compose up -d

Open http://localhost:8080. deploy/install.sh does the same thing with a few more checks, and deploy/docker/docker-compose.ha.yaml is the multi-replica variant.

Send it data

The collector listens for OTLP on 4317 (gRPC) and 4318 (HTTP). Point any OpenTelemetry SDK or the OTel Collector at it:

export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318

Traces, metrics and logs land in Datastore and show up under APM, Logs, Traces, Metrics and Exceptions in the UI. Dashboards and alerting are built on the same queries.

What it is for

Every Hanzo service emits here. It is multi-tenant by design: queries scope by org from the X-Org-Id claim in the JWT, on every panel. It sits behind gateway like the other Hanzo subsystems, and mounts under the unified cloud binary per HIP-0106.

   instrumented app  ->  OTLP  ->  o11y collector
                                       |
                                 Hanzo Datastore
                                       |
                             APM | logs | traces | metrics
                                       |
                          queries scoped by X-Org-Id from JWT
                                       |
                          dashboards | alerting | exceptions

Docs

Lineage

Forked from SigNoz (MIT Expat, copyright 2020–present SigNoz Inc.), synced to upstream main at commit 3e6339019. The import history was squashed, so the root commit here is a Hanzo branding commit rather than upstream's history. See NOTICE.

License

MIT — see LICENSE.

S
Description
Hanzo o11y — OpenTelemetry-native observability (metrics, traces, logs) for the Hanzo platform, backed by Hanzo Datastore.
Readme MIT
128 MiB
Languages
TypeScript 49.3%
Go 42.3%
SCSS 4%
Python 3.4%
JavaScript 0.6%
Other 0.2%