查看 Container Insights 指标 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

查看 Container Insights 指标

在设置了 Container Insights 并开始收集指标后,您可以在 CloudWatch 控制台中查看这些指标。

要在控制面板上显示 Container Insights 指标,您必须完成 Container Insights 设置。有关更多信息,请参阅 设置 Container Insights

此过程说明如何查看 Container Insights 根据收集的日志数据自动生成的指标。本节的其余部分介绍了如何进一步深入了解您的数据并使用 CloudWatch Logs Insights 查看更多精细级别的指标。

查看 Container Insights 指标
  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,依次选择 InsightsContainer Insights

  3. Container Insights 下的下拉框中,选择性能监控

  4. 使用靠近顶部的下拉框选择要查看的资源类型以及特定资源。

您可以设置 Container Insights 收集的任何指标的 CloudWatch 告警。有关更多信息,请参阅 使用 Amazon CloudWatch 告警

注意

如果您已设置 CloudWatch Application Insights 来监控容器化应用程序,Application Insights 控制面板将显示在 Container Insights 控制面板下方。如果尚未启用 Application Insights,可以通过在 Container Insights 控制面板中的性能视图下方选择 Auto-configure Application Insights(自动配置 Application Insights)将其启用。

有关 Application Insights 和容器化应用程序的更多信息,请参阅 为 Amazon ECS 和 Amazon EKS 资源监控启用 Application Insights

查看排名靠前的贡献者

对于 Container Insights 性能监控中的某些视图,您还可以通过内存或 CPU 或最近的活动资源查看排名靠前的贡献者。当您在靠近页面顶部的下拉框中选择以下任一控制面板时,此功能可用:

  • ECS 服务

  • ECS 任务

  • EKS 命名空间

  • EKS 服务

  • EKS Pods

当您查看这些类型的任一资源时,页面底部会显示一个最初按 CPU 使用率排序的表格。您可以将其更改为按内存使用情况或最近的活动进行排序。要查看有关表格中某行的详细信息,可以选中该行旁边的复选框,然后选择 Actions(操作),然后选择 Actions(操作)菜单中的任一选项。

使用 CloudWatch Logs Insights 查看 Container Insights 数据

Container Insights 通过使用嵌入式指标格式的性能日志事件来收集指标。日志存储在 CloudWatch Logs 中。CloudWatch 从日志中自动生成多个指标,您可以在 CloudWatch 控制台中查看这些指标。您还可以对使用 CloudWatch Logs Insights 查询收集到的性能数据进行更深入的分析。

有关 CloudWatch Logs Insights 的更多信息,请参阅使用 CloudWatch Logs Insights 分析日志数据。有关您可以在查询中使用的日志字段的更多信息,请参阅 Amazon EKS 和 Kubernetes 的 Container Insights 性能日志事件

使用 CloudWatch Logs Insights 查询容器指标数据
  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择 Insights

    屏幕顶部附近是查询编辑器。当您首次打开 CloudWatch Logs Insights 时,此框包含一个默认查询,该查询将返回 20 个最新的日志事件。

  3. 在查询编辑器上方的框中,选择要查询的 Container Insights 日志组之一。要成功执行以下示例查询,日志组名称必须以 performance 结尾。

    当您选择日志组时,CloudWatch Logs Insights 会自动检测日志组数据中的字段,并将其显示在右侧窗格中的 Discovered fields(发现的字段)中。它还显示此日志组中的日志事件随时间变化的条形图。该条形图显示与您的查询和时间范围匹配的日志组中的事件分布情况,而不仅仅是表中显示的事件。

  4. 在查询编辑器中,将默认查询替换为以下查询,然后选择运行查询

    STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName | SORT avg_node_cpu_utilization DESC

    该查询显示一个节点列表,它按平均节点 CPU 使用率进行排序。

  5. 要尝试使用另一个示例,请将该查询替换为另一个查询,然后选择运行查询。本页稍后将列出更多示例查询。

    STATS avg(number_of_container_restarts) as avg_number_of_container_restarts by PodName | SORT avg_number_of_container_restarts DESC

    该查询显示一个 pod 列表,它按平均容器重新启动次数进行排序。

  6. 如果要尝试使用另一个查询,您可以使用屏幕右侧的列表中的包含字段。有关查询语法的更多信息,请参阅 CloudWatch Logs Insights 查询语法

查看资源列表
  1. 通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。

  2. 在导航窗格中,选择资源

  3. 默认视图是由 Container Insights 监控的资源列表,以及您在这些资源上设置的警报。要查看资源的可视映射,请选择地图视图

  4. 在地图视图中,您可以将指针悬停在地图中的任何资源上,查看有关该资源的基本指标。您可以选择任意资源来查看有关该资源的详细图形。

使用案例:查看 Amazon ECS 容器中的任务级指标

以下示例说明了如何使用 CloudWatch Logs Insights 深入了解 Container Insights 日志。有关更多示例,请参阅博客推出适用于 Amazon ECS 的 Amazon CloudWatch Container Insights

Container Insights 不会在精细的任务级别自动生成指标。以下查询显示 CPU 和内存使用率的任务级指标。

stats avg(CpuUtilized) as CPU, avg(MemoryUtilized) as Mem by TaskId, ContainerName | sort Mem, CPU desc

Container Insights 的其他示例查询

pod 列表,按平均容器重新启动次数排序

STATS avg(number_of_container_restarts) as avg_number_of_container_restarts by PodName | SORT avg_number_of_container_restarts DESC

请求的 Pod 与运行的 pod

fields @timestamp, @message | sort @timestamp desc | filter Type="Pod" | stats min(pod_number_of_containers) as requested, min(pod_number_of_running_containers) as running, ceil(avg(pod_number_of_containers-pod_number_of_running_containers)) as pods_missing by kubernetes.pod_name | sort pods_missing desc

集群节点故障计数

stats avg(cluster_failed_node_count) as CountOfNodeFailures | filter Type="Cluster" | sort @timestamp desc

按容器名称的应用程序日志错误

stats count() as countoferrors by kubernetes.container_name | filter stream="stderr" | sort countoferrors desc

按容器名称的磁盘使用量

stats floor(avg(container_filesystem_usage/1024)) as container_filesystem_usage_avg_kb by InstanceId, kubernetes.container_name, device | filter Type="ContainerFS" | sort container_filesystem_usage_avg_kb desc

按容器名称的 CPU 使用率

stats pct(container_cpu_usage_total, 50) as CPUPercMedian by kubernetes.container_name | filter Type="Container"