Créer des tableaux de bord de visualisation

Les tableaux de bord Grafana vous permettent de visualiser les journaux et les métriques dans Google Distributed Cloud (GDC) air gap. Ces tableaux de bord fournissent des vues dynamiques de l'état et des performances du système via des panneaux personnalisables.

Un tableau de bord fournit une représentation visuelle dynamique des performances de votre système. Il se compose d'un ou de plusieurs panneaux personnalisables, chacun configuré pour interroger et afficher des métriques spécifiques de vos composants GDC. Ces panneaux vous permettent d'effectuer les opérations suivantes :

  • Visualisez les métriques à l'aide de différents types de graphiques.
  • Définissez des seuils d'alerte pour déclencher des notifications en fonction des valeurs des métriques.
  • Personnalisez les propriétés d'affichage telles que les libellés, les unités et les périodes.
  • Définissez des résolutions temporelles cohérentes pour obtenir des comparaisons précises.

En utilisant efficacement les tableaux de bord Grafana, vous pouvez obtenir des insights précieux sur les performances et l'état de votre environnement GDC.

Avant de commencer

Pour gérer les ressources personnalisées Dashboard et ConfigMap, vous devez disposer des autorisations nécessaires.

Demander des rôles IAM au niveau de l'organisation

Contactez l'administrateur de votre organisation IAM pour demander les rôles suivants afin de travailler avec des tableaux de bord dans une organisation :

  • Créateur de tableaux de bord PA (dashboard-pa-creator) : crée des tableaux de bord personnalisés.
  • Éditeur de tableau de bord PA (dashboard-pa-editor) : modifier ou supprimer des tableaux de bord personnalisés.
  • Lecteur de tableau de bord PA (dashboard-pa-viewer) : permet d'afficher les tableaux de bord personnalisés.

Demander des rôles IAM au niveau du projet

Contactez l'administrateur de projet IAM pour demander les rôles suivants afin de travailler avec les tableaux de bord et les configurations d'un projet :

  • Éditeur de tableau de bord (dashboard-editor) : permet de créer, de modifier et de supprimer des tableaux de bord personnalisés dans l'espace de noms du projet.
  • Lecteur de tableau de bord (dashboard-viewer) : permet d'afficher les tableaux de bord personnalisés dans l'espace de noms du projet.
  • Éditeur de ConfigMap (observabilitypipeline-configmap-editor) : créez et modifiez un ConfigMap dans l'espace de noms du projet.

Préparer votre environnement

Après avoir obtenu les rôles correspondants, procédez comme suit avant de créer des tableaux de bord :

  1. Collectez des métriques à partir de vos charges de travail.
  2. Définissez le chemin d'accès au fichier kubeconfig en tant que variable d'environnement :

    export KUBECONFIG=KUBECONFIG_PATH
    

    Remplacez KUBECONFIG_PATH par le chemin d'accès au fichier kubeconfig du serveur d'API de gestion où vous souhaitez créer le tableau de bord.

Identifier votre point de terminaison Grafana

L'URL suivante est le point de terminaison de l'instance Grafana de votre projet :

https://GDC_URL/PROJECT_NAMESPACE/grafana

Remplacez les éléments suivants :

  • GDC_URL : URL de votre organisation dans GDC.
  • PROJECT_NAMESPACE : l'espace de noms de votre projet.

Par exemple, le point de terminaison Grafana pour le projet platform-obs dans l'organisation org-1 est https://org-1/platform-obs/grafana.

Créer un tableau de bord personnalisé

