Amazon ECS 的指標 - AWS 規定指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 的指標

Amazon ECS 透過 Amazon ECS 容器代理程式在叢集和服務層級為 EC2 和 Fargate 啟動類型提供標準 CloudWatch 指標 (例如 CPU 和記憶體使用率)。您也可以使用 CloudWatch Container Insights 擷取服務、工作和容器的指標,或使用內嵌指標格式擷取您自己的自訂容器指標。

Container Insights 是一項 CloudWatch 功能,可在叢集、容器執行個體、服務和工作層級提供 CPU 使用率、記憶體使用率、網路流量和儲存體等指標。Container Insights 也會建立自動儀表板,協助您分析服務和工作,並查看容器層級的平均記憶體或 CPU 使用率。Container Insights 會將自訂指標發佈到ECS/ContainerInsights自訂命名空間,供您用於繪製圖形、警示和儀表板。

您可以為每個個別 Amazon ECS 叢集啟用容器洞見,以開啟容器洞察指標。如果您也想要查看容器執行個體層級的指標,可以在 Amazon ECS 叢集上以精靈容器的身分啟動 CloudWatch 代理程式。您可以使用 cwagent-ecs-instance-metric-cfn.yaml AWS CloudFormation 範本將 CloudWatch 代理程式部署為 Amazon ECS 服務。重要的是,此範例假設您建立了適當的自訂 CloudWatch代理程式組態,並使用金鑰將其儲存在參數存放區中ecs-cwagent-daemon-service

部署為容器深入解析的協助程式 CloudWatch 容器的CloudWatch代理程式包括其他磁碟、記憶體instance_cpu_reserved_capacityinstance_memory_reserved_capacity CPU 度量,例如維度和ClusterNameContainerInstanceIdInstanceId維度。容器執行個體層級的指標是由容器深入解析使用 CloudWatch 內嵌指標格式來實作。您可以使用本指南各為代理 CloudWatch 程式部署和組態設定狀態管理員和代理商節中的方法,為 Amazon ECS 容器執行個體設定其他系統層級指標。

在 Amazon ECS 中建立自訂應用程式指標

您可以使用CloudWatch內嵌指標格式,為應用程式建立自訂指標awslogs記錄驅動程式可以解譯 CloudWatch 內嵌的指標格式陳述式。

以下範例中的CW_CONFIG_CONTENT環境變數設定為「cwagentconfigSystems Manager 參數存放區」參數的內容。您可以使用此基本組態執行代理程式,將其設定為內嵌度量格式端點。但是,它不再是必要的。

{ "logs": { "metrics_collected": { "emf": { } } } }

如果您有跨多個帳戶和區域的 Amazon ECS 部署,則可以使用 AWS Secrets Manager 秘密存放組 CloudWatch 態,並設定秘密政策以與組織共用。您可以使用任務定義中的祕密選項來設定CW_CONFIG_CONTENT變數。

您可以在應用程式中使用 AWS 提供的開放原始碼內嵌指標格式程式庫,並指定AWS_EMF_AGENT_ENDPOINT環境變數,以連接到 CloudWatch 代理程式附屬容器,做為內嵌度量格式端點。例如,您可以使用 ecs_cw_emf_example 範例 Python 應用程式,將內嵌度量格式的度量傳送至設定為內嵌度量格式端點的 CloudWatch 代理程式附屬容器。

Fluent Bit 外掛程式也 CloudWatch 可用於傳送內嵌度量格式訊息。您也可以使用 ecs_firelense_emf_example 範例 Python 應用程式,將內嵌度量格式的指標傳送到適用於 Amazon ECS 附屬容器的防火鏡。

如果您不想使用內嵌指標格式,可以透過 AWS API 或 AWS SDK 建立和更新 CloudWatch 指標。除非您有特定的使用案例,否則我們不建議使用這種方法,因為它會增加程式碼的維護和管理額外負荷。