

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

# Amazon ECS 的指標
<a name="ecs-metrics"></a>

[Amazon ECS 使用 Amazon ECS 容器代理程式，在叢集和服務層級為 EC2 和 Fargate 啟動類型提供標準 CloudWatch 指標](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/cloudwatch-metrics.html) （例如 CPU 和記憶體使用率）。 EC2 您也可以使用 CloudWatch Container Insights 擷取服務、任務和容器的指標，或使用內嵌指標格式擷取您自己的自訂容器指標。

Container Insights 是一種 CloudWatch 功能，可在叢集、容器執行個體、服務和任務層級提供 CPU 使用率、記憶體使用率、網路流量和儲存空間等指標。Container Insights 也會建立自動儀表板，協助您分析服務和任務，並查看容器層級的平均記憶體或 CPU 使用率。Container Insights 會將自訂指標發佈到自訂`ECS/ContainerInsights`[命名空間](https://docs.aws.amazon.com//AmazonECS/latest/developerguide/cloudwatch-metrics.html)，可用於繪製圖形、警示和儀表板。

您可以為每個個別 Amazon ECS 叢集啟用 Container Insights，以開啟 Container Insight 指標。如果您也想要在容器執行個體層級查看指標，您可以[啟動 CloudWatch 代理程式做為 Amazon ECS 叢集上的協助程式容器](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-instancelevel.html)。您可以使用 [cwagent-ecs-instance-metric-cfn.yaml](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/blob/main/examples/ecs/cwagent-ecs-instance-metric-cfn.yaml) CloudFormation 範本，將 CloudWatch 代理程式部署為 Amazon ECS 服務。重要的是，此範例假設您已建立適當的自訂 CloudWatch 代理程式組態，並將其存放在具有金鑰 的參數存放區中`ecs-cwagent-daemon-service`。

部署為 [CloudWatch Container Insights 協助程式容器的 CloudWatch 代理](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-ECS.html)程式包含其他磁碟、記憶體和 CPU 指標，例如 `instance_cpu_reserved_capacity`和 `instance_memory_reserved_capacity`搭配 `ClusterName`、`ContainerInstanceId`、 `InstanceId`維度。 CloudWatch Container Insights 會使用 CloudWatch 內嵌指標格式來實作容器執行個體層級的指標。您可以使用本指南 [設定 CloudWatch 代理程式部署和組態的 State Manager 和 Distributor](install-cloudwatch-systems-manager.md#set-up-systems-manager-distributor)區段中的 方法，為您的 Amazon ECS 容器執行個體設定其他系統層級指標。

## 在 Amazon ECS 中建立自訂應用程式指標
<a name="ecs-metrics-applications"></a>

您可以使用 [CloudWatch 內嵌指標格式，為您的應用程式建立自訂指標](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format.html)。`awslogs` 日誌驅動程式可以解譯 CloudWatch 內嵌指標格式陳述式。

下列範例中`CW_CONFIG_CONTENT`的環境變數設定為 `cwagentconfig` Systems Manager 參數存放區參數的內容。您可以使用此基本組態執行代理程式，將其設定為內嵌指標格式端點。不過，已不再需要。

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

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

您可以在應用程式中使用 AWS 提供的[開放原始碼內嵌指標格式程式庫](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Libraries.html)，並指定 `AWS_EMF_AGENT_ENDPOINT`環境變數，以連接至做為內嵌指標格式端點的 CloudWatch 代理程式附屬容器。例如，您可以使用 [ecs\$1cw\$1emf\$1example](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/tree/main/examples/ecs/ecs_cw_emf_example) 範例 Python 應用程式，將內嵌指標格式的指標傳送至設定為內嵌指標格式端點的 CloudWatch 代理程式附屬容器。

適用於 CloudWatch 的 [Fluent Bit 外掛程式](https://github.com/aws/amazon-cloudwatch-logs-for-fluent-bit)也可用於傳送內嵌指標格式訊息。您也可以使用 [ecs\$1firelense\$1emf\$1example](https://github.com/aws-samples/logging-monitoring-apg-guide-examples/tree/main/examples/ecs/ecs_firelense_emf_example) 範例 Python 應用程式，將內嵌指標格式的指標傳送至 Amazon ECS 附屬容器的 Firelens。

如果您不想使用內嵌指標格式，您可以透過 [AWS API](https://docs.aws.amazon.com//AmazonCloudWatch/latest/APIReference/Welcome.html) 或 [AWS SDK](https://aws.amazon.com/developer/tools/) 建立和更新 CloudWatch 指標。除非您有特定的使用案例，否則我們不建議使用此方法，因為它會為您的程式碼增加維護和管理開銷。