Creare dashboard di visualizzazione

Questa pagina descrive la procedura per creare e gestire le dashboard all'interno dell'istanza Grafana, utilizzata per le visualizzazioni di log e metriche del progetto air-gapped Google Distributed Cloud (GDC).

Una dashboard fornisce una rappresentazione visiva dinamica delle prestazioni del sistema. È costituita da uno o più riquadri personalizzabili, ognuno configurato per eseguire query e visualizzare metriche specifiche dei componenti GDC. Questi riquadri consentono di:

  • Visualizzare le metriche tramite vari tipi di grafici.
  • Definire le soglie di avviso per attivare le notifiche in base ai valori delle metriche.
  • Personalizzare le proprietà di visualizzazione, come etichette, unità e intervalli di tempo.
  • Impostare risoluzioni temporali coerenti per confronti accurati.

Utilizzando in modo efficace le dashboard Grafana, puoi ottenere informazioni preziose sulle prestazioni e sullo stato di integrità del tuo ambiente GDC.

Prima di iniziare

Per ottenere le autorizzazioni necessarie per lavorare con le dashboard in un'organizzazione, chiedi all'amministratore IAM dell'organizzazione di concederti i seguenti ruoli:

  • Crea una dashboard personalizzata: Dashboard PA Creator (dashboard-pa-creator)
  • Modifica ed elimina una dashboard personalizzata: Dashboard PA Editor (dashboard-pa-editor)
  • Visualizza una dashboard personalizzata: Dashboard PA Viewer (dashboard-pa-viewer)

Per ottenere le autorizzazioni necessarie per lavorare con le dashboard per un progetto, chiedi all'amministratore IAM del progetto di concederti i seguenti ruoli nello spazio dei nomi del progetto:

  • Crea, modifica ed elimina una dashboard personalizzata: Dashboard Editor (dashboard-editor)
  • Visualizza una dashboard personalizzata: Dashboard Viewer (dashboard-viewer)
  • Crea e modifica un ConfigMap: ConfigMap Editor (observabilitypipeline-configmap-editor)

Dopo aver ottenuto i ruoli corrispondenti, segui questi passaggi prima di creare le dashboard:

  1. Raccogli le metriche dai tuoi workload.
  2. Imposta il percorso del file kubeconfig come variabile di ambiente:

    export KUBECONFIG=KUBECONFIG_PATH
    

    Sostituisci KUBECONFIG_PATH con il percorso del file kubeconfig per il server API di gestione in cui vuoi creare la dashboard.

Identifica l'endpoint Grafana

Il seguente URL è l'endpoint dell'istanza Grafana del tuo progetto:

https://GDC_URL/PROJECT_NAMESPACE/grafana

Sostituisci quanto segue:

  • GDC_URL: l'URL della tua organizzazione in GDC.
  • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.

Ad esempio, l'endpoint Grafana per il platform-obs progetto nell'organizzazione org-1 è https://org-1/platform-obs/grafana.

Crea una dashboard personalizzata

Per creare una dashboard Grafana e personalizzare le impostazioni:

  1. Apri il tuo endpoint Grafana per visualizzare l' interfaccia utente.
  2. Dal menu di navigazione, fai clic su Add (Aggiungi).
  3. Dal menu a discesa, fai clic su Dashboard. Grafana crea una dashboard vuota.
  4. Nella dashboard vuota, aggiungi tutti i riquadri che vuoi.

  5. Nel menu Data source (Origine dati) di ogni riquadro, seleziona l'origine dati che vuoi per il riquadro, incluse le metriche (prometheus), gli audit log (auditloki) e i log operativi (oploki).

    Per gli universi multizona, Grafana dispone di origini dati con etichette di zona che puoi utilizzare per creare visualizzazioni della dashboard con metriche e log di più zone. Queste origini dati hanno il formato DATA_SOURCE-ZONE_ID, dove:

    • DATA_SOURCE può assumere uno dei seguenti valori:

      • Prometheus (prometheus o metrics) per visualizzare le metriche.
      • Audit log (auditloki) per visualizzare gli audit log.
      • Log operativi (oploki) per visualizzare i log operativi.
    • ZONE_ID è l'ID della zona da cui vuoi visualizzare i dati nella dashboard.

    Inoltre, per creare una dashboard di visualizzazione per le risorse tra zone, il nome dell'origine dati è --Mixed--. Questa origine dati ti consente di aggiungere più query per zona e di visualizzare i dati tra zone in un'unica dashboard. Puoi utilizzare questa funzionalità per confrontare il comportamento, ad esempio, di una singola metrica o query di log in più zone del tuo universo.

  6. Personalizza i dettagli e modifica i riquadri per fornire le query o apportare altri aggiornamenti.

  7. Dalla barra dei menu, fai clic su Dashboard settings (Impostazioni dashboard) per aprire la pagina Settings (Impostazioni).

  8. Dal menu di navigazione, seleziona JSON Model (Modello JSON).

  9. Copia il modello JSON della dashboard e incollalo in un file di testo normale per un utilizzo futuro.

