Creare dashboard di visualizzazione

Le dashboard di Grafana ti consentono di visualizzare log e metriche in Google Distributed Cloud (GDC) con air gap. Queste dashboard forniscono visualizzazioni dinamiche dell'integrità e delle prestazioni del sistema tramite riquadri personalizzabili.

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

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

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

Prima di iniziare

Per gestire le risorse personalizzate Dashboard e ConfigMap, devi disporre delle autorizzazioni necessarie.

Richiedi ruoli IAM dell'organizzazione

Contatta l'amministratore dell'organizzazione IAM per richiedere i seguenti ruoli per lavorare con le dashboard in un'organizzazione:

  • Dashboard PA Creator (dashboard-pa-creator): crea dashboard personalizzate.
  • Dashboard PA Editor (dashboard-pa-editor): modifica o elimina le dashboard personalizzate.
  • Dashboard PA Viewer (dashboard-pa-viewer): visualizza le dashboard personalizzate.

Richiedi ruoli IAM per il progetto

Contatta l'amministratore del progetto IAM per richiedere i seguenti ruoli per lavorare con dashboard e configurazioni in un progetto:

  • Dashboard Editor (dashboard-editor): crea, modifica ed elimina dashboard personalizzate all'interno dello spazio dei nomi del progetto.
  • Visualizzatore dashboard (dashboard-viewer): visualizza le dashboard personalizzate all'interno dello spazio dei nomi del progetto.
  • ConfigMap Editor (observabilitypipeline-configmap-editor): crea e modifica un ConfigMap nello spazio dei nomi del progetto.

prepara l'ambiente

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 progetto platform-obs nell'organizzazione org-1 è https://org-1/platform-obs/grafana.

Crea una dashboard personalizzata

Segui questi passaggi per creare una dashboard di Grafana e personalizzare le impostazioni:

  1. Apri l'endpoint Grafana per visualizzare l'interfaccia utente.
  2. Nel menu di navigazione, fai clic su Aggiungi.
  3. Nel 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 Origine dati di ogni riquadro, seleziona l'origine dati che vuoi per il riquadro, tra cui metriche (prometheus), audit log (auditloki) e log operativi (oploki).

    Per gli universi multizona, Grafana dispone di origini dati etichettate per zona che puoi utilizzare per creare visualizzazioni della dashboard con metriche e log di più zone. Queste origini dati sono denominate con 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 avere visualizzazioni dei dati tra zone in un'unica dashboard. Puoi utilizzare questa funzionalità per fare confronti di comportamento, ad esempio, tra una singola metrica o una 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. Nella barra dei menu, fai clic su Impostazioni dashboard per aprire la pagina Impostazioni.

  8. Dal menu di navigazione, seleziona 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

Segui questi passaggi 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 al tuo 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 apparire questo oggetto, consulta un esempio di ConfigMap.

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

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

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

Segui questi passaggi per creare una risorsa personalizzata Dashboard e importare la tua dashboard personalizzata nell'istanza Grafana del tuo 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 tua risorsa personalizzata Dashboard.
    • CONFIGMAP_NAME: il nome che hai assegnato all'oggetto ConfigMap.
    • 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. Eventuali modifiche attivano un aggiornamento di Grafana. Non puoi salvare gli aggiornamenti eseguiti direttamente nell'interfaccia utente di Grafana.