Grafana Dashboards
A ready-made Grafana dashboard for GoodData.CN, gooddata-cn-overall-health.json, is published in modules/k8s-common/dashboards. Every panel carries a description in Grafana: hover over the panel title to see which metric it shows and how to read it.
It works with any GoodData.CN deployment that exports metrics to Prometheus, but the surrounding gooddata-cn-terraform stack is proof-of-concept only. Treat the dashboard as baseline coverage rather than a complete production standard.
GoodData.CN Overall Health
Open GoodData CN - Overall Health first during an incident. It starts with cluster and service health, API traffic and errors, and per-container memory and CPU.
Further down, it covers the supporting systems: Pulsar background jobs, Redis, PostgreSQL and Hikari connection pools, the analytics engine, and exports. Error logs from Loki come last, and stay hidden if no Loki data source is connected.
Hover over a panel title to read its description, or open the panel menu and select Edit to see the PromQL or LogQL behind it.
Prerequisites
- Prometheus scraping the cluster, including kube-state-metrics and cAdvisor container metrics (both provided by
kube-prometheus-stack). - GoodData.CN metrics in Prometheus. Set the Helm value
podMonitor.enabled: trueto createPodMonitorobjects. See Prometheus Metrics. - Loki (optional) for the Overall Health log panels.
Import the Dashboard
Manual Import
- Download
gooddata-cn-overall-health.jsonfrom thegooddata-cn-terraformrepository. - In Grafana, go to Dashboards > Import.
- Upload the JSON file.
- When prompted, map the data sources:
- Map
${DS_PROMETHEUS}to your Prometheus data source. - Map
${DS_LOKI}to your Loki data source. If Loki is not deployed, leave this unset. The log panels stay hidden.
- Map
- Click Import.
- Set the
clusterandnstemplate variables:clusterto the value of thecluster_namelabel used by your Prometheus setup, andnsto the namespace where GoodData.CN is installed.
With the Terraform Module
With the evaluation Terraform module, set in settings.tfvars:
enable_observability = true
observability_hostname = "grafana.example.com"This deploys kube-prometheus-stack, Loki, Tempo, and Grafana with the dashboard preprovisioned into the GoodData-CN folder.