Skip to content

Observability

Namespace: observability

App Storage Notes
kube-prometheus-stack ceph-ssd Prometheus + Alertmanager, core of monitoring
grafana Dashboards, Postgres for storage
gatus Uptime monitoring, Postgres (cnpg), external access
victoria-logs openebs-hostpath Log aggregation, ext-auth-internal
fluent-bit Log shipper → victoria-logs
kite Postgres (cnpg component)
guacamole Remote desktop gateway, Postgres
scrutiny Disk health hub — collectors on docker machines report here
karma Alertmanager UI, depends on kube-prometheus-stack
kromgo Badge/status API, external access, depends on kube-prometheus-stack
unpoller UniFi metrics exporter, depends on kube-prometheus-stack
exporters SNMP, blackbox, and other Prometheus exporters
silence-operator Auto-silences for maintenance windows
keda Cluster-wide autoscaler (lives here, used by many namespaces)

Config Notes

Scrutiny

Hub-and-spoke setup. The hub runs in this namespace as a Kubernetes pod. Collectors run as Docker containers on each external machine (TrueNAS, UnRaid, AI3090) and report disk SMART data back to the hub. See Docker Services for the collector configs.

victoria-logs

Uses openebs-hostpath for local fast storage (write-heavy log ingestion). Protected by ext-auth-internal for web UI access. Fluent-bit ships logs from all pods into victoria-logs.

KEDA

The autoscaler itself lives in observability, but its ScaledObjects are used across media and default namespaces via the keda component. Apps with keda/nfs-scaler scale based on NFS mount availability.

Grafana

Uses Postgres (in the database namespace) for dashboard and user storage. No dedicated PVC — state is in the database.