

# Container Insights
<a name="ContainerInsights"></a>

使用 CloudWatch Container Insights 可以从容器化应用程序和微服务中收集、聚合和汇总指标与日志。Container Insights 可用于 Amazon EC2 上的 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS)、RedHat OpenShift on AWS (ROSA) 和 Kubernetes 平台。Container Insights 支持从部署在 AWS Fargate 上的集群中收集针对 Amazon ECS 和 Amazon EKS 的指标。

CloudWatch 会自动收集许多资源（例如 CPU、内存、磁盘和网络）的指标。Container Insights 还提供诊断信息（如容器重新启动失败），以帮助您查明问题并快速解决问题。您还可以设置 Container Insights 收集的指标的 CloudWatch 告警。

Container Insights 使用[嵌入式指标格式](CloudWatch_Embedded_Metric_Format.md)将数据收集为*性能日志事件*。这些性能日志事件是使用结构化 JSON 架构的条目，该架构允许批量提取和存储高基数数据。从该数据中，CloudWatch 在集群、节点、pod、任务和服务级别创建聚合指标以作为 CloudWatch 指标。Container Insights 收集的指标可在 CloudWatch 自动控制面板中使用，也可在 CloudWatch 控制台的**指标**部分查看。容器任务运行一段时间后，指标才可见。

当您部署 Container Insights 时，它会自动为性能日志事件创建日志组。您无需自行创建该日志组。

为帮助您管理 Container Insights 成本，CloudWatch 不会根据日志数据自动创建所有可能的指标。但是，您可以通过使用 CloudWatch Logs Insights 分析原始性能日志事件来查看其他指标和其他精细级别。

在 Container Insights 的原始版本中，收集的指标和摄取的日志将作为自定义指标收费。借助针对 Amazon EKS 增强了可观测性的 Container Insights，Container Insights 指标和日志按每次观测收费，而不是按存储的指标或摄取的日志收费。有关 CloudWatch 定价的信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。

**[预览版]** 对于 Amazon EKS，采用 OpenTelemetry 指标的 Container Insights 提供了一种额外的指标模式，该模式使用 OpenTelemetry Protocol（OTLP）收集指标并支持 PromQL 查询。每个指标都补充了多达 150 个标签，包括 OpenTelemetry 语义惯例属性以及 Kubernetes 容器组（pod）和节点标签。有关更多信息，请参阅 [适用于 Amazon EKS 的采用 OpenTelemetry 指标的 Container Insights](container-insights-otel-metrics.md)。

在 Amazon EKS、RedHatOpenshift on AWS 和 Kubernetes 上，Container Insights 使用 CloudWatch 代理的容器化版本在集群中查找所有运行的容器。然后，它在每个性能堆栈层收集性能数据。

Container Insights 支持使用 AWS KMS key 对其收集的日志和指标进行加密。要启用此加密，必须手动为接收 Container Insights 数据的日志组启用 AWS KMS 加密。这将导致 Container Insights 使用提供的 KMS 密钥加密这些数据。仅支持对称密钥。请勿使用非对称 KMS 密钥加密日志组。

有关更多信息，请参阅[使用 AWS KMS 加密 CloudWatch Logs 中的日志数据](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)。

## 支持的平台
<a name="container-insights-platforms"></a>

Container Insights 可用于 Amazon EC2 实例上的 Amazon Elastic Container Service、Amazon Elastic Kubernetes Service、RedHat OpenShift on AWS 和 Kubernetes 平台。
+ 对于 Amazon ECS，Container Insights 同时在 Linux 和 Windows Server 实例上的集群、任务和服务级别收集指标。Container Insights 在 Linux 实例上只收集实例级别的指标。网络指标适用于使用 `bridge` 网络模式和 `awsvpc` 网络模式的容器，但不适用于使用 `host` 网络模式的容器。
+ 对于 Amazon Elastic Kubernetes Service 和 Amazon EC2 实例上的 Kubernetes 平台，仅在 Linux 和 Windows 实例上支持 Container Insights。
+ **[预览版]** 采用 OpenTelemetry 指标的 Container Insights 适用于 Amazon EKS。有关更多信息，请参阅 [适用于 Amazon EKS 的采用 OpenTelemetry 指标的 Container Insights](container-insights-otel-metrics.md)。

## CloudWatch 代理容器镜像
<a name="container-insights-download-limit"></a>

亚马逊在 Amazon Elastic Container Registry 上提供 CloudWatch 代理容器镜像。有关更多信息，请参阅 Amazon ECR 上的 [cloudwatch-agent](https://gallery.ecr.aws/cloudwatch-agent/cloudwatch-agent)。