Interroger et afficher des métriques

Après avoir collecté des métriques à partir des charges de travail déployées dans votre projet GDC, vous pouvez interroger et afficher les métriques dans des tableaux de bord à partir de l'instance de surveillance du système du projet ou interroger les métriques à partir de l'API HTTP de l'appliance GDC isolée.

Interroger et afficher des métriques dans des tableaux de bord

L'instance Grafana de votre projet, également appelée instance de surveillance du système, inclut des données permettant de surveiller les composants au niveau du projet pour l'observabilité des données, tels que l'utilisation du processeur, la consommation de stockage, la surveillance du réseau et du serveur, les journaux, les alertes et les métriques.

Pour afficher les métriques, utilisez les tableaux de bord de la page Explorer de l'instance de surveillance du système. Pour afficher des métriques spécifiques, effectuez des requêtes sur la page Explorer.

Avant de commencer

Avant d'interroger et d'afficher les métriques dans les tableaux de bord, vous devez obtenir l'accès à l'instance de surveillance. Pour en savoir plus, consultez Accéder aux tableaux de bord.

Créer des requêtes pour vos métriques

Surveillez et affichez les métriques à des fins d'observabilité des données sur vos applications via l'instance de surveillance du système de votre projet. L'interface utilisateur (UI) intégrée de l'instance contient des tableaux de bord par défaut provenant de composants standards et des tableaux de bord personnalisés que vous créez pour vos besoins spécifiques. En supposant que votre environnement soit opérationnel, vous verrez immédiatement quelques tableaux de bord de métriques sur la page Available Dashboards (Tableaux de bord disponibles).

Interrogez les métriques depuis l'UI pour les récupérer visuellement à partir de votre projet et obtenir une vue intégrée pour surveiller vos applications. Pour filtrer les résultats, recherchez des métriques par libellés à l'aide d'expressions du langage de requête.

Point de terminaison de l'instance de surveillance du système

L'URL suivante est le point de terminaison de l'instance de surveillance du projet platform-obs :

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

Métriques des requêtes

Pour interroger les métriques de votre projet, procédez comme suit :

Pour récupérer des métriques, procédez comme suit :

  1. Dans la console GDC, sélectionnez un projet.
  2. Dans le menu de navigation, cliquez sur Opérations > Surveillance.
  3. Cliquez sur Tout afficher dans Grafana.

Une nouvelle page s'ouvre avec l'URL de l'instance de surveillance de votre projet.

  1. Dans l'UI de l'instance de surveillance, cliquez sur explore Explorer dans le menu de navigation pour ouvrir la page Explorer.
  2. Dans le menu déroulant de la barre Explorer, sélectionnez prometheus pour récupérer les métriques.
  3. Saisissez une requête pour rechercher des métriques à l'aide d'expressions PromQL (Prometheus Query Language). Vous pouvez effectuer cette étape de l'une des deux manières suivantes :

    • Sélectionnez une métrique et un libellé pour votre requête dans les menus déroulants Métrique et Filtres de libellé. Cliquez sur ajouter Ajouter pour ajouter d'autres libellés à votre requête. Cliquez ensuite sur Exécuter la requête.
    • Saisissez votre requête directement dans le champ de texte Métriques, puis appuyez sur Maj+Entrée pour l'exécuter.

    La page affiche les métriques correspondant à votre requête.

L'option Prometheus est sélectionnée sur la page "Explore" (Explorer) de l'interface utilisateur Grafana pour obtenir des métriques.

Figure 1 : Option de menu permettant d'interroger les métriques à partir de l'interface utilisateur Grafana.

Dans la figure 1, l'option prometheus affiche l'interface qui vous permet de créer des requêtes à partir de Grafana pour récupérer des métriques.

Pour obtenir des exemples de valeurs de libellés que vous pouvez utiliser pour interroger des métriques, consultez Exemples de requêtes et de libellés.

Exemples de requêtes et de libellés

Vous pouvez interroger les métriques collectées à l'aide du nom de la métrique et des libellés clé-valeur. Pour cette raison, une requête PromQL utilise la syntaxe suivante :

metric_name{label_one="value", label_two="value"}

Les libellés vous permettent de différencier les caractéristiques d'une métrique. De cette façon, les auteurs de conteneurs font en sorte que leurs charges de travail génèrent des métriques et ajoutent des tags pour filtrer ces métriques selon leurs besoins. Par exemple, vous pouvez utiliser une métrique api_http_requests_total pour comptabiliser le nombre de requêtes HTTP reçues. Vous pouvez ensuite ajouter un libellé request_method à cette métrique, qui prend une valeur POST, GET ou PUT. Par conséquent, vous créez trois flux de métriques pour chaque type de requête que vous pouvez recevoir. Dans ce cas, pour trouver le nombre de requêtes HTTP GET, exécutez la requête suivante :

api_http_requests_total{request_method="GET"}

Voici quelques-uns des libellés par défaut que la ressource personnalisée MonitoringTarget ajoute et que vous pouvez utiliser pour interroger les métriques :

  • _gdch_service : nom abrégé du service.
  • cluster : nom du cluster.
  • container_name : nom du conteneur dans un pod
  • namespace_name : espace de noms de votre projet
  • pod_name : préfixe du nom du pod

Le tableau suivant décrit les libellés que le service de scraping ajoute automatiquement :

