Créer des tableaux de bord visuels

Cette page décrit la procédure de création et de gestion des tableaux de bord dans votre instance Grafanainstance de surveillance du système. Utilisez des tableaux de bord pour effectuer des opérations de surveillance dans votre projet, comme la surveillance du réseau et des serveurs.

Une fois que la plate-forme Observability a collecté les métriques produites par les charges de travail déployées dans votre projet GDC, la configuration enregistre les libellés de métriques associés et agrège les fichiers de toutes les sources de données. Vous pouvez ensuite créer des tableaux de bord personnalisés pour interroger et visualiser des métriques spécifiques à partir de l'interface utilisateur de l'instance de surveillance.

Un tableau de bord est un arrangement visuel dynamique d'un ou de plusieurs panneaux personnalisables qui interagissent avec les métriques Prometheus configurées dans les sources de données. En effectuant des requêtes, vous pouvez utiliser chacun de ces panneaux pour visualiser et exposer des métriques spécifiques de vos composants GDC.

La plate-forme Observability expose une API qui vous permet de configurer des personnalisations pour l'arrangement visuel de vos métriques. Par exemple, définissez des seuils d'acceptation, affichez les signaux appropriés, libellez les graphiques et choisissez une résolution temporelle cohérente.

Tableaux de bord disponibles

En supposant que votre environnement soit opérationnel, vous verrez immédiatement quelques tableaux de bord de métriques sur la page d'accueil de l'instance de surveillance. Par exemple, vous pouvez observer l'état du commutateur et l'état des composants du système.

Utilisez les tableaux de bord des commutateurs et des clusters pour surveiller les métriques des clusters et des nœuds. Accédez aux tableaux de bord de journalisation et de surveillance pour observer les clusters d'administrateur.

Page d'accueil avec la liste des tableaux de bord disponibles et ceux consultés récemment

Voici les métriques les plus pertinentes pour les administrateurs de plate-forme :

  • Kubernetes / Serveur d'API : affiche l'état du serveur d'API par cluster dans l'organisation.
  • Kubernetes / Ressources de calcul / Multicluster : affiche l'utilisation des ressources à l'échelle de l'organisation.
  • Kubernetes / Ressources de calcul / Cluster : affiche l'utilisation des ressources par cluster.
  • Kubernetes / Volumes persistants : affiche l'utilisation des volumes persistants Kubernetes dans chaque cluster.
  • État des nœuds : affiche l'utilisation des ressources sur chaque nœud de chaque cluster.
  • État des pods : affiche la consommation de ressources de chaque pod dans chaque cluster.

L'image suivante montre un exemple de tableau de bord Kubernetes / Ressources de calcul / Multi-cluster.

Graphique en courbes montrant l'utilisation du processeur et liste des clusters indiquant les quotas de processeur

Accéder à l'instance de surveillance de votre projet

Vous devez obtenir une autorisation pour accéder aux tableaux de bord de surveillance. Pour obtenir les autorisations nécessaires pour vous connecter et afficher les métriques dans l'instance de surveillance de votre projet, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle Lecteur Grafana de l'organisation (organization-grafana-viewer). L'administrateur IAM de l'organisation peut vous accorder l'accès en créant une liaison de rôle :

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

Remplacez les éléments suivants :

  • ADMIN_KUBECONFIG : chemin d'accès au fichier kubeconfig du cluster d'administrateur.
  • USER_NAME : nom de compte de l'utilisateur qui nécessite la liaison de rôle.

Pour en savoir plus sur l'attribution de rôles, consultez les ressources suivantes :

Créer des tableaux de bord Grafana

Cette section décrit la procédure à suivre pour créer et gérer des tableaux de bord dans votre instance Grafana.

Pour créer un tableau de bord dans GDC, procédez comme suit :

  1. Remplissez les conditions préalables de la section "Avant de commencer".
  2. Ouvrez le point de terminaison Grafana de votre projet.
  3. Créez un objet ConfigMap pour votre tableau de bord.
  4. Créez une ressource personnalisée Dashboard.

Avant de commencer

Avant de créer des tableaux de bord, vous devez obtenir l'accès à l'instance de surveillance. Pour en savoir plus, consultez Accéder aux tableaux de bord.

  1. Collectez des métriques à partir de votre projet GDC avant de créer des tableaux de bord.
  2. Pour vous connecter, créer des tableaux de bord et visualiser des métriques, demandez à l'administrateur IAM de votre projet de vous accorder le rôle Lecteur Grafana du projet (project-grafana-viewer).
  3. Définissez le chemin d'accès au fichier kubeconfig en tant que variable d'environnement :

    export KUBECONFIG=KUBECONFIG_FILE
    

    Remplacez KUBECONFIG_FILE par le chemin d'accès au fichier kubeconfig sur le cluster d'administrateur où vous souhaitez créer le tableau de bord.

