Interroger et afficher des métriques

Une fois que vous avez collecté des métriques à partir de vos charges de travail déployées dans l'appliance isolée Google Distributed Cloud (GDC), vous pouvez commencer à les analyser. Pour analyser les métriques, vous pouvez les visualiser et les filtrer dans des tableaux de bord Grafana informatifs, ou y accéder directement depuis Cortex à l'aide de l'outil curl pour un script et une automatisation flexibles.

Vous pouvez accéder à vos métriques de deux manières :

  • Tableaux de bord Grafana : explorez les tendances et identifiez les anomalies grâce à des visualisations intuitives des métriques clés, comme l'utilisation du processeur, la consommation de stockage et l'activité réseau. Grafana fournit une interface conviviale pour filtrer et analyser les données de vos charges de travail dans des tableaux de bord.
  • Point de terminaison Cortex : pour les cas d'utilisation plus avancés, interrogez directement l'instance Cortex de votre projet à l'aide de l'outil curl sur une ligne de commande. Cortex stocke les métriques Prometheus de votre projet et fournit un point de terminaison HTTP pour l'accès programmatique. Cet accès vous permet d'exporter des données, d'automatiser des tâches et de créer des intégrations personnalisées.

Avant de commencer

Pour obtenir les autorisations nécessaires pour interroger et visualiser les métriques dans les tableaux de bord Grafana, demandez à votre administrateur IAM au niveau de l'organisation ou du projet de vous accorder l'un des rôles prédéfinis "Lecteur Grafana au niveau de l'organisation" ou "Lecteur Grafana au niveau du projet". Selon le niveau d'accès et les autorisations dont vous avez besoin, vous pouvez obtenir des rôles Grafana dans une organisation ou un projet.

Vous pouvez également demander à l'administrateur IAM de votre projet de vous accorder le rôle Lecteur Prometheus Project Cortex dans l'espace de noms de votre projet pour obtenir les autorisations nécessaires pour interroger les métriques à partir du point de terminaison Cortex.

Pour en savoir plus sur ces rôles, consultez Préparer les autorisations IAM.

Obtenir et filtrer vos métriques

Sélectionnez l'une des méthodes suivantes pour créer des requêtes, visualiser des tendances et filtrer des métriques à partir des charges de travail de votre projet :

Tableaux de bord Grafana

Cette section explique comment accéder à vos métriques à l'aide des tableaux de bord Grafana.

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 : 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.

Afficher les métriques dans l'interface utilisateur Grafana

Récupérez les métriques dans l'interface utilisateur Grafana :

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

    Une nouvelle page s'ouvre sur votre point de terminaison Grafana et affiche l'interface utilisateur.

  4. Dans l'interface utilisateur,cliquez sur Explorer Explorer dans le menu de navigation pour ouvrir la page Explorer.

  5. Dans le menu de la barre Explorer, sélectionnez une source de données pour récupérer les métriques, en fonction de votre type d'univers :

    • Univers à zone unique : sélectionnez prometheus pour afficher les métriques de la zone unique de votre univers.
  6. 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 Métriques et Filtres de libellés. Cliquez sur add Add (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 "Explorer" 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.

Point de terminaison Cortex

Cette section explique comment accéder à vos métriques à l'aide de Cortex.

Identifier votre point de terminaison Cortex

L'URL suivante correspond au point de terminaison de l'instance Cortex de votre projet :

  https://GDC_URL/PROJECT_NAMESPACE/cortex/prometheus/

Remplacez les éléments suivants :

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

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

Authentifier la requête curl

  1. Téléchargez et installez la gdcloud CLI.
  2. Définissez la propriété gdcloud core/organization_console_url :

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. Se connecter avec le fournisseur d'identité configuré :

    gdcloud auth login
    
  4. Utilisez votre nom d'utilisateur et votre mot de passe pour vous authentifier et vous connecter.

    Une fois la connexion établie, vous pouvez utiliser l'en-tête d'autorisation dans votre requête cURL à l'aide de la commande gdcloud auth print-identity-token. Pour en savoir plus, consultez gdcloud auth.

Appeler le point de terminaison Cortex

Pour accéder au point de terminaison Cortex à l'aide de l'outil curl, procédez comme suit :

  1. Authentifiez la requête curl.
  2. Utilisez curl pour appeler le point de terminaison Cortex et étendre l'URL à l'aide de l'API HTTP Prometheus standard (https://prometheus.io/docs/prometheus/latest/querying/api/) pour interroger les métriques.

    Voici un exemple de requête curl :

    curl https://GDC_URL/PROJECT_NAME/cortex/prometheus/api/v1/query?query=my_metric{cluster="my-cluster"}&time=2015-07-01T20:10:51.781Z \
    -H "Authorization: Bearer $(gdcloud auth print-identity-token \
    --audiences=https://GDC_URL)"
    

    Vous obtenez le résultat suivant après l'exécution de la commande. La réponse de l'API est au format JSON.

Exemples de requêtes et de libellés

Vous pouvez interroger des métriques à l'aide du nom de la métrique et de paires clé-valeur pour les libellés. 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 manière, 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.

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 demande que vous pourriez 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"}

Pour en savoir plus sur les métriques et les libellés, consultez https://prometheus.io/docs/practices/naming/.

Voici quelques-uns des libellés par défaut ajoutés par la ressource personnalisée MonitoringTarget. Vous pouvez utiliser ces libellés par défaut 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 Prometheus ajoute automatiquement :

Libellés par défaut
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 :

obs-system/OBS_SHADOW_PROJECT_NAME/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 paires clé/valeur pour les libellés afin d'interroger différentes métriques :

  • 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 Kubernetes :

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

    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 ressource personnalisée MonitoringTarget pour ajouter des libellés aux métriques qu'elle collecte. Spécifiez ces libellés dans le champ metricsRelabelings de la ressource personnalisée. 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.