

# Identifique las oportunidades de optimización de Amazon ECS mediante los datos de seguimiento de la aplicación
<a name="trace-data"></a>

Amazon ECS se integra con AWS Distro for OpenTelemetry para recopilar datos de seguimiento de su aplicación. Amazon ECS utiliza un contenedor de sidecar AWS Distro for OpenTelemetry para recopilar y enrutar datos de seguimiento a AWS X-Ray. Para obtener más información, consulte [Configuración de colector AWS Distro for OpenTelemetry en Amazon ECS](https://aws-otel.github.io/docs/setup/ecs). Luego, puede utilizar AWS X-Ray para identificar errores y excepciones, analizar los cuellos de botella en el rendimiento y los tiempos de respuesta.

Para el colector AWS Distro for OpenTelemetry para enviar datos de seguimiento a AWS X-Ray, la aplicación debe estar configurada para crear los datos de seguimiento. Para obtener más información, consulte [Instrumentación de su solicitud para AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html) en la *Guía para desarrolladores de AWS X-Ray*.

## Permisos de IAM necesarios para la integración AWS Distro for OpenTelemetry con AWS X-Ray
<a name="trace-data-iam"></a>

La integración de Amazon ECS con AWS Distro para OpenTelemetry requiere crear un rol de tareas y especificarlo en la definición de tareas. Recomendamos configurar el elemento asociado de AWS Distro para OpenTelemetry para enrutar los registros del contenedor a Registros de CloudWatch.

**importante**  
Si también recopila métricas de aplicaciones mediante la integración de AWS Distro para OpenTelemetry, asegúrese de que el rol de IAM de la tarea también contenga los permisos necesarios para esa integración. Para obtener más información, consulte [Correlacionar el rendimiento de las aplicaciones de Amazon ECS mediante métricas de aplicaciones](metrics-data.md).

Después de crear el rol, cree una política con los siguientes permisos y, a continuación, adjúntela al rol.
+ `logs:PutLogEvents`
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:DescribeLogStreams`
+ `logs:DescribeLogGroups`
+ `logs:PutRetentionPolicy`
+ `xray:PutTraceSegments`
+ `xray:PutTelemetryRecords`
+ `xray:GetSamplingRules`
+ `xray:GetSamplingTargets`
+ `xray:GetSamplingStatisticSummaries`
+ `ssm:GetParameters`

# Especificación del sidecar de AWS Distro for OpenTelemetry para la integración AWS X-Ray de la definición de tarea
<a name="trace-data-containerdefinitions"></a>

La consola de Amazon ECS simplifica la experiencia de crear el contenedor de sidecar de AWS Distro for OpenTelemetry usando la opción **Usar la colección de seguimiento**. Para obtener más información, consulte [Creación de una definición de tareas de Amazon ECS mediante la consola](create-task-definition.md).

Si no está utilizando la consola de Amazon ECS, puede agregar el contenedor de sidecar de AWS Distro for OpenTelemetry según su definición de tarea. El siguiente fragmento de definición de tarea muestra la definición de contenedor para agregar el sidecar de AWS Distro for OpenTelemetry para la integración de AWS X-Ray.

```
{
	"family": "otel-using-xray",
	"taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryXrayRole",
	"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": "us-east-1",
					"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/otel-instance-metrics-config.yaml"
			],
			"logConfiguration": {
				"logDriver": "awslogs",
				"options": {
					"awslogs-create-group": "True",
					"awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector",
					"awslogs-region": "us-east-1",
					"awslogs-stream-prefix": "ecs"
				}
			}
		}
	],
	"networkMode": "awsvpc",
	"requiresCompatibilities": [
		"FARGATE"
	],
	"cpu": "1024",
	"memory": "3072"
}
```