Creare dashboard visive

Questa pagina descrive la procedura per creare e gestire le dashboard nell'istanza Grafana, chiamata anche istanza di monitoraggio del sistema. istanza di monitoraggio del sistema. Utilizza le dashboard per eseguire operazioni di monitoraggio nel tuo progetto, ad esempio il monitoraggio della rete e del server.

Dopo che la piattaforma di osservabilità raccoglie le metriche prodotte dai workload di cui è stato eseguito il deployment nel tuo progetto GDC, la configurazione salva le etichette delle metriche associate e aggrega i file di tutte le origini dati. Poi, puoi creare dashboard personalizzate per eseguire query e visualizzare metriche specifiche dall'interfaccia utente dell'istanza di monitoraggio.

Una dashboard è una disposizione visiva dinamica di uno o più pannelli personalizzabili che interagiscono con le metriche Prometheus configurate nelle origini dati. Eseguendo query, puoi utilizzare ciascuno di questi pannelli per visualizzare ed esporre metriche specifiche dei componenti GDC.

La piattaforma di osservabilità espone un'API che ti consente di configurare le personalizzazioni per la disposizione visiva delle metriche. Ad esempio, stabilisci soglie di accettazione, visualizza i segnali corretti, etichetta i grafici e scegli una risoluzione temporale coerente.

Dashboard disponibili

Supponendo che l'ambiente sia attivo e funzionante, nella home page dell'istanza di monitoraggio vengono visualizzate immediatamente alcune dashboard delle metriche. Ad esempio, puoi osservare lo stato dell'interruttore e l'integrità dei componenti del sistema.

Utilizza i dashboard di switch e cluster per monitorare i cluster e le metriche dei nodi. Accedi alle dashboard di logging e monitoraggio per osservare i cluster di amministrazione.

Home page con un elenco di dashboard disponibili e di dashboard visualizzate di recente

Le metriche più pertinenti per l'amministratore della piattaforma (PA) sono le seguenti:

  • Kubernetes / API server: mostra l'integrità del server API per cluster nell'organizzazione.
  • Kubernetes / Risorse di calcolo / Multi-cluster: mostra l'utilizzo delle risorse a livello di organizzazione.
  • Kubernetes / Risorse di calcolo / Cluster: mostra l'utilizzo delle risorse per cluster.
  • Kubernetes / Volumi permanenti: mostra l'utilizzo dei volumi permanenti Kubernetes in ogni cluster.
  • Stato nodo: mostra l'utilizzo delle risorse su ogni nodo di ogni cluster.
  • Stato pod: mostra il consumo di risorse di ogni pod in ogni cluster.

L'immagine seguente mostra un esempio per la dashboard Kubernetes / Risorse di calcolo / Multi-Cluster.

Grafico a linee che mostra l'utilizzo della CPU ed elenco dei cluster che mostrano le quote CPU

Accedere all'istanza di monitoraggio del progetto

Devi ottenere l'autorizzazione per accedere alle dashboard di monitoraggio. Per ottenere le autorizzazioni necessarie per accedere e visualizzare le metriche nell'istanza di monitoraggio del progetto, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Visualizzatore Grafana dell'organizzazione (organization-grafana-viewer). L'amministratore IAM dell'organizzazione può concederti l'accesso creando un binding del ruolo:

kubectl --kubeconfig ADMIN_KUBECONFIG create rolebinding pa-grafana-viewer-binding -n platform-obs --user=USER_NAME --clusterrole=organization-grafana-viewer

Sostituisci quanto segue:

  • ADMIN_KUBECONFIG: il percorso del file kubeconfig per il cluster di amministrazione.
  • USER_NAME: il nome account dell'utente che richiede l'associazione del ruolo.

Per saperne di più sull'assegnazione dei ruoli, consulta le seguenti risorse:

Creare dashboard Grafana

Questa sezione descrive la procedura per creare e gestire i dashboard nell'istanza Grafana.

Segui questi passaggi per creare una dashboard in GDC:

  1. Completa i prerequisiti della sezione Prima di iniziare.
  2. Apri l'endpoint Grafana del tuo progetto.
  3. Crea un oggetto ConfigMap per la tua dashboard.
  4. Crea una Dashboard risorsa personalizzata (CR).

Prima di iniziare

Prima di creare dashboard, devi ottenere l'accesso all'istanza di monitoraggio. Per saperne di più, vedi Accedere alle dashboard.

  1. Raccogli le metriche dal tuo progetto GDC prima di creare dashboard.
  2. Per accedere, creare dashboard e visualizzare le metriche, chiedi all'amministratore IAM del progetto di concederti il ruolo Visualizzatore Grafana progetto (project-grafana-viewer).
  3. Imposta il percorso del file kubeconfig come variabile di ambiente:

    export KUBECONFIG=KUBECONFIG_FILE
    

    Sostituisci KUBECONFIG_FILE con il percorso del file kubeconfig nel cluster di amministrazione in cui vuoi creare la dashboard.

