Add a host-local SigNoz role for full high-detail localhost inspection (loopback-only OTLP backend) #435
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#435
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?
Want
A host-local SigNoz rollout for full high-detail inspection of agent-proxy (and other local services) on localhost, in the same shape as the existing dockerized host roles (
agent-proxy,dozzle,logdy,mac-proxy). This is the local OTLP trace/metrics/logs backend the proxy points at during high-detail localhost debugging, kept separate from the shared fleet SigNoz onser8(which is redacted/aggregate; the local one is unsampled and may hold full request/response bodies, so it must stay loopback-only and never leave the host).Shape (mirror the agent-proxy role)
ansible/roles/signoz/withdefaults/main.yml(signoz_enabled: false,signoz_dir, UI port, retention knobs),files/compose.yaml,tasks/main.yml(gate on docker CLI, converge compose dir/file, bring up, wait on the UI port), andgroup_vars/mac.ymlopt-in.latest.:3301) and the OTLP collector ingest (:4317gRPC,:4318HTTP) published on127.0.0.1only - do not expose on the LAN. The proxy reaches it athttp://localhost:4318.no_logthe bring-up in a way that hides failures.Notes / decisions for the engineer
docs/signoz-local.md(or a section in an existing runbook) covering where it binds, the OTLP endpoint the proxy uses (PROXY_OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318), how to validate (UI on127.0.0.1:3301, a test span shows up), and that it is local-only / unredacted. Add adocs/FEATURES.mdentry.Acceptance
ward exec ansible-syncon a mac withsignoz_enabled: truebrings up SigNoz, UI reachable at127.0.0.1:3301, OTLP ingest at127.0.0.1:4318, nothing bound on the LAN.http://localhost:4318, a request's spans appear in the local SigNoz UI (once agent-proxy instrumentation lands).Refs
agent-proxy,dozzle,logdy. Heed infrastructure#434 (converge/rebuild + no_log lessons).🔒 Reserved by
ward agent --driver claude— containerengineer-claude-infrastructure-435on hostkais-macbook-pro-2.localis carrying this issue (reserved 2026-07-02T09:31:31Z). Concurrentward agentruns are blocked until it finishes or the reservation goes stale (2h0m0s TTL);--forceoverrides.— Claude (she/her), via
ward agentWARD-OUTCOME: done - added the
signozansible role (loopback-only host-local OTLP backend), vendored from SigNoz v0.90.1, merged to main and pushed.Mostly straightforward since it mirrors the agent-proxy/dozzle/logdy shape, but SigNoz fought back in two ways worth flagging. First, upstream deprecated the docker-compose path entirely for their new "Foundry" installer, so
mainno longer ships a compose file - I had to vendor from v0.90.1, the last release that does, and it drags in a wholecommon/tree of clickhouse/otel config the compose mounts by relative path, so this is ~11 vendored files, not a one-file compose. Second, the repo'scode-commentshook forbids any YAML comment below the first content line, which collided with both the vendored files' upstream inline comments (excluded them under[tool.agentic-os.code-comments], since restyling third-party config is wrong) and my own defaults/tasks (folded all commentary into top header blocks).Confidence: high on the ansible plumbing, port bindings (validated loopback-only), and pre-commit-green. Lower on the live stack: no docker-compose plugin in this Linux container and it's a heavy 5-container mac-targeted stack, so I could not actually bring it up - the real
ward exec ansible-syncbring-up on a mac withsignoz_enabled: trueis unverified by me.Rough edges / follow-ups worth filing: (1) retention has no compose/env knob in this SigNoz version, so the
*_retention_hoursdefaults are documented-intent-only (set in the UI) - a bit of a smell; (2) it's opt-in per-host and OFF in group_vars (heavy stack), a deliberate call that diverges from the cheap siblings; (3) the paired agent-proxy request-path instrumentation is the actual trace producer and still needs to land before the end-to-end "span shows up in the UI" acceptance can be exercised.