Collecter les métriques AWS CloudWatch à l'aide de l'exportateur Prometheus CloudWatch

Ce document explique comment utiliser l'exportateur Open Source Prometheus CloudWatch et l'agent Ops s'exécutant sur une instance Compute Engine pour collecter des métriques AWS CloudWatch et les stocker dans un projet Google Cloud. Ce document est destiné au public suivant:

  • Développeurs et administrateurs système devant collecter des métriques AWS CloudWatch Ce document explique comment configurer l'exportateur Prometheus CloudWatch pour collecter les métriques AWS CloudWatch.
  • Utilisateurs des métriques AWS CloudWatch avec des projets de connecteur AWS migrant vers l'exportateur Prometheus CloudWatch. Ce document comprend également des informations sur la migration de la collecte des anciennes métriques AWS CloudWatch dans les projets de connecteur.

Avec Cloud Monitoring, vous pouvez afficher vos métriques AWS dans le même contexte que vos métriques Google Cloud. Par exemple, vous pouvez créer un tableau de bord avec des graphiques indiquant l'utilisation du processeur pour vos instances Amazon EC2 et pour vos instances Compute Engine. Vous pouvez également créer des règles d'alerte pour surveiller les métriques AWS. Pour en savoir plus, consultez les sections suivantes:

Avant de commencer

Pour collecter les métriques AWS CloudWatch à l'aide de l'exportateur Prometheus CloudWatch, vous avez besoin des éléments suivants:

  • Un projet Google Cloud disposant des autorisations nécessaires pour effectuer les opérations suivantes :
    • Créer une VM
    • Écrire des journaux dans Cloud Logging
    • Écrire des métriques dans Cloud Monitoring
  • Un compte AWS avec des identifiants AWS que l'exportateur Prometheus peut utiliser pour récupérer des métriques. Pour en savoir plus, consultez la page Exécuter l'exportateur Prometheus.

Créer une VM Compute Engine

Nous vous recommandons de créer une VM Compute Engine Linux à utiliser spécifiquement pour exécuter l'agent Ops et l'exportateur Prometheus CloudWatch. Cette VM sert de site de collecte pour toutes les métriques AWS.

  1. Pour créer une VM Debian Linux nommée aws-exporter-test dans une zone que vous spécifiez, exécutez la commande suivante:

    gcloud compute instances create \
      --image-project debian-cloud \
      --image-family debian-11 \
      --zone ZONE \
      aws-exporter-test
    

    Configurez la commande comme suit:

    • Remplacez ZONE par la zone de votre nouvelle VM.
    • Facultatif. Remplacez aws-exporter-test par un autre nom pour votre VM.

    Pour en savoir plus sur cette commande, consultez la documentation de référence sur gcloud compute instances create.

  2. Pour accéder à votre VM afin d'installer l'exportateur Prometheus CloudWatch et l'agent Ops, vous pouvez utiliser la commande suivante:

    gcloud compute ssh --zone ZONE  --project PROJECT_ID  aws-exporter-test
    

    Configurez la commande comme suit:

    • Remplacez ZONE par la zone dans laquelle vous avez créé votre VM.
    • Remplacez PROJECT_ID par l'ID de votre projet Google Cloud.
    • Remplacez aws-exporter-test si vous avez créé votre VM sous un autre nom.

    Pour en savoir plus sur cette commande, consultez la documentation de référence sur gcloud compute ssh.

Configurer l'exportateur Prometheus CloudWatch

Les sections suivantes décrivent la procédure de téléchargement, d'installation et de configuration de l'exportateur Prometheus CloudWatch sur votre VM Compute Engine.

Télécharger l'exportateur Prometheus et le JRE

Pour exécuter l'exportateur Prometheus CloudWatch, vous devez télécharger l'exportateur et l'environnement d'exécution Java (JRE) version 11 ou ultérieure.

  1. Pour télécharger le fichier JAR contenant l'exportateur Prometheus CloudWatch, exécutez la commande suivante sur votre instance Compute Engine:

    curl -sSO https://github.com/prometheus/cloudwatch_exporter/releases/download/v0.15.1/cloudwatch_exporter-0.15.1-jar-with-dependencies.jar
    
  2. Pour installer le JRE, vous pouvez utiliser une commande semblable à celle-ci:

    sudo apt install default-jre
    

