Retire kai-server observability stack after ser8 o11y cutover #505
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#505
Loading…
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?
Kai noticed during a namespace memory review that
observabilityis the largest remaining kai-server namespace:That is about 8.9% of kai-server's 31.04GiB RAM, and it should not be the long-term shape. The deploy docs already say ser8 is the canonical o11y plane and kai-server's in-cluster observability stack is retiring:
docs/o11y.md: kai-server is the app plane; its oldobservabilitynamespace is the retiring stack.services/ser8-observability/: vmsingle/vmalert and SigNoz live on ser8.coilyco-bridge/deploy#51designs migrating glitchtip/signoz/vmsingle deploy ownership.coilyco-bridge/deploy#114tracks product-level ownership for the old sharedobservabilitybucket.Please plan and execute the kai-server o11y retirement safely:
observabilityand classify each component: already replaced by ser8, still producing unique data, or legacy dead weight.observabilityworkloads that ser8 now replaces, including manifests/verbs/docs that would recreate them.coilyco-bridge/deploy#51rather than duplicating deploy-repo migration work.Acceptance: kai-server no longer carries the old all-in-one
observabilitystack once ser8 coverage is verified, and a namespace memory rollup no longer showsobservabilityas a multi-GiB app-plane consumer.🔎 ward agent advisor
ward agent advisor --harness codexran a one-shot standard research pass on this question:Advisory recommendation
The repo evidence supports treating this as a staged kai-server observability retirement, not a one-shot namespace delete.
The safest recommendation is:
2834Mi observabilityfootprint. The strongest likely RAM culprit is SigNoz ClickHouse alone, which is configured at4Girequest /8Gilimit indeploy/observability/signoz-values.yml.docs/restic-backups.md, and the backup script only includesforgejo registry coilysiren-backend ntfynamespaces plus/home/kai/saves. That means historical VictoriaMetrics and SigNoz data are not covered by the normal offsite backup flow. GlitchTip also is not named in the backup namespaces.coilyco-bridge/deploy#51already settled its runtime move. In this repo, GlitchTip is newer than the old VM/SigNoz stack and is still documented as active on kai-server. If the real goal is "ser8 owns shared o11y, kai-server keeps only app-plane workloads", GlitchTip may remain temporarily without violating the memory goal, but that needs to be made explicit.What is still tracked on kai-server today
I cannot inspect the live cluster from this clone, so this is the tracked desired state plus documented host-side producers, not a live
kubectl get alldump.Tracked in
deploy/observability/,scripts/k8s/,.ward/ward.yaml,Makefile, anddocs/FEATURES.md:vmsinglewith a10GiPVC onlocal-pathvmagentprometheus-node-exporterDaemonSetts-vmsingleTailscale proxyvmsingle-nodeportonlocalhost:3042810GiPVC2GiPVC1GiPVCts-signozTailscale proxysignoz-otlp-nodeportonlocalhost:30418glitchtip-pgcluster with10Gistoragets-glitchtipTailscale proxyscripts/process-memory-heartbeat.pyposts OTLP metrics tohttp://localhost:30428/opentelemetry/v1/metricsand therefore depends on kai-servervmsingle-nodeportscripts/agent-health-heartbeat.pyposts OTLP metrics tohttp://localhost:30418/v1/metricsand therefore depends on kai-serversignoz-otlp-nodeportscripts/thermal-heartbeat.pywrites node-exporter textfile metrics, so it depends onnode-exporterplusvmagent/VictoriaMetrics if those metrics still matterComponent classification
Based on the repo contents and the issue brief:
process-memory-heartbeat-> unique host memory telemetry, currently only sent to kai-server VMagent-health-heartbeat-> unique Ollama/GPU telemetry, currently only sent to kai-server SigNozthermal-heartbeat-> unique thermal telemetry, currently routed through node-exporter/vmagent and also still emits Sentry eventsward exec observabilityward exec signozscripts/k8s/observability.pyscripts/k8s/signoz.pydeploy/observability/README.mdsections for VM/SigNoz install/upgrade/uninstalldocs/FEATURES.mdentries describing kai-server VM/SigNoz as shipped featuresThe biggest decisions still needed
process-memory-heartbeatandagent-health-heartbeatare easy to repoint if ser8 endpoints exist.thermal-heartbeatis more opinionated because it currently mixes metrics with Sentry alerting.coilyco-bridge/deploy#51about runtime placement, repo ownership, or both?Options
observabilitynamespace retirement now.Recommended execution shape
process-memory-heartbeat: remove or repoint away fromlocalhost:30428agent-health-heartbeat: remove or repoint away fromlocalhost:30418thermal-heartbeat: either keep only the eventing side, or give it a new metrics sinkBridge components and their removal conditions
deploy/observability/signoz-otlp-nodeport-service.ymlagent-health-heartbeat.pystill posts to kai-serverlocalhost:30418.deploy/observability/vmsingle-nodeport-service.ymlprocess-memory-heartbeat.pystill posts to kai-serverlocalhost:30428.node-exporterandvmagentthermal-heartbeatmetrics still need the VictoriaMetrics path.ts-signozandts-vmsinglets-glitchtipRisks and doc drift to call out
docs/restic-backups.mdexplicitly excludes metrics and traces, so deleting VM/SigNoz PVCs without an export is irreversible.docs/glitchtip-deploy-plan-status.mdsays phase 1 is complete on kai-server, but the issue brief frames ser8 as the canonical o11y plane. That conflict needs one explicit decision.deploy/observability/README.mdstill has a## Sentry stays putsection saying hosted Sentry remains the app-error pane, while GlitchTip docs describe a phased DSN replacement. That means error producers are probably not fully cut over yet.ward exec observabilityandward exec signozin place after live teardown invites accidental re-creation.Bottom line
I recommend posting back that the issue should proceed as a two-step retirement:
That gets the big RAM win, matches the repo evidence, avoids silent data loss, and avoids duplicating the deploy-repo migration design.
Researched and posted automatically by
ward agent advisor --harness codex(ward#179). This is one-shot research, not a carried change - verify before acting on it.— Codex, via
ward agent🔎 ward agent advisor
ward agent advisor --harness codexran a one-shot standard research pass on this question:pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/commit-msg
Researched and posted automatically by
ward agent advisor --harness codex(ward#179). This is one-shot research, not a carried change - verify before acting on it.— Codex, via
ward agentCarrying #680's content over, because I closed the wrong one
I closed #680 as a duplicate of this issue during the 2026-08-28 burn-down (#981). That was the wrong survivor and I cannot reopen it, since the guarded Forgejo surface has
closebut no reopen. Migrating its content here so nothing is lost.The two were not restatements. This issue is the original charter from Kai's namespace memory review. #680 was the continuation, recording work already completed plus a concrete remaining checklist. I picked the survivor on "which has comments", which was a lazy heuristic that ignored which one was further along.
Current state, from #680
The duplicate kai-server observability backend was reversibly scaled to zero after confirming active OTLP producers send to ser8:
kai-server-logsOTel collectors remain healthy and must stay, because they forward logs and Kubernetes events to ser8Remaining acceptance, from #680
grafana,signoz,victoria-metrics,vmagentandnode-exporterHelm releases on kai-serverkai-server-logsforwardersThat checklist is the actionable part of this work and it now lives here. This issue's own acceptance, that a namespace memory rollup no longer shows
observabilityas a multi-GiB consumer, still stands and is closer than the original text implies given the stack is already at zero replicas.