

# Identifique oportunidades de otimização do Amazon ECS usando dados de rastreamento de aplicações
<a name="trace-data"></a>

O Amazon ECS integra-se com a distribuição da AWS do OpenTelemetry para coletar dados de rastreamento da sua aplicação. O Amazon ECS usa um contêiner de arquivo associado da distribuição da AWS do OpenTelemetry para coletar e encaminhar dados de rastreamento para AWS X-Ray. Para obter mais informações, consulte [Configuração da distribuição da AWS do OpenTelemetry Collector no Amazon ECS](https://aws-otel.github.io/docs/setup/ecs). Em seguida, você pode usar AWS X-Ray para identificar erros e exceções, analisar gargalos de desempenho e tempos de resposta.

Para que a distribuição da AWS do OpenTelemetry Collectorenvie dados de rastreamento para AWS X-Ray, sua aplicação deve ser configurada para criar os dados de rastreamento. Para obter mais informações, consulte [Instrumentando sua aplicação para AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html) no *Guia do desenvolvedor do AWS X-Ray*.

## Permissões obrigatórias do IAM para integração da distribuição da AWS do OpenTelemetry com o AWS X-Ray
<a name="trace-data-iam"></a>

A integração do Amazon ECS com o AWS Distro para OpenTelemetry requer que você crie um perfil de tarefa e especifique o perfil em sua definição de tarefa. Recomendamos configurar o arquivo associado do AWS Distro para OpenTelemetry com a finalidade de encaminhar logs de contêiner para o CloudWatch Logs.

**Importante**  
Se você também coletar métricas de aplicações usando a integração do AWS Distro para OpenTelemetry, certifique-se de que o perfil do IAM da tarefa também contenha as permissões necessárias para essa integração. Para obter mais informações, consulte [Correlação do desempenho da aplicação do Amazon ECS usando métricas de aplicações](metrics-data.md).

Depois de criar o perfil, crie uma política com as seguintes permissões e, em seguida, anexe-a ao perfil.
+ `logs:PutLogEvents`
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:DescribeLogStreams`
+ `logs:DescribeLogGroups`
+ `logs:PutRetentionPolicy`
+ `xray:PutTraceSegments`
+ `xray:PutTelemetryRecords`
+ `xray:GetSamplingRules`
+ `xray:GetSamplingTargets`
+ `xray:GetSamplingStatisticSummaries`
+ `ssm:GetParameters`

# Especificação do arquivo associado da distribuição da AWS do OpenTelemetry para integração do AWS X-Ray na sua definição de tarefa
<a name="trace-data-containerdefinitions"></a>

O console do Amazon ECS simplifica a criação do contêiner auxiliar AWS Distro para OpenTelemetry usando a opção **Usar coleta de rastreamento**. Para obter mais informações, consulte [Criar uma definição de tarefa do Amazon ECS usando o console](create-task-definition.md).

Se você não estiver usando o console do Amazon ECS, poderá adicionar o contêiner de arquivo associado da distribuição da AWS do OpenTelemetry à sua definição de tarefa. O trecho de definição de tarefa a seguir mostra a definição do contêiner para adicionar o arquivo associado da distribuição da AWS do OpenTelemetry para integração do 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"
}
```