本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將應用程式指標匯出至 Amazon CloudWatch
Amazon ECS on Fargate 支援將您的自訂應用程式指標匯出至 Amazon CloudWatch 作為自訂指標。方法是將 OpenTelemetry Sidecar AWS 容器的 Distro 新增至您的任務定義。Amazon ECS主控台會在建立新的任務定義時新增使用指標集合選項,以簡化此程序。如需詳細資訊,請參閱使用主控台建立 Amazon ECS任務定義。
應用程式指標會匯出至具有 CloudWatch 日誌群組名稱的日誌,/aws/ecs/application/metrics
並且可以在ECS/AWSOTel/Application
命名空間中檢視指標。您的應用程式必須使用 進行測試 OpenTelemetry SDK。如需詳細資訊,請參閱 AWS Distro 中的 Distro for 簡介 OpenTelemetry
考量事項
使用 Amazon ECS on Fargate 與 AWS Distro for 整合 OpenTelemetry ,將應用程式指標傳送至 Amazon 時,應考慮下列事項 CloudWatch。
-
此整合只會將自訂應用程式指標傳送至 CloudWatch。如果您想要任務層級指標,您可以在 Amazon ECS叢集組態中開啟 Container Insights。如需詳細資訊,請參閱使用 ECS Container Insights 監控 Amazon 容器。
-
Amazon ECS執行個體上託管於 Fargate 上的 Amazon 工作負載和託管於 Amazon EC2執行個體上的 Amazon ECS工作負載支援用於 OpenTelemetry 整合的 AWS Distro。目前不支援外部執行個體。
-
CloudWatch 支援每個指標最多 30 個維度。依預設,Amazon 預設會將
TaskARN
、ClusterARN
、LaunchType
、TaskDefinitionFamily
和TaskDefinitionRevision
維度ECS納入指標。其餘 25 個維度可由您的應用程式定義。如果設定超過 30 個維度, CloudWatch 則無法顯示。發生這種情況時,應用程式指標會顯示在ECS/AWSOTel/Application
CloudWatch 指標命名空間中,但沒有任何維度。您可以檢測應用程式以增加其他維度。如需詳細資訊,請參閱在 Distro 中使用 CloudWatch 指標搭配 AWS Distro for OpenTelemetry文件 OpenTelemetry 。 AWS
AWS Distro 與 Amazon OpenTelemetry 整合所需的IAM許可 CloudWatch
Amazon 與 AWS Distro for 的ECS整合 OpenTelemetry 需要您建立任務IAM角色,並在任務定義中指定角色。建議您也設定 AWS Distro for OpenTelemetry sidecar,將容器日誌路由至 Logs,該 CloudWatch 日誌也需要在您的任務定義中建立和指定任務執行IAM角色。Amazon ECS主控台會代表您處理任務執行IAM角色,但任務IAM角色必須手動建立並新增至您的任務定義。如需任務執行IAM角色的詳細資訊,請參閱 Amazon ECS任務執行IAM角色。
重要
如果您也使用 AWS Distro 收集應用程式追蹤資料以進行 OpenTelemetry 整合,請確定您的任務IAM角色也包含該整合所需的許可。如需詳細資訊,請參閱使用應用程式追蹤資料識別 Amazon ECS最佳化機會。
如果您的應用程式需要任何其他許可,則應將其新增到此政策中。每個任務定義只能指定一個任務IAM角色。例如,如果您使用的是儲存在 Systems Manager 中的自訂組態檔案,您應該將 ssm:GetParameters
許可新增至此IAM政策。
建立 Elastic Container Service 的服務角色 (IAM 主控台)
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在IAM主控台的導覽窗格中,選擇角色 ,然後選擇建立角色 。
-
對於 Trusted entity type (信任的實體類型),請選擇 AWS 服務。
-
針對服務或使用案例 ,選擇彈性容器服務 ,然後選擇彈性容器服務任務使用案例。
-
選擇 Next (下一步)。
-
在新增許可區段中,搜尋 AWSDistroOpenTelemetryPolicyForXray,然後選擇政策。
-
(選用) 設定許可界限。這是進階功能,可用於服務角色,而不是服務連結的角色。
-
開啟設定許可界限區段,然後選擇使用許可界限來控制最大角色許可 。
IAM 包含您帳戶中受 AWS 管和客戶受管政策的清單。
選取用於許可界限的政策。
-
-
選擇 Next (下一步)。
-
輸入角色名稱或角色名稱尾碼,以協助您識別角色的目的。
重要
當您命名角色時,請注意下列事項:
-
角色名稱在您的 中必須是唯一的 AWS 帳戶,且無法依大小寫設為唯一。
例如,請勿建立名為
PRODROLE
和 的角色prodrole
。當角色名稱用於政策或 的一部分時ARN,角色名稱區分大小寫,但是當角色名稱出現在主控台中的客戶時,例如在登入過程中,角色名稱區分大小寫。 -
您無法在建立角色之後編輯角色的名稱,因為其他實體可能會參考角色。
-
-
(選用) 針對描述 ,輸入角色的描述。
-
(選用) 若要編輯角色的使用案例和許可,請在步驟 1:選取信任的實體或步驟 2:新增許可區段中,選擇編輯 。
-
(選用) 若要協助識別、組織或搜尋角色,請將標籤新增為鍵值對。如需在 中使用標籤的詳細資訊IAM,請參閱 IAM 使用者指南 中的標記IAM資源。
-
檢閱角色,然後選擇 Create role (建立角色)。
在任務定義中指定 OpenTelemetry Sidecar AWS 的 Distro
Amazon ECS主控台使用使用指標收集選項,簡化為 OpenTelemetry Sidecar 容器建立 AWS Distro 的體驗。如需詳細資訊,請參閱使用主控台建立 Amazon ECS任務定義。
如果您不使用 Amazon ECS主控台,則可以手動將 Distro for OpenTelemetry Sidecar AWS 容器新增至任務定義。下列任務定義範例顯示為 Amazon CloudWatch 整合新增 OpenTelemetry 旁路 AWS 專用 Distro 的容器定義。
{ "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": "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/ecs-cloudwatch.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" }