Libellés par défaut du service de scraping
Libellé de la métrique Description
job Nom interne du job de récupération utilisé pour collecter la métrique. Les jobs créés par la ressource personnalisée MonitoringTarget ont un nom qui suit le modèle suivant :

PROJECT_NAME-obs-system/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J

PROJECT_NAME-obs-system/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J

I et J sont des nombres uniques déterminés en interne pour éviter les conflits de noms.
instance $IP:$PORT du service abandonné. Si une ressource de charge de travail comporte plusieurs répliques, utilisez ce champ pour les différencier.

Les exemples de code suivants montrent comment utiliser des libellés et des valeurs pour interroger différentes métriques d'observabilité des données :

  • Affichez tous les flux de métriques des opérations traitées dans votre projet :

    processed_ops_total
    
  • Affichez les opérations traitées collectées dans un cluster :

    processed_ops_total{cluster="CLUSTER_NAME"}
    
  • Affichez l'utilisation du processeur collectée sur un cluster :

    cpu_usage{cluster="CLUSTER_NAME"}
    

Utilisez l'outil de modification des libellés de métriques pour ajouter des libellés qui n'étaient pas exposés initialement par les conteneurs récupérés et renommer les métriques produites. Vous devez configurer la CR MonitoringTarget pour ajouter des libellés aux métriques qu'elle collecte. Spécifiez ces libellés dans le champ metricsRelabelings de la CR. Pour en savoir plus, consultez Métriques des libellés.

Interroger des métriques à partir de l'API Cortex

Cortex est le stockage à long terme des métriques Prometheus dans GDC. La plate-forme Observability expose un point de terminaison d'API HTTP Cortex pour interroger et lire les métriques, les alertes et d'autres données de séries temporelles Prometheus de votre projet.

Interrogez les métriques directement à partir de l'API HTTP pour lire et exporter des métriques et d'autres données de séries temporelles vers des outils externes, configurer des tâches automatisées, adapter les réponses et créer des intégrations en fonction de votre cas d'utilisation de la surveillance du système. Par exemple, insérez la sortie dans une autre commande, exportez les détails au format texte ou configurez une job Cron Linux. Vous pouvez appeler l'API depuis l'interface de ligne de commande (CLI) ou un navigateur Web, et utiliser des expressions de langage de requête comme paramètres de point de terminaison pour obtenir le résultat au format JSON.

Cette section explique comment appeler le point de terminaison de l'API Cortex à partir de la CLI à l'aide de la spécification de l'API Prometheus pour interroger les métriques d'observabilité des données.

Avant de commencer

Vous devez obtenir l'autorisation d'interroger les métriques à partir de la CLI. Pour obtenir les autorisations nécessaires pour accéder au point de terminaison de l'API Cortex, demandez à l'administrateur IAM de votre projet de vous attribuer le rôle Lecteur Prometheus Project Cortex (project-cortex-prometheus-viewer).

Créez les liaisons de rôle suivantes à l'aide des commandes kubectl pour Cortex Prometheus pour chaque persona :

  1. Administrateur racine de l'opérateur d'infrastructure (IO) : Project Cortex Prometheus Viewer

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    io-cortex-prometheus-viewer-binding -n infra-obs 
    --user=fop-infrastructure-operator@example.com 
    --role=project-cortex-prometheus-viewer
    
  2. Administrateur de plate-forme (PA) Administrateur racine : Project Cortex Prometheus Viewer

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    pa-cortex-prometheus-viewer-binding -n platform-obs 
    --user=fop-platform-admin@example.com --role=project-cortex-prometheus-viewer
    
  3. Administrateur racine de l'opérateur d'application (AO) : Project Cortex Prometheus Viewer

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    project-cortex-prometheus-viewer-binding -n PROJECT_NAME 
    --user=USER_NAME --role=project-cortex-prometheus-viewer
    

    Remplacez les éléments suivants :

    • PROJECT_NAME : le nom de votre projet
    • USER_NAME : nom de compte de l'utilisateur qui nécessite la liaison de rôle.

Une fois l'association de rôle créée, vous pouvez accéder à l'API Prometheus avec votre nom d'utilisateur.

Point de terminaison de l'API HTTP

L'URL suivante est le point de terminaison de l'API HTTP permettant d'accéder aux métriques du projet platform-obs :

https://GDC_URL/PROJECT_NAME/cortex/prometheus/

Remplacez les éléments suivants :

  • GDC_URL : URL de votre organisation dans GDC.
  • PROJECT_NAME : le nom de votre projet

Appeler le point de terminaison de l'API

Suivez les étapes ci-dessous pour accéder au point de terminaison de l'API Cortex depuis l'interface de ligne de commande et interroger les métriques :

  1. Assurez-vous de remplir les conditions préalables.
  2. Ouvrez la CLI.
  3. Utilisez l'outil curl pour appeler le point de terminaison Cortex et étendre l'URL à l'aide de la norme https://prometheus.io/docs/prometheus/latest/querying/api/ pour interroger les métriques. Exemple :

    curl https://console.org-1.zone1.google.gdch.test/alice/cortex/prometheus/api/v1/query?query=my_metric{cluster="org-1-system"}&time=2015-07-01T20:10:51.781Z
    

Vous obtenez le résultat dans la CLI après la commande. Le format de réponse de l'API est JSON.