本页面介绍了如何配置 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 指标,请执行以下操作:
-
在 Google Cloud 控制台中,转到 Kubernetes 集群页面:
如果您使用搜索栏查找此页面,请选择子标题为 Kubernetes Engine 的结果。
点击您的集群名称。
在标有 Cloud Monitoring 的功能行中,点击修改图标。
在出现的修改 Cloud Monitoring对话框中,确认选中启用 Cloud Monitoring。
在组件下拉菜单中,选择要从中收集指标的 cAdvisor/Kubelet 组件:
- cAdvisor
- Kubelet
点击确定。
点击保存更改。
gcloud
更新集群以收集指标:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--enable-managed-prometheus \
--monitoring=SYSTEM,CADVISOR,KUBELET
请替换以下内容:
CLUSTER_NAME
:现有集群的名称。COMPUTE_LOCATION
:集群的 Compute Engine 位置。
提供给 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
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
已经历的强制执行期间隔数。每 30 秒采样一次。cpu
|
container_cpu_cfs_throttled_periods_total container_cpu_cfs_throttled_periods_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
限制期间隔数。每 30 秒采样一次。cpu
|
container_cpu_usage_seconds_total container_cpu_usage_seconds_total/counter
|
|
CUMULATIVE 、DOUBLE 、s
prometheus_target 1.29.3-gke.1093000 |
所使用的累计 CPU 时间。每 30 秒采样一次。cpu
|
container_fs_limit_bytes container_fs_limit_bytes/gauge
|
|
GAUGE 、DOUBLE 、By
prometheus_target 1.29.3-gke.1093000 |
此文件系统上的容器可以使用的字节数量。每 30 秒采样一次。disk
|
container_fs_read_seconds_total container_fs_read_seconds_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
已完成的累计读取数量。每 30 秒采样一次。diskIO
|
container_fs_reads_bytes_total container_fs_reads_bytes_total/counter
|
|
CUMULATIVE 、DOUBLE 、By
prometheus_target 1.29.3-gke.1093000 |
已读取的累计字节数量。每 30 秒采样一次。diskIO
|
container_fs_reads_total container_fs_reads_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
已完成的累计读取数量。每 30 秒采样一次。diskIO
|
container_fs_usage_bytes container_fs_usage_bytes/gauge
|
|
GAUGE 、DOUBLE 、By
prometheus_target 1.29.3-gke.1093000 |
此文件系统上的容器所使用的字节数量。每 30 秒采样一次。disk
|
container_fs_write_seconds_total container_fs_write_seconds_total/counter
|
|
CUMULATIVE 、DOUBLE 、s
prometheus_target 1.29.3-gke.1093000 |
写入所花费的累计秒数。每 30 秒采样一次。diskIO
|
container_fs_writes_bytes_total container_fs_writes_bytes_total/counter
|
|
CUMULATIVE 、DOUBLE 、By
prometheus_target 1.29.3-gke.1093000 |
已写入的累计字节数量。每 30 秒采样一次。diskIO
|
container_fs_writes_total container_fs_writes_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
已完成的累计写入数量。每 30 秒采样一次。diskIO
|
container_memory_rss container_memory_rss/gauge
|
|
GAUGE 、DOUBLE 、By
prometheus_target 1.29.3-gke.1093000 |
RSS 的大小。每 30 秒采样一次。memory
|
container_memory_working_set_bytes container_memory_working_set_bytes/gauge
|
|
GAUGE 、DOUBLE 、By
prometheus_target 1.29.3-gke.1093000 |
当前工作集。每 30 秒采样一次。memory
|
container_network_receive_bytes_total container_network_receive_bytes_total/counter
|
|
CUMULATIVE 、DOUBLE 、By
prometheus_target 1.29.3-gke.1093000 |
已接收的累计字节数量。每 30 秒采样一次。network
|
container_network_receive_packets_dropped_total container_network_receive_packets_dropped_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
接收时丢弃的累计数据包数量。每 30 秒采样一次。network
|
container_network_receive_packets_total container_network_receive_packets_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
已接收的累计数据包数量。每 30 秒采样一次。network
|
container_network_transmit_bytes_total container_network_transmit_bytes_total/counter
|
|
CUMULATIVE 、DOUBLE 、By
prometheus_target 1.29.3-gke.1093000 |
已传输的累计字节数量。每 30 秒采样一次。network
|
container_network_transmit_packets_dropped_total container_network_transmit_packets_dropped_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
传输时丢弃的累计数据包数量。每 30 秒采样一次。network
|
container_network_transmit_packets_total container_network_transmit_packets_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
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
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
Kubelet 服务证书的最短 TTL(存留时间)的采样平均值。该值是证书到期前的秒数(如果已到期,则为负数)。如果服务证书无效或未使用,则该值为 +INF。每 30 秒采样一次。 |
kubelet_node_name kubelet_node_name/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
节点的名称。数量始终为 1。每 30 秒采样一次。node
|
kubelet_pleg_relist_duration_seconds kubelet_pleg_relist_duration_seconds/histogram
|
|
CUMULATIVE 、DISTRIBUTION 、s
prometheus_target 1.29.3-gke.1093000 |
在 PLEG 中重新列出 Pod 的时长(以秒为单位)。每 30 秒采样一次。 |
kubelet_pod_worker_duration_seconds kubelet_pod_worker_duration_seconds/histogram
|
|
CUMULATIVE 、DISTRIBUTION 、s
prometheus_target 1.29.3-gke.1093000 |
同步单个 Pod 的时长(以秒为单位)。按操作类型细分:创建、更新或同步。每 30 秒采样一次。operation_type
|
kubelet_running_containers kubelet_running_containers/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
当前正在运行的容器数量。每 30 秒采样一次。container_state
|
kubelet_running_pods kubelet_running_pods/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
具有正在运行的 Pod 沙盒的 Pod 数量。每 30 秒采样一次。 |
kubelet_runtime_operations_total kubelet_runtime_operations_total/counter
|
|
CUMULATIVE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
按操作类型划分的累计运行时操作数量。每 30 秒采样一次。operation_type
|
kubelet_volume_stats_available_bytes kubelet_volume_stats_available_bytes/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
卷中的可用字节数量。每 30 秒采样一次。namespace
persistentvolumeclaim
|
kubelet_volume_stats_capacity_bytes kubelet_volume_stats_capacity_bytes/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
卷的容量(以字节为单位)。每 30 秒采样一次。namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes kubelet_volume_stats_inodes/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
卷中的 inode 数量上限。每 30 秒采样一次。namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_free kubelet_volume_stats_inodes_free/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
卷中的可用 inode 数量。每 30 秒采样一次。namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_used kubelet_volume_stats_inodes_used/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
卷中已使用的 inode 数量。每 30 秒采样一次。namespace
persistentvolumeclaim
|
kubelet_volume_stats_used_bytes kubelet_volume_stats_used_bytes/gauge
|
|
GAUGE 、DOUBLE 、1
prometheus_target 1.29.3-gke.1093000 |
卷中已使用的字节数量。每 30 秒采样一次。namespace
persistentvolumeclaim
|