Puede usar OpenTelemetry Collector Contrib para empezar a usar OpenTelemetry en CloudWatch.
Requisito previo
Asegúrese de que Transaction Search esté habilitado en CloudWatch. Para obtener más información, consulte Transaction Search.
Descarga de OpenTelemetry Collector Contrib
Descargue la última versión de la distribución de OpenTelemetry Collector Contrib
Instalación de OpenTelemetry Collector Contrib
Instale OpenTelemetry Collector Contrib en cualquier sistema operativo y plataforma. Para obtener más información, consulte Install the Collector
Configuración de las credenciales de AWS en los hosts en las instalaciones o Amazon EC2
Puede configurar las credenciales de AWS en los hosts en las instalaciones o Amazon EC2.
Siga el procedimiento que se indica a continuación para adjuntar la política de IAM CloudWatchAgentServerPolicy
al rol de IAM de la instancia de Amazon EC2.
Abra la consola de IAM en https://console.aws.amazon.com/iam/
. Elija Roles y busque y seleccione el rol que usa la instancia de Amazon EC2.
En la pestaña Permisos, elija Agregar permisos, Vincular políticas.
En el cuadro de búsqueda, busque la política
CloudWatchAgentServerPolicy
.Seleccione la política CloudWatchAgentServerPolicy y elija Agregar permisos.
Configuración de las credenciales de AWS para los clústeres de Amazon EKS o Kubernetes
Para configurar las credenciales de AWS de los clústeres de Amazon EKS o Kubernetes para enviar telemetría a CloudWatch, siga el procedimiento que se indica a continuación.
Cree un proveedor de identidades de OIDC de IAM para el clúster mediante el siguiente comando.
eksctl utils associate-iam-oidc-provider --cluster ${
CLUSTER_NAME}
--region ${REGION
} --approveAsigne roles de IAM a la cuenta de servicio de Kubernetes para OTel Collector mediante el siguiente comando.
eksctl create iamserviceaccount \ --name ${
COLLECTOR_SERVICE_ACCOUNT
}\ --namespace ${NAMESPACE
} \ --cluster ${CLUSTER_NAME
} \ --region ${REGION} \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --approve \ --override-existing-serviceaccounts
Configuración de OpenTelemetry Collector
Copie y pegue el contenido siguiente para configurar el recopilador de modo que envíe los registros y rastros al punto de conexión del 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_endpoint
headers: x-aws-log-group: ency_log_group x-aws-log-stream: default auth: authenticator: sigv4auth/logs otlphttp/traces: compression: gzip traces_endpoint:traces_otlp_endpoint
auth: 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 rastros 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