Configurer l'exportateur Prometheus

Pour configurer l'exportateur Prometheus CloudWatch, vous devez créer un fichier de configuration pour le ou les services AWS à partir desquels vous souhaitez collecter des métriques. Pour obtenir des informations générales, consultez la documentation de configuration de l'exportateur Prometheus CloudWatch.

  • Migrer des utilisateurs: si vous migrez vos métriques AWS CloudWatch existantes vers l'exportateur Prometheus CloudWatch, vous pouvez utiliser les fichiers de configuration figurant dans les configurations de l'exportateur Prometheus CloudWatch pour la migration. Ces fichiers de configuration sont conçus pour répliquer les métriques existantes le plus près possible, mais ils ne collectent pas toutes les métriques disponibles à l'aide de l'exportateur Prometheus CloudWatch pour les services AWS.

  • Nouveaux utilisateurs: si vous ne migrez pas des métriques existantes, nous vous recommandons de ne pas utiliser les configurations de migration. Consultez la documentation du service AWS CloudWatch pour découvrir comment définir des configurations d'exportateur pour d'autres services. Vous pouvez également trouver des exemples supplémentaires dans le dépôt GitHub de l'exportateur Prometheus CloudWatch.

Vous pouvez combiner la configuration de plusieurs services AWS en un seul fichier de configuration. Les exemples de ce document supposent que votre fichier de configuration s'appelle config.yml.

Exécuter l'exportateur Prometheus

Avant de pouvoir exécuter l'exportateur CloudWatch pour Prometheus, vous devez lui fournir des identifiants et des autorisations. L'exportateur Prometheus CloudWatch utilise le SDK Java AWS, qui permet de fournir des identifiants à l'aide des variables d'environnement suivantes:

Pour en savoir plus sur la fourniture d'identifiants au SDK, consultez la page SDK AWS pour Java 2.x.

Vous devez également être autorisé à utiliser l'API CloudWatch pour récupérer des métriques. Vous devez disposer des autorisations CloudWatch AWS IAM suivantes:

  • cloudwatch:ListMetrics
  • cloudwatch:GetMetricStatistics
  • cloudwatch:GetMetricData

L'utilisation de la fonctionnalité aws_tag_select nécessite également l'autorisation IAM AWS tag:GetResources.

Pour en savoir plus sur l'autorisation de l'accès aux services AWS, consultez la page AWS Identity and Access Management.

Pour exécuter l'exportateur Prometheus CloudWatch, procédez comme suit:

  1. Pour fournir des identifiants à l'exportateur, définissez les variables d'environnement de clé d'accès:

    export AWS_ACCESS_KEY=YOUR_ACCESS_KEY
    export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
    export AWS_SESSION_TOKEN=YOUR_SESSION_TOKEN
    

    Remplacez les variables YOUR_KEY par vos clés d'accès. Vous ne devez définir la variable d'environnement AWS_SESSION_TOKEN que si vous utilisez des identifiants temporaires.

  2. Pour tester votre configuration, démarrez l'exportateur et chargez votre fichier de configuration, exécutez la commande suivante:

    java -jar cloudwatch_exporter-0.15.1-jar-with-dependencies.jar 9106 config.yml
    

    Modifiez les valeurs de port (9106) et de fichier de configuration (config.yml) si nécessaire.

    Si vous modifiez votre fichier config.yml pendant que l'exportateur est en cours d'exécution, vous pouvez le recharger en exécutant la commande suivante:

    curl -X POST localhost:9106/-/reload
    

    Pour une utilisation dans un environnement de production, vous pouvez configurer l'exportateur pour qu'il redémarre si la VM redémarre. Par exemple, sur les systèmes Debian, vous pouvez utiliser le gestionnaire de systèmes et de services systemd.

Configurer l'agent Ops

Les sections suivantes décrivent comment installer, configurer et démarrer l'agent Ops. Ces sections fournissent des informations de configuration minimales pour l'agent Ops à utiliser avec l'exportateur Prometheus CloudWatch. Pour en savoir plus sur ces sujets, consultez la présentation de l'agent Ops.

Installer l'agent Ops

Pour installer l'agent Ops, téléchargez et exécutez le script d'installation de l'agent à l'aide des commandes suivantes:

curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install

Configurer l'agent Ops

Pour configurer l'agent Ops, vous devez ajouter des éléments de configuration au fichier de configuration utilisateur de l'agent. Sous Linux, le fichier de configuration utilisateur est /etc/google-cloud-ops-agent/config.yaml.

Lorsque vous configurez l'agent Ops pour collecter des métriques AWS à partir de l'exportateur CloudWatch pour Prometheus, vous utilisez le récepteur Prometheus de l'agent. Ce document décrit deux configurations de base pour l'agent Ops. Sélectionnez l'une des configurations et ajoutez-la au fichier de configuration utilisateur:

sudo vim /etc/google-cloud-ops-agent/config.yaml

Configuration de base de l'agent Ops

La configuration suivante fournit une configuration minimale pour l'agent Ops. Cette configuration effectue les opérations suivantes :

  • Crée un récepteur nommé aws de type prometheus. Le récepteur est configuré pour extraire les métriques de la tâche aws_exporter. Le port spécifié doit correspondre à celui sur lequel l'exportateur Prometheus CloudWatch exporte des métriques. Consultez la section Exécuter l'exportateur Prometheus.

  • Crée un pipeline nommé aws_pipeline qui utilise le destinataire de métriques aws.

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

Configuration qui supprime les métriques JVM

La configuration suivante effectue les mêmes opérations que la configuration de base, mais ajoute également une configuration de changement des libellés qui supprime les métriques JVM générées par l'exportateur. La suppression de ces métriques réduit les données de métriques ingérées, mais peut rendre les problèmes de l'exportateur plus difficiles à déboguer, car vous n'obtenez pas ses propres métriques:

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
            # Drop the exporter's own JVM metrics to reduce noise.
            metric_relabel_configs:
              - source_labels: [ __name__ ]
                regex: 'jvm_.*'
                action: drop
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

Vous pouvez créer des configurations beaucoup plus complexes pour l'agent Ops.

Redémarrer l'agent Ops

Pour appliquer les modifications de configuration à l'agent Ops, vous devez le redémarrer.

  1. Pour redémarrer l'agent, exécutez la commande suivante sur votre instance :
    sudo service google-cloud-ops-agent restart
    
  2. Pour vérifier que l'agent a redémarré, exécutez la commande suivante et vérifiez que les composants "Agent de métriques" et "Agent de journalisation" ont démarré :
    sudo systemctl status google-cloud-ops-agent"*"
    

Afficher les métriques dans Cloud Monitoring

Dans Cloud Monitoring, vous pouvez interroger vos métriques AWS CloudWatch et créer des graphiques comme vous le feriez pour n'importe quelle autre métrique. À partir de l'interface de l'explorateur de métriques, vous pouvez utiliser PromQL, Monitoring Query Language (MQL) ou une interface de générateur de requêtes. Pour en savoir plus, consultez Créer des graphiques avec l'Explorateur de métriques.

Si vous avez créé des graphiques que vous souhaitez conserver, vous pouvez les enregistrer dans des tableaux de bord personnalisés. Pour en savoir plus, consultez la section Présentation des tableaux de bord.

Le graphique suivant présente une requête PromQL pour la métrique aws_ec2_cpuutilization_sum pour les VM AWS:

Le graphique indique le résultat de la récupération de la statistique aws_ec2_cpuutilization_sum pour les VM AWS à l'aide de PromQL.

Vous pouvez interroger n'importe quelle métrique dans Cloud Monitoring à l'aide de PromQL. Pour en savoir plus, consultez la section Mapper les métriques Cloud Monitoring sur PromQL.

Vous pouvez interroger les métriques Prometheus à l'aide de PromQL ou d'outils Cloud Monitoring tels que le langage MQL (Monitoring Query Language). Lorsque les métriques Prometheus sont ingérées dans Cloud Monitoring, chaque métrique est transformée à l'aide de la transformation OpenTelemetry-to-Prometheus standard et mappée au type de ressource surveillée prometheus_target de Cloud Monitoring. La transformation inclut les modifications suivantes:

  • Le nom de la métrique est précédé de la chaîne prometheus.googleapis.com/.
  • Tous les caractères non alphanumériques, tels que les points (.), dans le nom de la métrique sont remplacés par des traits de soulignement (_).
  • Le nom de la métrique est postfixé par une chaîne indiquant son genre, tel que /gauge ou /counter.

