Grafana
Grafana provides dashboards and visualization for the platform’s observability data, querying ClickHouse for the telemetry that ClickStack lands there.
Deployment
Section titled “Deployment”| Field | Value |
|---|---|
| Flux path | flux-clusters/stefanzhelev/apps/grafana |
| Base path | flux-apps/grafana |
| Namespace | grafana |
| Sync wave | 5 |
| Depends on | cloudnative-pg, clickhouse, external-secrets-config |
What it deploys
Section titled “What it deploys”- 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
Configuration highlights
Section titled “Configuration highlights”| Setting | Value |
|---|---|
| Database | external PostgreSQL via CloudNative-PG |
| DB host | postgresql-rw.cnpg.svc.cluster.local:5432 |
| DB SSL | required |
| Persistence | 1Gi |
| Dashboard sidecar | enabled (label grafana_dashboard: "1") |
| Resources | 100m CPU / 128Mi memory request, 200m / 256Mi limit |
Dashboard auto-discovery
Section titled “Dashboard auto-discovery”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: v1kind: ConfigMapmetadata: name: my-dashboard labels: grafana_dashboard: "1" annotations: grafana_folder: "Infrastructure"data: my-dashboard.json: | { ... }Integrations
Section titled “Integrations”- 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
Key commands
Section titled “Key commands”kubectl get pods -n grafanakubectl logs -n grafana -l app.kubernetes.io/name=grafanakubectl port-forward -n grafana svc/grafana 3000:80
# List installed dashboards via the APIkubectl exec -n grafana deploy/grafana -- \ curl -s localhost:3000/api/search | jq '.[].title'