Skip to content

Grafana

Grafana provides dashboards and visualization for the platform’s observability data, querying ClickHouse for the telemetry that ClickStack lands there.

FieldValue
Flux pathflux-clusters/stefanzhelev/apps/grafana
Base pathflux-apps/grafana
Namespacegrafana
Sync wave5
Depends oncloudnative-pg, clickhouse, external-secrets-config
  • HelmRelease for the Grafana chart 8.x (>= 8.0.0 < 9.0.0)
  • ExternalSecrets for admin credentials and the PostgreSQL connection
  • Terraform CR (via Tofu Controller) that materializes those credentials in Vault
SettingValue
Databaseexternal PostgreSQL via CloudNative-PG
DB hostpostgresql-rw.cnpg.svc.cluster.local:5432
DB SSLrequired
Persistence1Gi
Dashboard sidecarenabled (label grafana_dashboard: "1")
Resources100m CPU / 128Mi memory request, 200m / 256Mi limit

The chart’s sidecar watches for ConfigMaps with the grafana_dashboard label and loads them automatically. Use the grafana_folder annotation to organize them.

apiVersion: v1
kind: ConfigMap
metadata:
name: my-dashboard
labels:
grafana_dashboard: "1"
annotations:
grafana_folder: "Infrastructure"
data:
my-dashboard.json: |
{ ... }
  • ClickHouse: primary data source for logs, traces, and metrics from the OTel pipeline
  • CloudNative-PG: Grafana’s own config and session storage
  • Vault + Tofu Controller: admin password and DB credentials managed in Vault
Terminal window
kubectl get pods -n grafana
kubectl logs -n grafana -l app.kubernetes.io/name=grafana
kubectl port-forward -n grafana svc/grafana 3000:80
# List installed dashboards via the API
kubectl exec -n grafana deploy/grafana -- \
curl -s localhost:3000/api/search | jq '.[].title'