收集并查看 cAdvisor/Kubelet 指标


本页面介绍了如何配置 Google Kubernetes Engine (GKE) 集群,以使用 Google Cloud Managed Service for Prometheus 将一组精选的 cAdvisor/Kubelet 指标发送到 Cloud Monitoring。本页面还介绍了这些指标在写入 Monitoring 时如何设置其格式,以及如何查询指标。

这组精选的指标是默认情况下在每个 Kubernetes 部署中构建的 cAdvisor/Kubelet 指标集的子集,其中包含与减少注入量和关联费用相关的指标。

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

使用要求

如需收集 cAdvisor/Kubelet 指标,GKE 集群必须满足以下要求:

  • 集群必须运行 GKE 1.29.3-gke.1093000 版或更高版本。
  • 集群必须已启用系统指标。创建运行 1.29.3-gke.1093000 版或更高版本的集群时,系统指标默认处于启用状态。
  • 集群已启用 Google Cloud Managed Service for Prometheus 托管式收集功能。创建运行 1.29.3-gke.1093000 版或更高版本的集群时,托管式收集功能默认处于启用状态。

配置 cAdvisor/Kubelet 指标的收集

您可以使用 Google Cloud 控制台、gcloud CLI 或 Terraform 在现有 GKE 集群中启用 cAdvisor/Kubelet 指标。

控制台

如需从集群的详细信息标签页配置 cAdvisor/Kubelet 指标,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Kubernetes 集群页面:

    转到 Kubernetes 集群

    如果您使用搜索栏查找此页面,请选择子标题为 Kubernetes Engine 的结果。

  2. 点击您的集群名称。

  3. 在标有 Cloud Monitoring功能行中,点击修改图标。

  4. 在出现的修改 Cloud Monitoring对话框中,确认选中启用 Cloud Monitoring

  5. 组件下拉菜单中,选择要从中收集指标的 cAdvisor/Kubelet 组件:

    • cAdvisor
    • Kubelet
  6. 点击 OK(确定)。

  7. 点击保存更改

gcloud

更新集群以收集指标:

gcloud container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --enable-managed-prometheus \
    --monitoring=SYSTEM,CADVISOR,KUBELET

请替换以下内容:

提供给 monitoring 标志的一组值会替换之前的任何设置。

Terraform

如需使用 Terraform 配置 cAdvisor/Kubelet 指标的收集,请参阅 google_container_cluster 的 Terraform 注册表中的 monitoring_config 块。如需了解有关将 Google Cloud 与 Terraform 搭配使用的一般信息,请参阅将 Terraform 与 Google Cloud 搭配使用

指标格式

写入 Cloud Monitoring 的所有 Kubernetes cAdvisor/Kubelet 指标都使用资源类型 prometheus_target。每个指标名称都以 prometheus.googleapis.com/ 为前缀,并带有表示 Prometheus 指标类型的后缀,例如 /gauge/histogram/counter。否则,每个指标名称都与开源 Kubernetes 公开的指标名称相同。

从 Cloud Monitoring 导出

您可以使用 Cloud Monitoring API 从 Cloud Monitoring 导出 cAdvisor/Kubelet 指标。由于所有 cAdvisor/Kubelet 指标均使用 Google Cloud Managed Service for Prometheus 注入,因此您可以使用 Prometheus Query Language (PromQL) 查询 cAdvisor/Kubelet 指标。您还可以使用 Monitoring Query Language (MQL) 查询它们。

查询指标

查询 cAdvisor/Kubelet 指标时,您使用的名称取决于您使用的是 PromQL 还是基于 Cloud Monitoring 的功能,例如 MQL 或 Metrics Explorer 菜单驱动的界面

以下 cAdvisor/Kubelet 指标表展示了每个指标名称的两个版本:

  • PromQL 指标名称:在 Google Cloud 控制台的 Cloud Monitoring 页面中或 Cloud Monitoring API 的 PromQL 字段中使用 PromQL 时,请使用 PromQL 字段名称。
  • Cloud Monitoring 指标名称:使用其他 Cloud Monitoring 功能时,请使用下表中的 Cloud Monitoring 指标名称。此名称必须以 prometheus.googleapis.com/ 为前缀,表中的条目省略了该前缀。

cAdvisor 指标

此表中的 Cloud Monitoring 指标名称必须以 prometheus.googleapis.com/ 为前缀。表中的条目已省略该前缀。

PromQL 指标名称
Cloud Monitoring 指标名称
种类、类型、单位
受监控的资源
所需的 GKE 版本
说明
标签
container_cpu_cfs_periods_total
container_cpu_cfs_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
已经历的强制执行期间隔数。每 30 秒采样一次。

cpu
container_cpu_cfs_throttled_periods_total
container_cpu_cfs_throttled_periods_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
限制期间隔数。每 30 秒采样一次。

cpu
container_cpu_usage_seconds_total
container_cpu_usage_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
所使用的累计 CPU 时间。每 30 秒采样一次。

cpu
container_fs_limit_bytes
container_fs_limit_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
此文件系统上的容器可以使用的字节数量。每 30 秒采样一次。

