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: true to create PodMonitor objects. See Prometheus Metrics.
  • Loki (optional) for the Overall Health log panels.

Import the Dashboard

Manual Import

  1. Download gooddata-cn-overall-health.json from the gooddata-cn-terraform repository.
  2. In Grafana, go to Dashboards > Import.
  3. Upload the JSON file.
  4. 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.
  5. Click Import.
  6. Set the cluster and ns template variables: cluster to the value of the cluster_name label used by your Prometheus setup, and ns to 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.