Retire kai-server observability stack after ser8 o11y cutover #505
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
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…
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?
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 agent