Pour créer un tableau de bord Grafana et personnaliser vos paramètres, procédez comme suit :

  1. Ouvrez votre point de terminaison Grafana pour afficher l'interface utilisateur.
  2. Dans le menu de navigation, cliquez sur Ajouter.
  3. Dans le menu déroulant, cliquez sur Tableau de bord. Grafana crée un tableau de bord vide.
  4. Sur le tableau de bord vide, ajoutez tous les panneaux de votre choix.

  5. Dans le menu Source de données de chaque panneau, sélectionnez la source de données que vous souhaitez utiliser pour le panneau, y compris les métriques (prometheus), les journaux d'audit (auditloki) et les journaux opérationnels (oploki).

    Pour les univers multizones, Grafana dispose de sources de données étiquetées par zone que vous pouvez utiliser pour créer des visualisations de tableau de bord avec des métriques et des journaux provenant de plusieurs zones. Ces sources de données sont nommées au format DATA_SOURCE-ZONE_ID, où :

    • DATA_SOURCE peut prendre l'une des valeurs suivantes :

      • Prometheus (prometheus ou metrics) pour afficher les métriques.
      • Journaux d'audit (auditloki) pour afficher les journaux d'audit.
      • Journaux opérationnels (oploki) pour afficher les journaux opérationnels.
    • ZONE_ID est l'ID de la zone dont vous souhaitez afficher les données dans le tableau de bord.

    De plus, pour créer un tableau de bord de visualisation pour les ressources interzones, le nom de la source de données est --Mixed--. Cette source de données vous permet d'ajouter plusieurs requêtes par zone et d'obtenir des visualisations de données interzones dans un seul tableau de bord. Vous pouvez utiliser cette fonctionnalité pour comparer les comportements, par exemple, d'une seule métrique ou d'une requête de journal dans plusieurs zones de votre univers.

  6. Personnalisez vos détails et modifiez vos panneaux pour fournir vos requêtes ou effectuer d'autres mises à jour.

  7. Dans la barre de menu, cliquez sur Paramètres du tableau de bord pour ouvrir la page Paramètres.

  8. Dans le menu de navigation, sélectionnez Modèle JSON.

  9. Copiez le modèle JSON du tableau de bord et collez-le dans un fichier texte brut pour une utilisation ultérieure.

Créer un objet ConfigMap.

Pour créer un objet ConfigMap contenant le modèle JSON du tableau de bord, procédez comme suit :

  1. Ouvrez une fenêtre de terminal.
  2. Créer un objet ConfigMap. Dans la section data de votre objet ConfigMap, collez le modèle JSON que vous avez copié précédemment :

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

    Remplacez les éléments suivants :

    • PROJECT_NAMESPACE : l'espace de noms de votre projet.
    • CONFIGMAP_NAME : nom que vous souhaitez attribuer à votre objet ConfigMap.
    • JSON_FILE_NAME : nom que vous souhaitez donner au fichier du modèle JSON du tableau de bord.
    • JSON_MODEL : modèle JSON de votre tableau de bord personnalisé.

    Pour obtenir un exemple de ce à quoi cet objet doit ressembler, consultez un exemple de ConfigMap.

  3. Appliquez l'objet ConfigMap au serveur de l'API Management :

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

Exemple de ConfigMap

Le fichier YAML suivant montre un exemple d'objet ConfigMap d'un tableau de bord dans l'espace de noms 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
      }

Créer une ressource personnalisée Dashboard

Pour créer une ressource personnalisée Dashboard et importer votre tableau de bord personnalisé dans l'instance Grafana de votre projet, procédez comme suit :

  1. Ouvrez une fenêtre de terminal.
  2. Créez une ressource personnalisée Dashboard et configurez le fichier avec le nom que vous avez attribué à l'objet 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
    

    Remplacez les éléments suivants :

    • PROJECT_NAMESPACE : l'espace de noms de votre projet.
    • DASHBOARD_NAME : nom que vous souhaitez attribuer à votre ressource personnalisée Dashboard.
    • CONFIGMAP_NAME : nom que vous avez attribué à l'objet ConfigMap.
    • JSON_FILE_NAME : nom que vous avez attribué au fichier contenant le modèle JSON du tableau de bord dans l'objet ConfigMap.
  3. Appliquez la ressource personnalisée Dashboard au serveur d'API Management :

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

Le système surveille les modifications apportées à la ressource personnalisée Dashboard et à l'objet ConfigMap associé. Pour mettre à jour ou supprimer un tableau de bord, modifiez ces ressources. Toute modification déclenche une mise à jour de Grafana. Vous ne pouvez pas enregistrer les mises à jour effectuées directement dans l'interface utilisateur de Grafana.