本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon ECS 的指標
Amazon ECS 使用 Amazon ECS 容器代理程式,在叢集和服務層級為 EC2 和 Fargate 啟動類型提供標準 CloudWatch 指標 (例如 CPU 和記憶體使用率)。 EC2 您也可以使用 CloudWatch Container Insights 擷取服務、任務和容器的指標,或使用內嵌指標格式擷取您自己的自訂容器指標。
Container Insights 是一種 CloudWatch 功能,可在叢集、容器執行個體、服務和任務層級提供 CPU 使用率、記憶體使用率、網路流量和儲存空間等指標。Container Insights 也會建立自動儀表板,協助您分析服務和任務,並查看容器層級的平均記憶體或 CPU 使用率。Container Insights 會將自訂指標發佈到自訂ECS/ContainerInsights命名空間,可用於繪製圖形、警示和儀表板。
您可以為每個個別 Amazon ECS 叢集啟用 Container Insights,以開啟 Container Insight 指標。如果您也想要在容器執行個體層級查看指標,您可以啟動 CloudWatch 代理程式做為 Amazon ECS 叢集上的協助程式容器。您可以使用 cwagent-ecs-instance-metric-cfn.yamlecs-cwagent-daemon-service。
部署為 CloudWatch Container Insights 協助程式容器的 CloudWatch 代理程式包含其他磁碟、記憶體和 CPU 指標,例如 instance_cpu_reserved_capacity和 instance_memory_reserved_capacity搭配 ClusterName、ContainerInstanceId、 InstanceId維度。 CloudWatch Container Insights 會使用 CloudWatch 內嵌指標格式來實作容器執行個體層級的指標。您可以使用本指南 設定 CloudWatch 代理程式部署和組態的 State Manager 和 Distributor區段中的 方法,為您的 Amazon ECS 容器執行個體設定其他系統層級指標。
在 Amazon ECS 中建立自訂應用程式指標
您可以使用 CloudWatch 內嵌指標格式,為您的應用程式建立自訂指標。awslogs 日誌驅動程式可以解譯 CloudWatch 內嵌指標格式陳述式。
下列範例中CW_CONFIG_CONTENT的環境變數設定為 cwagentconfig Systems Manager 參數存放區參數的內容。您可以使用此基本組態執行代理程式,將其設定為內嵌指標格式端點。不過,已不再需要。
{ "logs": { "metrics_collected": { "emf": { } } } }
如果您有跨多個帳戶和區域的 Amazon ECS 部署,您可以使用 AWS Secrets Manager 秘密來存放 CloudWatch 組態,並設定秘密政策以與您的組織共用。您可以使用任務定義中的秘密選項來設定CW_CONFIG_CONTENT變數。
您可以在應用程式中使用 AWS 提供的開放原始碼內嵌指標格式程式庫,並指定 AWS_EMF_AGENT_ENDPOINT環境變數,以連接至做為內嵌指標格式端點的 CloudWatch 代理程式附屬容器。例如,您可以使用 ecs_cw_emf_example
適用於 CloudWatch 的 Fluent Bit 外掛程式
如果您不想使用內嵌指標格式,您可以透過 AWS API 或 AWS SDK