Exportación de métricas de aplicaciones a Amazon Managed Service for Prometheus - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Exportación de métricas de aplicaciones a Amazon Managed Service for Prometheus

Amazon ECS admite la exportación de las métricas de CPU, memoria, red y almacenamiento de nivel de tarea y las métricas de aplicaciones personalizadas a Amazon Managed Service for Prometheus. Para ello, añada el contenedor AWS Distro for OpenTelemetry sidecar a la definición de la tarea. La consola Amazon ECS simplifica este proceso al añadir la opción Utilizar recopilación de métricas al crear una nueva definición de tarea. Para obtener más información, consulte Creación de una definición de tareas con la consola.

Las métricas se exportan a Amazon Managed Service for Prometheus y se pueden ver mediante el panel de control de Amazon Managed Grafana. La aplicación debe estar equipada con las bibliotecas de Prometheus o con el SDK. OpenTelemetry Para obtener más información sobre cómo equipar su aplicación con el OpenTelemetry SDK, consulte Introducción a AWS Distro o in the Distro para OpenTelemetry ver la documentación. AWS OpenTelemetry

Al utilizar las bibliotecas de Prometheus, la aplicación debe exponer un punto de conexión /metrics que se utiliza para extraer los datos de métricas. Para obtener más información sobre cómo instrumentar la aplicación con las bibliotecas Prometheus, consulte Bibliotecas cliente de Prometheus en la documentación de Prometheus.

Consideraciones

Se debe tener en cuenta lo siguiente al utilizar la integración de Amazon ECS on Fargate con AWS Distro para enviar las métricas de la aplicación OpenTelemetry a Amazon Managed Service for Prometheus.

  • La AWS distribución para la OpenTelemetry integración es compatible con las cargas de trabajo de Amazon ECS alojadas en Fargate y las cargas de trabajo de Amazon ECS alojadas en instancias de Amazon EC2. No se admiten instancias externas en este momento.

  • De forma predeterminada, AWS Distro for OpenTelemetry incluye todas las dimensiones de nivel de tarea disponibles para las métricas de su aplicación al exportar a Amazon Managed Service for Prometheus. También puede instrumentar su aplicación para agregar dimensiones adicionales. Para obtener más información, consulte Introducción a Prometheus Remote Write Exporter for Amazon Managed Service for Prometheus en la distribución para ver la documentación. AWS OpenTelemetry

Permisos de IAM necesarios para que AWS Distro se OpenTelemetry integre con Amazon Managed Service for Prometheus

La integración de Amazon ECS con Amazon Managed Service for Prometheus mediante AWS Distro OpenTelemetry for sidecar requiere que cree una función de IAM de tareas y la especifique en la definición de la tarea. Este rol de IAM de tarea debe crearse manualmente siguiendo los pasos que se indican a continuación antes de registrar la definición de tarea.

Recomendamos que la AWS distribución para OpenTelemetry sidecar también esté configurada para enrutar los registros de los contenedores a los registros, lo que requiere que se cree una función de IAM para CloudWatch la ejecución de tareas y se especifique también en la definición de la tarea. La consola Amazon ECS se encarga de la función de IAM de ejecución de tareas en su nombre, pero la función de IAM de la tarea debe crearse manualmente. Para obtener más información sobre la creación de un rol de IAM para la ejecución de tareas, consulte Rol de IAM de ejecución de tareas de Amazon ECS.

importante

Si también recopila datos de rastreo de aplicaciones mediante la AWS distribución para la OpenTelemetry integración, asegúrese de que su función de IAM de tareas también contenga los permisos necesarios para esa integración. Para obtener más información, consulte Recopilar datos de rastreo de aplicaciones.

Para crear una función de IAM de tareas para AWS Distro para su OpenTelemetry integración con Amazon Managed Service for Prometheus
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Roles, Crear rol.

  3. En la sección Select type of trusted entity (Seleccionar tipo de entidad de confianza, elija la pestaña AWS service (Servicio de ) y, a continuación, Elastic Container Service.

  4. En Select your use case (Seleccione su caso de uso), elija Elastic Container Service Task (Tarea de servicio de contenedor elástico) y, a continuación, seleccione Next: Permissions (Siguiente: Permisos).

  5. En la sección Adjuntar política de permisos, busque la AmazonPrometheusRemoteWriteAccesspolítica, selecciónela y, a continuación, elija Siguiente: etiquetas.

  6. En Add tags (optional) (Agregar etiquetas [opcional]), especifique las etiquetas personalizadas que desee asociar a la política y, a continuación, elija Next: Review (Siguiente: Revisar).

  7. En Role Name (Nombre de rol), especifique AmazonECS_OpenTelemetryPrometheusRole y elija Create role (Crear rol).

Especifica la AWS distribución para OpenTelemetry sidecar en la definición de la tarea

La consola Amazon ECS simplifica la experiencia de crear la AWS distribución para contenedores OpenTelemetry sidecar mediante la opción Use metric collection. Para obtener más información, consulte Creación de una definición de tareas con la consola.

Si no utiliza la consola Amazon ECS, puede añadir el contenedor AWS Distro for OpenTelemetry sidecar a la definición de la tarea de forma manual. El siguiente ejemplo de definición de tareas muestra la definición de contenedor para añadir la integración de AWS Distro for OpenTelemetry sidecar para Amazon Managed Service for Prometheus.

{ "family": "otel-using-cloudwatch", "taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryCloudWatchRole", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "containerDefinitions": [{ "name": "aws-otel-emitter", "image": "application-image", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/aws-otel-emitter", "awslogs-region": "aws-region", "awslogs-stream-prefix": "ecs" } }, "dependsOn": [{ "containerName": "aws-otel-collector", "condition": "START" }] }, { "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.30.0", "essential": true, "command": [ "--config=/etc/ecs/ecs-amp.yaml" ], "environment": [{ "name": "AWS_PROMETHEUS_ENDPOINT", "value": "https://aps-workspaces.aws-region.amazonaws.com/workspaces/ws-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111/api/v1/remote_write" }], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "True", "awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector", "awslogs-region": "aws-region", "awslogs-stream-prefix": "ecs" } } } ], "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072" }