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.
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.
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 :
- Pour obtenir une description du rôle "Lecteur Grafana de l'organisation", consultez Descriptions des rôles prédéfinis.
- Pour savoir comment ajouter et supprimer des rôles dans l'interface utilisateur, consultez Accorder l'accès à des ressources.
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 :
- Remplissez les conditions préalables de la section "Avant de commencer".
- Ouvrez le point de terminaison Grafana de votre projet.
- Créez un objet
ConfigMap
pour votre tableau de bord. - 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.
- Collectez des métriques à partir de votre projet GDC avant de créer des tableaux de bord.
- 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
). 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 :
- Accédez au point de terminaison de votre projet.
- Dans le menu de navigation, cliquez sur le bouton Ajouter .
- Dans le menu déroulant qui s'affiche, cliquez sur Tableau de bord. L'instance crée un tableau de bord vide.
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.
Dans la barre de menu, cliquez sur le bouton
Paramètres du tableau de bord pour ouvrir la page Paramètres.Dans le menu de navigation, cliquez sur l'option Modèle JSON.
Copiez le modèle JSON du tableau de bord et collez-le dans un fichier en texte brut pour le conserver.
Remplacez les champs
id
etuid
de premier niveau par la valeurnull
dans le modèle JSON.Créez un objet
ConfigMap
à partir de la ligne de commande. Dans la sectiondata
de votre objetConfigMap
, 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.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 :
Créez un CR
Dashboard
à partir de la ligne de commande et configurez le fichier avec le nom que vous avez donné à l'objetConfigMap
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
.
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.