Recolector de OpenTelemetry
OpenTelemetry Collector es un agente de código abierto, independiente del proveedor, que recibe, procesa y exporta datos de telemetría. Actúa como un canal central entre sus aplicaciones y Amazon CloudWatch, ya que recopila métricas, registros y seguimientos de varios orígenes y los envía a CloudWatch mediante OpenTelemetry Protocol (OTLP).
Usar OpenTelemetry Collector con CloudWatch proporciona los siguientes beneficios:
-
Recopile la telemetría de varias aplicaciones y hosts a través de un único agente, lo que reduce el número de conexiones a CloudWatch.
-
Procese y filtre la telemetría antes de enviarla a CloudWatch, lo que incluye agregar o eliminar atributos, agrupar datos por lotes y muestrear seguimientos.
-
Utilice la misma configuración de recopilador en AWS, en entornos locales y en otros entornos de nube, lo que proporciona una canalización de los datos telemétricos consistente independientemente del lugar en el que funcionen las aplicaciones.
-
Envíe las métricas a CloudWatch con etiquetas enriquecidas que estén disponibles para consultarlas mediante el lenguaje de consultas Prometheus (PromQL) en CloudWatch Query Studio.
Receptores compatibles
OpenTelemetry Collector admite una amplia gama de receptores para la ingesta de datos de telemetría. Puede utilizar receptores de OpenTelemetry, como el receptor OTLP para aplicaciones equipadas con los SDK de OpenTelemetry, o los receptores Prometheus para extraer métricas de los exportadores Prometheus existentes. Algunos de los receptores Prometheus más comunes que se utilizan con CloudWatch son los siguientes:
-
Receptor Prometheus para rastrear cualquier punto de conexión compatible con Prometheus
-
Receptor de métricas del host, para recopilar métricas del sistema desde el host
-
Receptor Kubernetes Cluster, para recopilar métricas de clúster del servidor API de Kubernetes
Puede configurar varios receptores en un único recopilador, lo que le permite recopilar métricas de OpenTelemetry y Prometheus y enviarlas a CloudWatch a través de la misma canalización. Para ver la lista completa de receptores disponibles, consulte el repositorio
Introducción
Requisito previo: si usa el punto de conexión de OTLP para hacer seguimientos, asegúrese de activar Transaction Search.
Pasos:
-
Descargue la última versión de la distribución de OpenTelemetry Collector. Para obtener más información sobre OpenTelemetry Collector, consulte las versiones
de OpenTelemetry Collector. -
Instale OpenTelemetry Collector en su host. El recopilador funciona en cualquier sistema operativo y plataforma. Para obtener más información, consulte Install the Collector
. -
Configure las credenciales de AWS en Amazon EC2 o en el host en las instalaciones. El recopilador usa estas credenciales para autenticarse con CloudWatch al enviar datos de telemetría. Para obtener más información, consulte a continuación.
-
Configure las credenciales de AWS para los clústeres de Amazon EKS o Kubernetes. La forma más sencilla de comenzar a utilizar Amazon EKS es utilizar el complemento de Información de contenedores con OpenTelemetry de EKS. Si prefiere usar OpenTelemetry Collector directamente, siga el procedimiento que se explica a continuación para configurar las credenciales de AWS de los clústeres de Amazon EKS o Kubernetes para enviar datos de telemetría a CloudWatch.
-
Configure el exportador de OTLP en la configuración del recopilador para enviar datos de telemetría al punto de conexión de CloudWatch. Consulte los ejemplos que aparecen a continuación.
Ejemplos de configuración del recopilador
Copie y pegue el contenido siguiente para configurar el recopilador de modo que envíe los registros y seguimientos al punto de conexión de 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]
A continuación se muestra un ejemplo de envío de registros y seguimientos mediante sigv4 a 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]
nota
Configure los SDK de OpenTelemetry con una configuración de muestreo always_on para registrar de forma fiable el 100 % de las unidades de seguimiento y obtener una visibilidad total de las aplicaciones críticas con CloudWatch Application Signals. Para obtener más información, consulte un ejemplo de Configuración de una muestra del SDK de Java de OpenTelemetry
Copie y pegue el contenido siguiente para configurar el recopilador de modo que envíe las métricas a los puntos de conexión de 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]
A continuación se muestra un ejemplo de envío de métricas mediante sigv4 a us-east-1.
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]