Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
CloudWatch Solution Amazon : Prometheus collecte de métriques sur Amazon ECS
Cette solution vous permet de collecter des métriques Prometheus compatibles à partir de vos tâches Amazon ECS sans exécuter ni faire évoluer votre propre infrastructure de collecte. Vos tâches exposent les métriques par le biais d'Prometheusexportateurs, et un collecteur Prometheus CloudWatch géré par Amazon découvre les tâches de votre VPC grâce à la découverte de DNS-based services, extrait leurs /metrics points de terminaison et transmet les métriques à. CloudWatch Comme les tâches Amazon ECS sont éphémères et que leurs adresses IP changent, cette solution utilise la découverte du service AWS Cloud Map afin que le collecteur extrait toujours l'ensemble de tâches actuel. Pour des informations générales sur toutes les solutions CloudWatch d'observabilité, consultezCloudWatch solutions d'observabilité. Pour plus d'informations sur les collecteurs gérés, consultezAmazon CloudWatch a géré les collectionneurs de Prometheus.
Rubriques
Exigences
Cette solution est pertinente pour les conditions suivantes :
-
Calcul : tâches Amazon ECS (sur Amazon EC2 ou AWS Fargate) qui Prometheus exposent des métriques compatibles.
-
Services Amazon ECS que vous enregistrez auprès de AWS Cloud Map pour la découverte DNS-based de services.
-
Amazon VPC avec DNS activé et au moins deux sous-réseaux dans des zones de disponibilité différentes pour le collecteur.
-
Un groupe de sécurité qui permet au collecteur d'accéder au port de métriques de vos tâches. Si vos tâches et le collecteur partagent un groupe de sécurité, ajoutez une règle d'entrée autoréférencée pour le port des métriques.
Enable Prometheus exportateurs
Un Prometheus exportateur est un processus qui expose les métriques sous forme d'Prometheusexposition sur un point de /metrics terminaison HTTP. Sur Amazon ECS, vous exécutez généralement un exportateur en tant que conteneur annexe dans la même définition de tâche que votre application, ou vous instrumentez l'application pour exposer directement les métriques. Les exportateurs suivants sont couramment utilisés :
-
Node Exporter : mesures Host-level d'infrastructure pour les tâches sur le type de lancement Amazon EC2 (port par défaut 9100). Pour plus d'informations, consultez le référentiel
Node Exporter sur GitHub. -
Exportateur JMX : mesures des applications JVM et Java pour les charges de travail Java. Pour plus d'informations, consultez le référentiel
JMX Exporter sur GitHub. -
PrometheusExportateur NGINX — Serveur Web NGINX et métriques de proxy inverse. Pour plus d'informations, consultez le référentiel
NGINX Prometheus Exporter sur. GitHub -
Exportateur DCGM : statistiques des GPU NVIDIA pour les charges de travail des GPU (port par défaut 9400). Pour plus d'informations, consultez le référentiel
DCGM Exporter sur GitHub. -
HAProxy Exporter — Mesures de l'équilibreur de charge HAProxy. Pour plus d'informations, consultez le référentiel
HAProxy Exporter sur GitHub. -
Exportateur Apache — Métriques du serveur HTTP Apache. Pour plus d'informations, consultez le référentiel
Apache Exporter sur GitHub.
Ajoutez l'exportateur à votre définition de tâche et exposez son port de métriques en suivant la documentation officielle de l'exportateur. Pour un catalogue complet des exportateurs disponibles, voir Exportateurs et intégrations
Étape 1 : Configuration des groupes de sécurité
Vérifiez que le groupe de sécurité pour vos tâches Amazon ECS autorise le trafic entrant en provenance du collecteur sur le port de métriques. Lorsque vos tâches et le collecteur partagent un groupe de sécurité, ajoutez une règle d'entrée autoréférencée afin que les ressources du même groupe de sécurité puissent communiquer. La commande suivante autorise le trafic entrant sur le port 80 à partir du même groupe de sécurité :
aws ec2 authorize-security-group-ingress \ --group-idsg-security-group-id\ --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,UserIdGroupPairs='[{GroupId=sg-security-group-id}]'
Étape 2 : configurer la configuration du scrape
Pour les tâches Amazon ECS que vous enregistrez auprès de AWS Cloud Map, utilisez DNS-based Service Discovery (dns_sd_configs) pour rechercher et extraire automatiquement vos tâches au fur et à mesure de leur démarrage et de leur arrêt. La dns_sd_configs section demande au collecteur d'interroger le nom DNS de AWS Cloud Map et de récupérer toutes les adresses IP renvoyées. Lorsqu'Amazon ECS remplace une tâche, le collecteur prend en compte la modification lors de sa prochaine requête DNS. La relabel_configs section ajoute des libellés cohérents à vos statistiques afin que vous puissiez effectuer des requêtes et filtrer les différents services. Pour connaître l'ensemble complet des options de configuration prises en charge, consultezConfiguration du scraper.
global: scrape_interval: 30s scrape_timeout: 10s scrape_configs: - job_name: 'ecs-payforadoption' dns_sd_configs: - names: ['payforadoption-go.Workshop-space'] type: A port: 80 metrics_path: '/metrics' relabel_configs: - target_label: service_name replacement: 'payforadoption-go' - target_label: cloudmap_namespace replacement: 'Workshop-space' - target_label: environment replacement: 'production' - target_label: compute_platform replacement: 'ecs-fargate'
Étape 3 : Configuration du grattoir
Créez un collecteur VPC-connected géré qui analyse vos tâches Amazon ECS et fournit des mesures à votre CloudWatch ensemble de données :
Vous pouvez l'utiliser GetDefaultScraperConfiguration pour récupérer une configuration de scraper à usage général ou fournir la vôtre.
Valider la collecte de métriques
Une fois que le collecteur a commencé à fournir des métriques, exécutez une requête ad hoc à CloudWatch l'aide de Query Studio pour confirmer que vos métriques arrivent. Par exemple, la requête suivante renvoie le nombre moyen de demandes par seconde adressées à la tâche Amazon ECS au cours des cinq dernières minutes :
rate(payforadoption_requests_total[5m])
Créez un tableau de bord personnalisé
Une fois que le collecteur a commencé à transmettre vos métriques Amazon ECS à CloudWatch, vous pouvez créer un CloudWatch tableau de bord personnalisé pour les visualiser. Grâce à des tableaux de bord personnalisés, vous pouvez combiner les statistiques de vos Prometheus exportateurs dans des widgets, ajouter PromQL-based des requêtes et organiser les widgets en fonction de vos besoins de surveillance. Pour plus d'informations, consultez la section Utilisation des CloudWatch tableaux de bord.
Coûts
Nous facturons les Prometheus collecteurs à l'heure et un tarif d'ingestion CloudWatch OpenTelemetry métrique s'applique. Pour plus d'informations sur la CloudWatch tarification, consultez la page CloudWatch Tarification Amazon