收集应用程序跟踪数据 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

收集应用程序跟踪数据

亚马逊 ECS 与Amazon的发行版 OpenTelemetry 从您的应用程序收集跟踪数据。亚马逊 ECS 使用Amazon的发行版 OpenTelemetry 用于收集跟踪数据并将其路由到的边车容器Amazon X-Ray。有关更多信息,请参阅正在设置Amazon的发行版 OpenTelemetry 亚马逊 ECS 中的收藏家

对于Amazon的发行版 OpenTelemetry 用于向其发送跟踪数据的收集器Amazon X-Ray,则必须将您的应用程序配置为创建跟踪数据。有关更多信息,请参阅 Amazon X-Ray 开发人员指南中的分析 Amazon X-Ray 的应用程序

所需的 IAM 权限Amazon的发行版 OpenTelemetry与集成Amazon X-Ray

亚马逊 ECS 与Amazon的发行版 OpenTelemetry 要求您创建任务 IAM 角色并在任务定义中指定该角色。我们建议Amazon的发行版 OpenTelemetry 还将 sidecar 配置为将容器日志路由到 CloudWatch 还要在任务定义中创建和指定需要任务执行 IAM 角色的日志。新的 Amazon ECS 控制台体验代表您处理任务执行 IAM 角色,但必须手动创建任务 IAM 角色。有关创建任务执行 IAM 角色的更多信息,请参阅 Amazon ECS 任务执行 IAM 角色

重要

如果您还要使用以下方法收集应用程序指标Amazon的发行版 OpenTelemetry集成,请确保您的任务 IAM 角色还包含该集成所需的权限。有关更多信息,请参阅收集应用程序指标

为其创建任务 IAM 角色Amazon的发行版 OpenTelemetry 一体化
  1. 通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 PoliciesCreate policy

  3. 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": "*" } ] }
  4. (可选)将一个或多个标签添加到角色,然后选择 Next: Review(下一步:审核)。

  5. 对于 Name(名称),指定 AWSDistroOpenTelemetryPolicyForXray

  6. 对于 Description(描述),指定可选描述,然后选择 Create policy(创建策略)。

  7. 在导航窗格中,选择 Roles(角色)和 Create role(创建角色)。

  8. Select type of trusted entity(选择受信任实体的类型)部分,选择 Amazon 服务 Elastic Container Service

  9. 对于 Select your use case (选择使用案例),选择 Elastic Container Service Task (弹性容器服务任务),然后选择 Next: Permissions (下一步: 权限)。

  10. 附加权限策略部分,搜索AWSDistroOpenTelemetryPolicyForXray,选择策略,然后选择下一页:标签

  11. 对于添加标签(可选),指定要与策略关联的任何自定义标签,然后选择下一步:审核

  12. 对于 Role Name(角色名称),指定 AmazonECS_OpenTelemetryXrayRole,然后选择 Create role(创建角色)。

指定Amazon的发行版 OpenTelemetrysidecar 用于Amazon X-Ray集成到您的任务定义中

全新 Amazon ECS 控制台体验简化了创建控制台的体验Amazon的发行版 OpenTelemetry 边车容器使用使用跟踪收集选项。有关更多信息,请参阅使用控制台创建任务定义

如果您没有使用 Amazon ECS 控制台,则可以添加Amazon的发行版 OpenTelemetry 将边车容器放到你的任务定义中。以下任务定义片段显示了用于添加的容器定义Amazon的发行版 OpenTelemetry sidecar 用于Amazon 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" }