Deploy Grafana dashboards

Import example Grafana dashboards to visualize Red Hat Edge Manager API and fleet metrics.

Before you begin

  • Grafana is deployed and configured with the Prometheus data source.

About this task

You can import example Grafana dashboards maintained in the contrib/grafana-dashboards/ directory of the Flight Control GitHub repository.

Procedure

  1. Download the dashboard JSON files and create ConfigMap objects:
    $ curl -sLO https://raw.githubusercontent.com/flightctl/flightctl/main/contrib/grafana-dashboards/flightctl-api-dashboard.json
    $ curl -sLO https://raw.githubusercontent.com/flightctl/flightctl/main/contrib/grafana-dashboards/flightctl-fleet-dashboard.json
    
    $ oc create configmap flightctl-api-dashboard \
      --from-file=flightctl-api-dashboard.json \
      -n <project_name>
    
    $ oc create configmap flightctl-fleet-dashboard \
      --from-file=flightctl-fleet-dashboard.json \
      -n <project_name>
  2. Create GrafanaDashboard resources:
    $ oc create -f - <<EOF
    apiVersion: grafana.integreatly.org/v1beta1
    kind: GrafanaDashboard
    metadata:
      name: flightctl-api-dashboard
      namespace: <project_name>
    spec:
      instanceSelector:
        matchLabels:
          dashboards: flightctl
      configMapRef:
        name: flightctl-api-dashboard
        key: flightctl-api-dashboard.json
    ---
    apiVersion: grafana.integreatly.org/v1beta1
    kind: GrafanaDashboard
    metadata:
      name: flightctl-fleet-dashboard
      namespace: <project_name>
    spec:
      instanceSelector:
        matchLabels:
          dashboards: flightctl
      configMapRef:
        name: flightctl-fleet-dashboard
        key: flightctl-fleet-dashboard.json
    EOF
  3. Wait until the dashboards are synchronized:
    $ oc wait --for=condition=Synchronized \
      grafanadashboard/flightctl-api-dashboard \
      grafanadashboard/flightctl-fleet-dashboard \
      -n <project_name> --timeout=60s

Results

In the Grafana UI, open Dashboards. You should see dashboards for the Red Hat Edge Manager API (API server, database, and agent connectivity metrics) and for fleet health, rollout status, and application metrics. Dashboard titles match the imported JSON definitions.