Point de terminaison de surveillance

Ouvrez l'URL suivante pour accéder au point de terminaison de votre projet :

https://GDC_URL/PROJECT_NAMESPACE/grafana

Remplacez les éléments suivants :

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

Créer un objet ConfigMap pour votre tableau de bord

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

  1. Accédez au point de terminaison de votre projet.
  2. Dans le menu de navigation, cliquez sur le bouton Ajouter .
  3. Dans le menu déroulant qui s'affiche, cliquez sur Tableau de bord. L'instance crée un tableau de bord vide.
  4. Sur le tableau de bord vide, ajoutez tous les panneaux de votre choix. Vous pouvez personnaliser vos informations et modifier vos panneaux pour fournir vos requêtes ou effectuer d'autres modifications.

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

  6. Dans le menu de navigation, cliquez sur l'option Modèle JSON.

  7. Copiez le modèle JSON du tableau de bord et collez-le dans un fichier en texte brut pour le conserver.

  8. Remplacez les champs id et uid de premier niveau par la valeur null dans le modèle JSON.

  9. Créez un objet ConfigMap à partir de la ligne de commande. Dans la section data de votre objet ConfigMap, collez le modèle JSON que vous avez copié précédemment dans un fichier .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
    

    Remplacez les éléments suivants :

    • PROJECT_NAMESPACE : espace de noms de votre projet.
    • DASHBOARD_CONFIGMAP_NAME : nom que vous souhaitez attribuer à votre objet ConfigMap.
    • JSON_FILE_NAME : nom que vous souhaitez donner au fichier dans lequel vous collez le modèle JSON du tableau de bord.

    Pour obtenir un exemple de ce à quoi cet objet doit ressembler, consultez l'exemple ConfigMap pour un tableau de bord.

  10. Déployez l'objet ConfigMap de votre tableau de bord dans le cluster d'administrateur.

Exemple ConfigMap pour un tableau de bord

Le fichier YAML suivant montre un exemple de l'objet ConfigMap d'un tableau de bord pour les métriques de 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": "-- 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
      }

Créer une ressource personnalisée Dashboard

Pour créer une ressource personnalisée (CR) Dashboard et activer le tableau de bord dans le projet concerné, procédez comme suit :

  1. Créez un CR Dashboard à partir de la ligne de commande et configurez le fichier avec le nom que vous avez donné à l'objet ConfigMap de votre tableau de bord :

    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
    

    Remplacez les éléments suivants :

    • PROJECT_NAMESPACE : espace de noms de votre projet.
    • CUSTOM_RESOURCE_NAME : nom que vous souhaitez attribuer à votre ressource personnalisée Dashboard.
    • DASHBOARD_CONFIGMAP_NAME : nom que vous avez donné à l'objet ConfigMap pour votre tableau de bord.
    • JSON_FILE_NAME : nom que vous avez donné au fichier contenant le modèle JSON du tableau de bord dans l'objet ConfigMap.
  2. Déployez la RS Dashboard dans l'espace de noms du projet. Cette action configure le service Observability pour importer le tableau de bord prédéfini dans l'instance de surveillance de votre projet.

Les tableaux de bord sont isolés des autres projets, tout comme les métriques et les journaux. Par conséquent, si vous souhaitez utiliser le même tableau de bord dans plusieurs projets, déployez une ressource personnalisée Dashboard dans chacun d'eux. De plus, les données de journalisation et de surveillance auxquelles le tableau de bord accède doivent être disponibles dans tous ces projets.

Le processus qui gère les tableaux de bord détecte les modifications apportées à la CR Dashboard et à l'objet ConfigMap. Si vous modifiez l'un ou l'autre, le programme reflète le changement dans l'instance de surveillance. Pour mettre à jour ou supprimer un tableau de bord, vous devez appliquer les modifications dans le CR et le déployer à nouveau. Vous ne pouvez pas enregistrer les modifications effectuées directement dans l'UI de surveillance.

Pour créer un tableau de bord dans un dossier ou modifier les dossiers, modifiez la valeur foldername dans la section spec de la CR Dashboard. Sinon, laissez-le sur Default. Le processus crée automatiquement les dossiers s'ils n'existent pas.