Endpoint di monitoraggio

Apri il seguente URL per accedere all'endpoint 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.

Crea un oggetto ConfigMap per la dashboard

Segui questi passaggi per creare un oggetto ConfigMap contenente il modello JSON del prospetto:

  1. Vai all'endpoint del progetto.
  2. Nel menu di navigazione, fai clic sul pulsante Aggiungi.
  3. Nel menu a discesa visualizzato, fai clic su Dashboard. L'istanza crea una dashboard vuota.
  4. Nella dashboard vuota, aggiungi tutti i riquadri che vuoi. Puoi personalizzare i dettagli e modificare i pannelli per fornire le query o apportare altri aggiornamenti.

  5. Dalla barra dei menu, fai clic sul pulsante Impostazioni della dashboard per aprire la pagina Impostazioni.

  6. Nel menu di navigazione, fai clic sull'opzione Modello JSON.

  7. Copia il modello JSON della dashboard e incollalo in un file di testo normale per averlo a disposizione.

  8. Sostituisci i campi id e uid di primo livello con il valore null nel modello JSON.

  9. Crea un oggetto ConfigMap dalla riga di comando. Nella sezione data dell'oggetto ConfigMap, incolla il modello JSON che hai copiato in precedenza all'interno di un file .json:

    cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f -
    apiVersion: v1
    kind: ConfigMap
    metadata:
      namespace: PROJECT_NAMESPACE
      name: DASHBOARD_CONFIGMAP_NAME
    data:
      JSON_FILE_NAME.json: |
        {
        <JSON model of the dashboard>
        }
    EOF
    

    Sostituisci quanto segue:

    • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
    • DASHBOARD_CONFIGMAP_NAME: il nome che vuoi assegnare all'oggetto ConfigMap.
    • JSON_FILE_NAME: il nome che vuoi dare al file in cui incolli il modello JSON della dashboard.

    Per un esempio di come deve apparire questo oggetto, consulta l'esempio ConfigMap per una dashboard.

  10. Esegui il deployment dell'oggetto ConfigMap della dashboard nel cluster di amministrazione.

Esempio di ConfigMap per una dashboard

Il seguente file YAML mostra un esempio dell'oggetto ConfigMap di un dashboard per le metriche 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": "-- Grafana --",
            "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
      }

Creare una risorsa personalizzata Dashboard

Segui questi passaggi per creare una risorsa personalizzata (CR) Dashboard e attivare la dashboard nel progetto specificato:

  1. Crea un Dashboard CR dalla riga di comando e configura il file con il nome che hai assegnato all'oggetto ConfigMap della dashboard:

    cat <<EOF | kubectl --kubeconfig ${KUBECONFIG} apply -f -
    apiVersion: observability.gdc.goog/v1alpha1
    kind: Dashboard
    metadata:
      namespace: PROJECT_NAMESPACE
      name: CUSTOM_RESOURCE_NAME
    spec:
      configMapRef:
        name: DASHBOARD_CONFIGMAP_NAME
        namespace: PROJECT_NAMESPACE
        key: JSON_FILE_NAME.json
      foldername: Default
    EOF
    

    Sostituisci quanto segue:

    • PROJECT_NAMESPACE: lo spazio dei nomi del progetto.
    • CUSTOM_RESOURCE_NAME: il nome che vuoi assegnare alla risorsa personalizzata Dashboard.
    • DASHBOARD_CONFIGMAP_NAME: il nome che hai assegnato all'oggetto ConfigMap per la dashboard.
    • JSON_FILE_NAME: il nome che hai assegnato al file che contiene il modello JSON della dashboard nell'oggetto ConfigMap.
  2. Esegui il deployment della CR Dashboard nello spazio dei nomi del progetto. Questa azione configura il servizio di osservabilità per importare la dashboard predefinita nell'istanza di monitoraggio del tuo progetto.

Le dashboard sono isolate dagli altri progetti, così come le metriche e i log. Di conseguenza, se vuoi utilizzare la stessa dashboard in più progetti, implementa una CR Dashboard in ciascuno. Inoltre, i dati di logging e monitoraggio a cui accede la dashboard devono essere disponibili in tutti questi progetti.

Il processo che gestisce i dashboard rileva le modifiche apportate sia al Dashboard CR che all'oggetto ConfigMap. Se modifichi uno o l'altro, il programma riflette la modifica nell'istanza di monitoraggio. Per aggiornare o eliminare una dashboard, devi applicare le modifiche nel CR e implementarlo di nuovo. Non puoi salvare gli aggiornamenti eseguiti direttamente nell'interfaccia utente di monitoraggio.

Per creare una dashboard in una cartella o modificare le cartelle, modifica il valore foldername nella sezione spec del Dashboard CR. In caso contrario, lascialo impostato su Default. Il processo crea automaticamente le cartelle se non esistono.