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.
OpenTelemetry Collectionneur
Le OpenTelemetry Collector est un agent open source, indépendant des fournisseurs, qui reçoit, traite et exporte des données de télémétrie. Il agit comme un pipeline central entre vos applications et Amazon CloudWatch, collectant des métriques, des journaux et des traces provenant de plusieurs sources et les envoyant à CloudWatch Using the OpenTelemetry Protocol (OTLP).
L'utilisation du OpenTelemetry Collector avec CloudWatch offre les avantages suivants :
-
Collectez la télémétrie de plusieurs applications et hôtes par le biais d'un seul agent, afin de réduire le nombre de connexions à. CloudWatch
-
Traitez et filtrez la télémétrie avant de l'envoyer CloudWatch, notamment en ajoutant ou en supprimant des attributs, en regroupant des données et en échantillonnant des traces.
-
Utilisez la même configuration de collecteur dans tous les environnements cloud AWS, locaux et autres, afin de fournir un pipeline de télémétrie cohérent quel que soit l'endroit où vos applications s'exécutent.
-
Envoyez des métriques à CloudWatch avec des libellés enrichis disponibles pour effectuer des requêtes à l'aide du langage de requête Prometheus (ProMQL) dans Query Studio. CloudWatch
Récepteurs pris en charge
Le OpenTelemetry Collector prend en charge une large gamme de récepteurs pour l'ingestion de données de télémétrie. Vous pouvez utiliser OpenTelemetry des récepteurs tels que le récepteur OTLP pour les applications équipées de OpenTelemetry SDK, ou des récepteurs Prometheus pour extraire les métriques des exportateurs Prometheus existants. Les récepteurs Prometheus couramment utilisés avec les récepteurs suivants sont les suivants : CloudWatch
-
Récepteur Prometheus, pour le scraping de n'importe quel terminal Prometheus-compatible
-
Récepteur Host Metrics, pour collecter des métriques au niveau du système auprès de l'hôte
-
Récepteur Kubernetes Cluster, pour collecter des métriques au niveau du cluster à partir du serveur API Kubernetes
Vous pouvez configurer plusieurs récepteurs dans un seul collecteur, ce qui vous permet de collecter à la fois des métriques OpenTelemetry et des métriques Prometheus et de les envoyer CloudWatch via le même pipeline. Pour obtenir la liste complète des récepteurs disponibles, consultez le référentiel OpenTelemetry
Prise en main
Condition préalable : si vous utilisez le point de terminaison OTLP pour le suivi, assurez-vous que la recherche de transactions est activée.
Étapes :
-
Téléchargez la dernière version de la distribution OpenTelemetry Collector. Pour plus d'informations, consultez les versions de OpenTelemetry Collector
. -
Installez le OpenTelemetry Collector sur votre hôte. Le collecteur fonctionne sur tous les systèmes d'exploitation et toutes les plateformes. Pour plus d’informations, consultez Installer le Collector
. -
Configurez les AWS informations d'identification sur votre hôte Amazon EC2 ou sur site. Le collecteur utilise ces informations d'identification pour s'authentifier CloudWatch lors de l'envoi de données de télémétrie. Voir ci-dessous pour plus de détails.
-
Configurez les AWS informations d'identification pour vos clusters Amazon EKS ou Kubernetes. Le moyen le plus simple de démarrer avec Amazon EKS est d'utiliser le module complémentaire EKS OTel Container Insights. Si vous préférez utiliser le OpenTelemetry Collector directement, suivez la procédure ci-dessous pour configurer les AWS informations d'identification de vos clusters Amazon EKS ou Kubernetes auxquels envoyer des données de télémétrie. CloudWatch
-
Configurez l'exportateur OTLP dans la configuration de votre collecteur pour envoyer la télémétrie au terminal. CloudWatch Consultez les exemples ci-dessous.
Authentifiez-vous à l'aide d'un jeton porteur (clé API)
Si vous n'avez pas besoin de configurer les AWS informations d'identification sur l'hôte, par exemple lorsque vous exécutez sur des sites hors AWS infrastructure, sur d'autres fournisseurs de cloud ou sur des CI/CD pipelines, vous pouvez utiliser l'authentification par jeton au lieu de Sigv4. Les jetons porteurs sont pris en charge pour les points de terminaison des métriques et des journaux (des clés API distinctes sont requises pour chaque service). L'authentification par jeton du porteur n'est pas prise en charge pour les traces.
Pour les instructions de configuration, consultezConfiguration de l'authentification par jeton au porteur pour Metrics. Pour les journaux, voir Configuration de l'authentification par jeton du porteur pour les journaux.
Pour un exemple de configuration de collecteur utilisant des jetons de support, consultez l'exemple de métriques de jetons de support dans les exemples de configuration de collecteur ci-dessous.
Exemples de configuration de collecteurs
Copiez et collez le contenu ci-dessous pour configurer votre collecteur afin qu’il envoie les journaux et les traces aux points de terminaison OTLP.
receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 exporters: otlphttp/logs: compression: gzip logs_endpoint:logs_otlp_endpointheaders: x-aws-log-group: ency_log_group x-aws-log-stream: default auth: authenticator: sigv4auth/logs otlphttp/traces: compression: gzip traces_endpoint:traces_otlp_endpointauth: authenticator: sigv4auth/traces extensions: sigv4auth/logs: region: "region" service: "logs" sigv4auth/traces: region: "region" service: "xray" service: telemetry: extensions: [sigv4auth/logs, sigv4auth/traces] pipelines: logs: receivers: [otlp] exporters: [otlphttp/logs] traces: receivers: [otlp] exporters: [otlphttp/traces]
Voici un exemple d’envoi de journaux et de traces à l’aide de sigv4 vers us-east-1.
receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 exporters: otlphttp/logs: compression: gzip logs_endpoint: https://logs.us-east-1.amazonaws.com/v1/logs headers: x-aws-log-group: MyApplicationLogs x-aws-log-stream: default auth: authenticator: sigv4auth/logs otlphttp/traces: compression: gzip traces_endpoint: https://xray.us-east-1.amazonaws.com/v1/traces auth: authenticator: sigv4auth/traces extensions: sigv4auth/logs: region: "us-east-1" service: "logs" sigv4auth/traces: region: "us-east-1" service: "xray" service: telemetry: extensions: [sigv4auth/logs, sigv4auth/traces] pipelines: logs: receivers: [otlp] exporters: [otlphttp/logs] traces: receivers: [otlp] exporters: [otlphttp/traces]
Note
Configurez vos OpenTelemetry SDK selon une configuration d'échantillonnage permanente afin d'enregistrer de manière fiable des intervalles de 100 % et d'obtenir une visibilité complète de vos applications critiques grâce à Application Signals. CloudWatch Pour plus d'informations, consultez un exemple de configuration d'un sampler du SDK
Copiez et collez le contenu ci-dessous pour configurer votre collecteur afin qu'il envoie des métriques aux points de terminaison OTLP.
receivers: otlp: protocols: http: endpoint: "0.0.0.0:4318" processors: batch: send_batch_size: 200 timeout: 10s exporters: otlphttp: tls: insecure: false endpoint:metrics_otlp_endpointauth: authenticator: sigv4auth extensions: sigv4auth: service: "monitoring" region: "region" service: extensions: [sigv4auth] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [otlphttp]
Voici un exemple d'envoi de métriques à us-east-1 à l'aide de sigv4.
receivers: otlp: protocols: http: endpoint: "0.0.0.0:4318" processors: batch: send_batch_size: 200 timeout: 10s exporters: otlphttp: tls: insecure: false endpoint: "https://monitoring.us-east-1.amazonaws.com/v1/metrics:443" auth: authenticator: sigv4auth extensions: sigv4auth: service: "monitoring" region: "us-east-1" service: extensions: [sigv4auth] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [otlphttp]
Métriques avec authentification par jeton au porteur
L'exemple suivant montre comment envoyer des métriques à us-east-1 à l'aide d'un jeton porteur. Pour les instructions de configuration et les meilleures pratiques de sécurité, consultezConfiguration de l'authentification par jeton au porteur pour Metrics.
extensions: bearertokenauth: filename: "/etc/otel/cw-api-key" receivers: otlp: protocols: http: endpoint: "0.0.0.0:4318" processors: batch: send_batch_size: 200 timeout: 10s exporters: otlphttp: tls: insecure: false endpoint: "https://monitoring.us-east-1.amazonaws.com/v1/metrics" auth: authenticator: bearertokenauth service: extensions: [bearertokenauth] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [otlphttp]
Important
Ne codez jamais en dur les clés d'API directement dans les fichiers de configuration du collecteur. Utilisez-le filename pour lire à partir d'un secret monté ou ${env:VAR} pour lire à partir d'une variable d'environnement injectée par votre gestionnaire de secrets.
Note
Contrairement à Sigv4, les jetons porteurs ne nécessitent pas de fichiers AWS d'informations d'identification, de rôles IAM ou de configuration IRSA. Le collecteur peut fonctionner sur n'importe quelle plateforme sans AWS dépendre du SDK.