本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
收集应用程序跟踪数据
Amazon ECS 与 AWS Distro 集成 OpenTelemetry ,用于从您的应用程序收集跟踪数据。Amazon ECS 使用 AWS Distro fo OpenTelemetry r sidecar 容器来收集跟踪数据并将其路由到。 AWS X-Ray有关更多信息,请参阅在 Amazon ECS 中为 Collecto OpenTelemetry r 设置 AWS 发行版
要让 AWS Distro fo OpenTelemetry r Collector 向其发送跟踪数据 AWS X-Ray,必须将您的应用程序配置为创建跟踪数据。有关更多信息,请参阅 AWS X-Ray 开发人员指南中的分析 AWS X-Ray 的应用程序。
AWS 发行版需要的 IAM 权限才能 OpenTelemetry 与集成 AWS X-Ray
Amazon ECS 与 AWS Distro 的集成 OpenTelemetry 要求您创建一个任务 IAM 角色并在任务定义中指定该角色。我们建议同时将 AWS Distro fo OpenTelemetry r sidecar 配置为将容器 CloudWatch 日志路由到日志,这也需要在任务定义中创建和指定任务执行 IAM 角色。Amazon ECS 控制台代表您处理任务执行 IAM 角色,但必须手动创建任务 IAM 角色。有关创建任务执行 IAM 角色的更多信息,请参阅 Amazon ECS 任务执行 IAM 角色。
重要
如果您还使用 AWS 发行版收集应用程序指标进行 OpenTelemetry 集成,请确保您的任务 IAM 角色还包含该集成所需的权限。有关更多信息,请参阅收集应用程序指标。
为 AWS Distro 创建任务 IAM 角色以进行集成 OpenTelemetry
通过 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在导航窗格中,选择 Policies、Create policy。
-
在 Create policy(创建策略)页面中,切换到 JSON 选项卡,将以下 IAM policy JSON 复制并粘贴到字段中,然后选择 Next: Tags(下一步:标签)。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets", "xray:GetSamplingStatisticSummaries" ], "Resource": "*" } ] }
-
(可选)将一个或多个标签添加到角色,然后选择 Next: Review(下一步:审核)。
-
对于 Name(名称),指定
AWSDistroOpenTelemetryPolicyForXray
。 -
对于 Description(描述),指定可选描述,然后选择 Create policy(创建策略)。
-
在导航窗格中,选择 Roles(角色)和 Create role(创建角色)。
-
在 Select type of trusted entity(选择受信任实体的类型)部分,选择 AWS 服务 Elastic Container Service。
-
对于 Select your use case (选择使用案例),选择 Elastic Container Service Task (弹性容器服务任务),然后选择 Next: Permissions (下一步: 权限)。
-
在 “附加权限策略” 部分 AWSDistroOpenTelemetryPolicyForXray,搜索并选择策略,然后选择 “下一步:标签”。
-
对于添加标签(可选),指定要与策略关联的任何自定义标签,然后选择下一步:审核。
-
对于 Role Name(角色名称),指定
AmazonECS_OpenTelemetryXrayRole
,然后选择 Create role(创建角色)。
为任务定义中 AWS X-Ray 集成的 OpenTelemetry sidecar 指定 AWS 发行版
Amazon ECS 控制台使用 “使用跟踪收集” 选项简化了为 OpenTelemetry 边车容器创建 AWS Distro 的过程。有关更多信息,请参阅使用控制台创建任务定义。
如果您不使用 Amazon ECS 控制台,则可以将 AWS Distro for s OpenTelemetry idecar 容器添加到任务定义中。以下任务定义片段显示了用于添加 AWS Distro for s OpenTelemetry idecar 以进行集成的容器定义。 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" }