Pour interroger la métrique Prometheus aws_ec2_cpuutilization_sum à l'aide de MQL, reportez-vous à la métrique prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge et spécifiez le type de ressource surveillée prometheus_target:

fetch prometheus_target :: 'prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge'

Le graphique suivant montre le résultat de la requête MQL pour la métrique aws_ec2_cpuutilization_sum de Prometheus:

Le graphique indique le résultat de l'extraction de la statistique aws_ec2_cpuutilization_sum pour les VM AWS à l'aide de MQL.

Alerte sur le comportement des métriques

Dans Cloud Monitoring, vous pouvez créer des [règles d'alerte][alert-intro] pour surveiller vos métriques AWS CloudWatch et vous avertir en cas de pics, de baisses ou de tendances dans les valeurs de métriques.

  • Pour en savoir plus sur la création d'alertes basées sur MQL, consultez la section Règles d'alerte avec MQL.
  • Pour en savoir plus sur l'utilisation de l'interface du générateur de requêtes pour créer des règles d'alerte, consultez Créer des règles d'alerte.

Surveiller plusieurs régions

La configuration de l'exportateur Prometheus CloudWatch n'accepte l'utilisation que d'une seule région par fichier de configuration. Si vous devez surveiller plusieurs régions, nous vous recommandons d'exécuter plusieurs instances de l'exportateur Prometheus, une configurée pour chaque région à surveiller. Vous pouvez exécuter plusieurs exportateurs sur une même VM ou les répartir sur plusieurs VM. Les images Docker de l'exportateur Prometheus peuvent être utiles dans ce cas de figure.

Vous pouvez configurer l'agent Ops qui s'exécute sur la VM Compute Engine pour scraper plusieurs points de terminaison Prometheus. Lorsque vous configurez plusieurs instances de l'exportateur Prometheus, nous vous recommandons d'utiliser un nom job différent pour la configuration de scraping afin de pouvoir distinguer les instances de l'exportateur si vous devez les dépanner.

Pour en savoir plus sur la configuration de l'agent Ops et du récepteur Prometheus, consultez Configurer l'agent Ops.

Coût

Amazon facture chaque requête API CloudWatch ou chaque métrique CloudWatch demandée. Pour connaître la tarification actuelle, consultez la page Tarification Amazon CloudWatch. L'exportateur Prometheus CloudWatch présente les caractéristiques de requête suivantes, qui peuvent avoir une incidence sur vos coûts Amazon:

  • Lorsque vous utilisez la méthode GetMetricStatistics (par défaut), chaque métrique nécessite une requête API. Chaque demande peut inclure plusieurs statistiques.
  • Lorsque vous utilisez aws_dimensions, l'exportateur doit effectuer des requêtes API pour déterminer les métriques à demander. Le nombre de demandes de dimensions est généralement négligeable par rapport au nombre de requêtes de métriques.

Cloud Monitoring facture les métriques AWS CloudWatch de l'exportateur Prometheus en fonction du nombre d'échantillons ingérés. Pour connaître les tarifs actuels, consultez la page Récapitulatif des tarifs de Monitoring.

Guide de migration

Cette section fournit des informations supplémentaires pour les clients qui migrent des anciennes métriques AWS CloudWatch avec des projets de connecteur AWS vers la solution d'exportateur Prometheus CloudWatch.

Si vous ne migrez pas vers l'exportateur Prometheus CloudWatch à partir de l'ancienne solution, vous pouvez ignorer cette section.

Mapper les anciennes métriques AWS CloudWatch sur les métriques de l'exportateur Prometheus CloudWatch

Cette section décrit la correspondance entre les anciennes métriques AWS CloudWatch et les métriques collectées par l'exportateur Prometheus CloudWatch, en utilisant la métrique AWS CloudWatch CPUUtilization comme exemple.

La métrique CPUUtilization mesure le pourcentage de temps CPU physique utilisé par Amazon EC2 pour exécuter l'instance, y compris la durée d'exécution du code utilisateur et du code Amazon EC2. En général, la valeur de la métrique correspond à la somme de l'utilisation du processeur invité et de l'utilisation du processeur par l'hyperviseur.

L'ancienne solution transmet ces données à Cloud Monitoring à l'aide des métriques suivantes:

Les métriques des valeurs telles que "moyenne" et "maximale" représentent les statistiques CloudWatch pertinentes pour la métrique. Chacune d'elles indique une agrégation différente de la métrique AWS CPUUtilization. Ces métriques sont écrites par rapport au type de ressource surveillée aws_ec2_instance, et la valeur du libellé de ressource instance_id correspond à l'identifiant de l'instance Amazon EC2 qui écrit la métrique.

Lorsque vous utilisez l'exportateur Prometheus CloudWatch et l'agent Ops, les métriques sont signalées comme suit:

  • aws_ec2_cpuutilization_average
  • aws_ec2_cpuutilization_maximum
  • aws_ec2_cpuutilization_minimum
  • aws_ec2_cpuutilization_samplecount
  • aws_ec2_cpuutilization_sum

Ces métriques correspondent aux métriques aws.googleapis.com/EC2/CPUUtilization/Statistic collectées par l'ancienne solution. Ces métriques sont écrites pour le type de ressource surveillée prometheus-target.

Les valeurs des étiquettes de la ressource prometheus-target reflètent la VM Compute Engine sur laquelle l'exportateur Prometheus CloudWatch est en cours d'exécution, et non celles de l'instance Amazon EC2. Les valeurs des étiquettes de la métrique sont définies par l'exportateur Prometheus. Les métriques aws_ec2_cpuutilization_statistic conservent l'ID d'instance de l'instance Amazon EC2 dans le libellé de métrique instance_id. La capture d'écran suivante montre une requête PromQL qui représente la métrique aws_ec2_cpuutilization_sum. Le tableau affiche les valeurs des libellés sélectionnés:

Le tableau indique la valeur de l'étiquette "intance_id" pour une métrique EC2.

Si vous utilisez l'une des configurations d'exportateur Prometheus CloudWatch pour la migration fournies, mais que vous souhaitez collecter des dimensions ou des statistiques supplémentaires pour les métriques, vous pouvez modifier la configuration. Pour en savoir plus, consultez la documentation sur la configuration de l'exportateur Prometheus CloudWatch.

Recréer vos tableaux de bord et vos règles d'alerte

Les tableaux de bord et règles d'alerte existants qui utilisent les anciennes métriques AWS CloudWatch ne fonctionnent pas pour les métriques ingérées à l'aide de l'exportateur Prometheus CloudWatch. Il s'agit d'une modification destructive.

Pour obtenir la même observabilité sur vos systèmes AWS, vous devez recompiler vos tableaux de bord et vos règles d'alerte pour utiliser les métriques collectées par l'exportateur Prometheus.

Perte de métadonnées

En plus de collecter des métriques AWS CloudWatch, l'ancienne solution collectait également les métadonnées de l'ancien agent Monitoring et de l'ancien agent Logging exécuté sur les instances Amazon Elastic Compute Cloud (Amazon EC2). Ces métadonnées de ressource ont été jointes aux métriques dans Cloud Monitoring et apparaissaient sous forme de libellés de métadonnées système ou utilisateur tels que "Nom de l'instance", "Zone de disponibilité", "Type de machine", etc.

L'exportateur Prometheus CloudWatch peut ne pas collecter les mêmes métadonnées. Si vous utilisez l'un des anciens agents sur les instances de VM Amazon EC2, les sections suivantes décrivent comment utiliser l'exportateur Prometheus pour collecter les métadonnées manquantes et les joindre aux métriques collectées par l'exportateur Prometheus:

Après le 21 août 2024, lorsque l'ancienne solution AWS CloudWatch sera abandonnée, ces étiquettes de métadonnées ne seront plus disponibles. Les libellés de métrique et de ressources aws_ec2_instance ne sont pas affectés.

Pour les utilisateurs de l'ancien agent Monitoring sur les instances Amazon EC2

Si vous utilisez les métadonnées AWS dans vos graphiques et vos requêtes, et que vous souhaitez les gérer, vous pouvez les collecter à l'aide de l'exportateur Prometheus CloudWatch. Créez une VM Compute Engine, puis configurez l'exportateur Prometheus CloudWatch et l'agent Ops comme décrit dans ce document. Utilisez le fichier de configuration ec2.yml lors de la configuration de l'exportateur Prometheus CloudWatch.

Le fichier de configuration ec2.yml utilise la fonctionnalité aws_tag_select. Lorsque la fonctionnalité aws_tag_select est utilisée dans la configuration, l'exportateur Prometheus CloudWatch exporte une métrique appelée aws_resource_info. La métrique aws_resource_info signale une série temporelle avec les métadonnées de la ressource AWS dans les libellés de métrique. Ces métadonnées incluent tous les tags d'instances Amazon EC2, y compris le nom de l'instance, sous le libellé tag_Name.

Si vous souhaitez collecter des métadonnées supplémentaires, vous pouvez les ajouter en utilisant des tags d'instance sur l'instance Amazon EC2. Consultez la section Ajouter ou supprimer des tags d'instance EC2. La métrique aws_resource_info signalée par l'exportateur Prometheus inclut les métadonnées supplémentaires.

Vous pouvez ensuite joindre les libellés de métadonnées de la métrique aws_resource_info aux métriques internes de l'ancien agent Monitoring ou à n'importe quelle métrique Amazon EC2 à l'aide de MQL pour PromQL.

Jointure MQL

Par exemple, la requête MQL suivante joint la métrique auto de l'agent agent.googleapis.com/agent/uptime, écrite pour le type de ressource aws_ec2_instance, à la métrique de l'exportateur Prometheus CloudWatch aws_resource_info, écrite pour le type de ressource prometheus-target:

{
    aws_ec2_instance :: 'agent.googleapis.com/agent/uptime'
    | align next_older()
    | group_by [instance_id: resource.instance_id, resource.project_id, resource.region, resource.aws_account, metric.version]
    ;
    prometheus_target :: 'prometheus.googleapis.com/aws_resource_info/gauge'
    | align next_older()
    | group_by [instance_id: metric.instance_id, resource.project_id, aws_account: re_extract(metric.arn, "arn:aws:ec2:[^:]+:([^:]+):instance/.*"), region: concatenate("aws:", re_extract(metric.arn, "arn:aws:ec2:([^:]+):[^:]+:instance/.*")), name: metric.tag_Name]
}
| join
| val(0)

Les deux métriques sont jointes au moyen du libellé instance_id. Par conséquent, le nom de la VM (la valeur du libellé metric.tag_Name dans la métrique aws_resource_info) peut être ajouté au résultat de la jointure. La métrique automatique uptime de l'agent inclut le libellé de ressource region. La jointure avec le libellé region fonctionne, car AWS ne spécifie pas si les ID d'instance doivent être uniques au niveau régional ou mondial.

Pour en savoir plus sur MQL, consultez la présentation du langage de requête Monitoring.

Jointure PromQL

L'exemple suivant montre une requête PromQL qui joint la métrique aws_ec2_cpuutilization_average de l'exportateur Prometheus CloudWatch. L'exemple suivant montre une requête PromQL qui joint la métrique aws_ec2_cpuutilization_average de l'exportateur Prometheus CloudWatch à la métrique de métadonnées aws_resource_info. Les métriques sont jointes sur le libellé instance_id afin d'ajouter le nom de la VM (du libellé tag_Name de la métrique de métadonnées au résultat de la requête).

  aws_ec2_cpuutilization_average
* on(instance_id) group_left(tag_Name)
  aws_resource_info

Pour les utilisateurs de l'ancien agent Logging sur les instances Amazon EC2

L'ancien agent Logging, google-fluentd, transmet ses métadonnées directement à Cloud Logging. Par conséquent, l'abandon de la solution de métriques AWS CloudWatch à l'aide de l'ancien agent Monitoring n'a aucun effet sur les journaux collectés par l'agent Logging.

Toutefois, l'ancien agent Logging signale des métriques le concernant. Si vous souhaitez ajouter des métadonnées à ces métriques automatiques, vous pouvez créer une VM Compute Engine, puis configurer l'exportateur Prometheus CloudWatch et l'agent Ops comme décrit dans ce document. Utilisez le fichier de configuration ec2.yml lors de la configuration de l'exportateur Prometheus CloudWatch.

Vous devrez peut-être également modifier la configuration de votre ancien agent Logging. Le plug-in de sortie de l'ancien agent Logging est compatible avec l'option use_aws_availability_zone pour AWS. Cette option doit être définie sur false pour que l'agent écrit le libellé region plutôt que le libellé availability_zone. Pour en savoir plus sur l'emplacement du fichier de configuration du plug-in, consultez la page Configuration du plug-in de sortie Google Cloud fluentd.

Le fichier de configuration ec2.yml utilise la fonctionnalité aws_tag_select. Lorsque la fonctionnalité aws_tag_select est utilisée dans la configuration, l'exportateur Prometheus CloudWatch exporte une métrique appelée aws_resource_info. La métrique aws_resource_info signale une série temporelle avec les métadonnées de la ressource AWS dans les libellés de métrique. Ces métadonnées incluent tous les tags d'instances Amazon EC2, y compris le nom de l'instance, sous le libellé tag_Name.

Si vous souhaitez collecter des métadonnées supplémentaires, vous pouvez les ajouter en utilisant des tags d'instance sur l'instance Amazon EC2. Consultez la section Ajouter ou supprimer des tags d'instance EC2. La métrique aws_resource_info signalée par l'exportateur Prometheus inclut les métadonnées supplémentaires.

Vous pouvez ensuite joindre les libellés de métadonnées de la métrique aws_resource_info aux métriques internes de l'ancien agent Logging à l'aide de MQL. Par exemple, la requête MQL suivante joint la métrique auto de l'agent agent.googleapis.com/agent/uptime, écrite pour le type de ressource aws_ec2_instance, à la métrique de l'exportateur Prometheus CloudWatch aws_resource_info, écrite pour le type de ressource prometheus-target:

{
    aws_ec2_instance :: 'agent.googleapis.com/agent/uptime'
    | align next_older()
    | group_by [instance_id: resource.instance_id, resource.project_id, resource.region, resource.aws_account, metric.version]
    ;
    prometheus_target :: 'prometheus.googleapis.com/aws_resource_info/gauge'
    | align next_older()
    | group_by [instance_id: metric.instance_id, resource.project_id, aws_account: re_extract(metric.arn, "arn:aws:ec2:[^:]+:([^:]+):instance/.*"), region: concatenate("aws:", re_extract(metric.arn, "arn:aws:ec2:([^:]+):[^:]+:instance/.*")), name: metric.tag_Name]
}
| join
| val(0)

Les deux métriques sont jointes au moyen du libellé instance_id. Par conséquent, le nom de la VM (la valeur du libellé metric.tag_Name dans la métrique aws_resource_info) peut être ajouté au résultat de la jointure. La métrique automatique uptime de l'agent inclut le libellé de ressource region. La jointure avec le libellé region fonctionne, car AWS ne spécifie pas si les ID d'instance doivent être uniques au niveau régional ou mondial.

Pour en savoir plus sur MQL, consultez la présentation du langage de requête Monitoring.

Désactiver les anciennes métriques dans votre compte AWS

Lorsque vous avez créé le projet de connecteur AWS dans votre projet Google Cloud, vous avez créé un rôle AWS IAM qui a accordé à Google Cloud un accès en lecture seule à votre compte AWS. Pour désactiver les anciennes métriques AWS CloudWatch dans la console AWS, supprimez ce rôle. Pour en savoir plus, consultez la section Supprimer un rôle IAM (console).

Configurations de l'exportateur Prometheus CloudWatch pour la migration

Cette section fournit des configurations qui répliquent aussi fidèlement que possible les métriques de service AWS présentées dans la liste des métriques AWS. Ces fichiers de configuration sont destinés à être utilisés par les clients qui migrent de l'ancienne solution vers l'exportateur Prometheus CloudWatch. Si vous configurez l'exportateur Prometheus CloudWatch en tant que nouvel utilisateur plutôt qu'en tant qu'utilisateur en cours de migration et que vous utilisez ces configurations, vous ne collectez pas toutes les métriques AWS mises à disposition par l'exportateur Prometheus CloudWatch.

Pour afficher un exemple de fichier de configuration pour les métriques AWS CloudWatch, développez l'une des sections suivantes.