Crea un oggetto ConfigMap

Per creare un oggetto ConfigMap contenente il modello JSON della dashboard:

  1. Apri una finestra del terminale.
  2. Crea un oggetto ConfigMap. Nella sezione data dell'oggetto ConfigMap, incolla il modello JSON che hai copiato in precedenza:

    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        JSON_MODEL
        }
    

    Sostituisci quanto segue:

    • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
    • CONFIGMAP_NAME: il nome che vuoi assegnare all'oggetto ConfigMap.
    • JSON_FILE_NAME: il nome che vuoi assegnare al file per il modello JSON della dashboard.
    • JSON_MODEL: il modello JSON della tua dashboard personalizzata.

    Per un esempio di come deve essere questo oggetto, vedi un ConfigMap esempio.

  3. Applica l'oggetto ConfigMap al server API di gestione:

    kubectl --kubeconfig ${KUBECONFIG} apply -f CONFIGMAP_NAME.yaml
    

Un esempio di ConfigMap

Il seguente file YAML mostra un esempio dell'oggetto ConfigMap di una dashboard nello spazio dei nomi platform-obs:

  apiVersion: v1
  kind: ConfigMap
  metadata:
    namespace: platform-obs
    name: my-project-dashboard-configmap
  data:
    my-project-dashboard.json: |
      {
      "annotations": {
        "list": [
          {
            "builtIn": 1,
            "datasource": "--",
            "enable": true,
            "hide": true,
            "iconColor": "rgba(0, 211, 255, 1)",
            "name": "Annotations & Alerts",
            "type": "dashboard"
          }
        ]
      },
      "editable": true,
      "graphTooltip": 0,
      "id": null,
      "links": [],
      "panels": [],
      "schemaVersion": 27,
      "style": "dark",
      "tags": [],
      "templating": {
        "list": []
      },
      "time": {
        "from": "now-6h",
        "to": "now"
      },
      "timepicker": {},
      "timezone": "",
      "title": "Sample dashboard",
      "uid": null,
      "version": 0
      }

Crea una risorsa personalizzata Dashboard

Per creare una risorsa personalizzata Dashboard e importare la dashboard personalizzata nell'istanza Grafana del progetto:

  1. Apri una finestra del terminale.
  2. Crea una risorsa personalizzata Dashboard e configura il file con il nome che hai assegnato all'oggetto ConfigMap:

    apiVersion: observability.gdc.goog/v1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_NAME
    spec:
      configMapRef:
        name: CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    

    Sostituisci quanto segue:

    • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
    • DASHBOARD_NAME: il nome che vuoi assegnare alla risorsa personalizzata Dashboard.
    • CONFIGMAP_NAME: il nome che hai assegnato all' ConfigMap oggetto.
    • JSON_FILE_NAME: il nome che hai assegnato al file contenente il modello JSON della dashboard nell'oggetto ConfigMap.
  3. Applica la risorsa personalizzata Dashboard al server API di gestione:

    kubectl --kubeconfig ${KUBECONFIG} apply -f DASHBOARD_NAME.yaml
    

Il sistema monitora le modifiche sia alla risorsa personalizzata Dashboard sia all'oggetto ConfigMap associato. Per aggiornare o eliminare una dashboard, modifica queste risorse. Qualsiasi modifica attiva un aggiornamento di Grafana. Non puoi salvare gli aggiornamenti eseguiti direttamente nell'interfaccia utente di Grafana.