Local SigNoz drops all telemetry on restart while login/dashboards survive (ClickHouse loses data, sqlite doesn't) #442
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/infrastructure#442
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
The host-local SigNoz stack (
ansible/roles/signoz, docker-compose, on the operator's mac) drops all telemetry (traces / metrics / logs) across a restart, while the login / org / dashboards survive. Reported by Kai 2026-07-02.This is distinct from #439 (OTLP-not-flowing / first-run org setup). Here ingest works and data accumulates, then a restart empties it. Not covered by
docs/signoz-troubleshooting.mdtoday.Why the asymmetry is the key clue
SigNoz keeps two independent stores:
/var/lib/signoz/signoz.db, volumesignoz-sqlite. This survives - hence login persists./var/lib/clickhouse, volumesignoz-clickhouse. This is what vanishes.Different fates across the same restart rule out a blanket volume wipe (a
down -v/ Docker Desktop reset would take sqlite too). So the loss is specific to the ClickHouse side.Two candidate mechanisms (both fit the asymmetry, different fixes)
A - ReplicatedMergeTree loses ZooKeeper part-metadata (most likely). The vendored compose wires ClickHouse to ZooKeeper (
common/clickhouse/cluster.xml, clustercluster), and SigNoz v0.90.1 createsReplicated*MergeTreetables. Data parts live on ClickHouse local disk (persistentsignoz-clickhouse) but every part is registered in ZK under/clickhouse/tables/.... If ZK returns without those znodes on restart, ClickHouse marks replicas read-only and/or detaches all local parts - tables read empty while bytes remain under…/detached/. sqlite is independent, so login stays. Recoverable (re-attach /SYSTEM RESTORE REPLICA). Open question: why ZK state does not survive the restart the way the ClickHouse/sqlite volumes do - the ZK volumesignoz-zookeeper-1is named/persistent in the compose, andZOO_AUTOPURGE_INTERVAL=1purges snapshots aggressively - is that (or the bitnamilegacy image data-dir layout) re-initializing ZK?B - the
signoz-clickhousevolume itself is not persisting. If only that named volume is pruned/recreated whilesignoz-sqliteis not, same visible symptom, but data genuinely gone.Host triage to disambiguate (operator runs on the mac)
store+ read-only/detached tables -> mechanism A (recoverable).signoz-clickhousenewer thansignoz-sqlite+ emptystore-> mechanism B.Advisor design pass (do this first, post the plan on this thread)
Read
ansible/roles/signoz/(compose,cluster.xml,config.xml,users.xml, defaults, tasks) and produce a concrete fix plan ranked by robustness, without needing host access:Replicated*MergeTree(ZK-backed) tables on this single-node stack, or plainMergeTree. This decides whether mechanism A is even possible.SYSTEM RESTORE REPLICA <db>.<table>), added todocs/signoz-troubleshooting.md.Constraints
signoz_local_mac_hostname). Do not touch the shared fleet SigNoz on ser8.docker-compose.yaml).Done condition
Advisor plan posted here. Then a follow-up engineer run (gated on Kai's host-triage result naming mechanism A vs B) implements the chosen fix + the troubleshooting-doc recovery runbook + the restart-survival check.
Context
Local SigNoz:
docs/signoz-local.md, roleansible/roles/signoz/. Related: #435 (local SigNoz role), #436 (proxy->SigNoz wiring), #439 (OTLP-not-flowing triage), and agent-proxy#29 (proxy-side observability build-out that consumes this backend).🔎 ward agent advisor
ward agent advisor --driver clauderan a one-shot standard research pass on this question:I now have everything needed for a decisive, repo-grounded advisor plan. The key finding overturns the issue's ranked hypotheses. This is single-repo (infrastructure) work, so the full answer goes in
summarywith an emptyissuesarray.Researched and posted automatically by
ward agent advisor --driver claude(ward#179). This is one-shot research, not a carried change - verify before acting on it.— Claude (she/her), via
ward agent