disk
container_fs_read_seconds_total
container_fs_read_seconds_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
已完成的累计读取数量。每 30 秒采样一次。

diskIO
container_fs_reads_bytes_total
container_fs_reads_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
已读取的累计字节数量。每 30 秒采样一次。

diskIO
container_fs_reads_total
container_fs_reads_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
已完成的累计读取数量。每 30 秒采样一次。

diskIO
container_fs_usage_bytes
container_fs_usage_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
此文件系统上的容器所使用的字节数量。每 30 秒采样一次。

disk
container_fs_write_seconds_total
container_fs_write_seconds_total/counter
CUMULATIVEDOUBLEs
prometheus_target
1.29.3-gke.1093000
写入所花费的累计秒数。每 30 秒采样一次。

diskIO
container_fs_writes_bytes_total
container_fs_writes_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
已写入的累计字节数量。每 30 秒采样一次。

diskIO
container_fs_writes_total
container_fs_writes_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
已完成的累计写入数量。每 30 秒采样一次。

diskIO
container_memory_rss
container_memory_rss/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
RSS 的大小。每 30 秒采样一次。

memory
container_memory_working_set_bytes
container_memory_working_set_bytes/gauge
GAUGEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
当前工作集。每 30 秒采样一次。

memory
container_network_receive_bytes_total
container_network_receive_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
已接收的累计字节数量。每 30 秒采样一次。

network
container_network_receive_packets_dropped_total
container_network_receive_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
接收时丢弃的累计数据包数量。每 30 秒采样一次。

network
container_network_receive_packets_total
container_network_receive_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
已接收的累计数据包数量。每 30 秒采样一次。

network
container_network_transmit_bytes_total
container_network_transmit_bytes_total/counter
CUMULATIVEDOUBLEBy
prometheus_target
1.29.3-gke.1093000
已传输的累计字节数量。每 30 秒采样一次。

network
container_network_transmit_packets_dropped_total
container_network_transmit_packets_dropped_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
传输时丢弃的累计数据包数量。每 30 秒采样一次。

network
container_network_transmit_packets_total
container_network_transmit_packets_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
已传输的累计数据包数量。每 30 秒采样一次。

network

Kubelet 指标

此表中的 Cloud Monitoring 指标名称必须以 prometheus.googleapis.com/ 为前缀。表中的条目已省略该前缀。

PromQL 指标名称
Cloud Monitoring 指标名称
种类、类型、单位
受监控的资源
所需的 GKE 版本
说明
标签
kubelet_certificate_manager_server_ttl_seconds
kubelet_certificate_manager_server_ttl_seconds/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
Kubelet 服务证书的最短 TTL(存留时间)的采样平均值。该值是证书到期前的秒数(如果已到期,则为负数)。如果服务证书无效或未使用,则该值为 +INF。每 30 秒采样一次。

 
kubelet_node_name
kubelet_node_name/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
节点的名称。数量始终为 1。每 30 秒采样一次。

node
kubelet_pleg_relist_duration_seconds
kubelet_pleg_relist_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
在 PLEG 中重新列出 Pod 的时长(以秒为单位)。每 30 秒采样一次。

 
kubelet_pod_worker_duration_seconds
kubelet_pod_worker_duration_seconds/histogram
CUMULATIVEDISTRIBUTIONs
prometheus_target
1.29.3-gke.1093000
同步单个 Pod 的时长(以秒为单位)。按操作类型细分:创建、更新或同步。每 30 秒采样一次。

operation_type
kubelet_running_containers
kubelet_running_containers/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
当前正在运行的容器数量。每 30 秒采样一次。

container_state
kubelet_running_pods
kubelet_running_pods/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
具有正在运行的 Pod 沙盒的 Pod 数量。每 30 秒采样一次。

 
kubelet_runtime_operations_total
kubelet_runtime_operations_total/counter
CUMULATIVEDOUBLE1
prometheus_target
1.29.3-gke.1093000
按操作类型划分的累计运行时操作数量。每 30 秒采样一次。

operation_type
kubelet_volume_stats_available_bytes
kubelet_volume_stats_available_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
卷中的可用字节数量。每 30 秒采样一次。

namespace
persistentvolumeclaim
kubelet_volume_stats_capacity_bytes
kubelet_volume_stats_capacity_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
卷的容量(以字节为单位)。每 30 秒采样一次。

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes
kubelet_volume_stats_inodes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
卷中的 inode 数量上限。每 30 秒采样一次。

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_free
kubelet_volume_stats_inodes_free/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
卷中的可用 inode 数量。每 30 秒采样一次。

namespace
persistentvolumeclaim
kubelet_volume_stats_inodes_used
kubelet_volume_stats_inodes_used/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
卷中已使用的 inode 数量。每 30 秒采样一次。

namespace
persistentvolumeclaim
kubelet_volume_stats_used_bytes
kubelet_volume_stats_used_bytes/gauge
GAUGEDOUBLE1
prometheus_target
1.29.3-gke.1093000
卷中已使用的字节数量。每 30 秒采样一次。

namespace
persistentvolumeclaim