zeekay 0de6dd8305 Refuse the backfill when a foreign view is attached
Idempotence is a property of a target, not of a statement. The four
re-derives collapse in event.fact because Replacing collapses them, and a
materialized view attached to that table never sees the collapse — it
fires on the inserted block, so every re-derived row reaches whatever
engine sits downstream. The three rollups this file owns count ids rather
than rows and are exempt by construction; a consumer it did not write has
semantics it cannot know, so the statement throws and names it.

The measured populations come out of the prose for the same reason step 5
refuses to write a row count into a comment: an earlier draft said 9,130
traces and 68 pairs against a live 168,151 and 300. The ONE row and the
TWO stay, because nothing writes them and they do not move.

A row count also says a table is empty, not that nothing reads it. Three
consumers still spell the columns step 4 drops and renames, and a query
log over 20.1 million queries cannot clear them: an unwalked path and an
absent path leave the same trace.

Cherry-picked from event/backfill-consumer-gate, minus its revert of the
0001 caveat and of endpoint back to door.
2026-09-08 23:30:27 -07:00
2026-08-29 13:46:58 -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
2026-08-14 09:31:50 -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%