收集及查看 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 以上版本的叢集時,系統預設會啟用 cAdvisor/Kubelet 套件。
  • 叢集必須啟用系統指標
  • 叢集已啟用 Google Cloud Managed Service for Prometheus 代管收集作業。新叢集預設會啟用 Google Cloud Managed Service for Prometheus 管理的收集功能。

設定收集 cAdvisor/Kubelet 指標

您可以使用 Google Cloud 控制台、gcloud CLI 或 Terraform,在現有 GKE 叢集中啟用 cAdvisor/Kubelet 指標。

控制台

如要從叢集的「詳細資料」分頁標籤設定 cAdvisor/Kubelet 指標,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Kubernetes clusters」(Kubernetes 叢集) 頁面:

    前往「Kubernetes clusters」(Kubernetes 叢集)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Kubernetes Engine」的結果

  2. 按一下叢集名稱。

  3. 在標示為「Cloud Monitoring」的「功能」列中,按一下「編輯」圖示。

  4. 在隨即顯示的「Edit Cloud Monitoring」(編輯 Cloud Monitoring) 對話方塊中,確認已選取「Enable Cloud Monitoring」(啟用 Cloud Monitoring)

  5. 在「元件」下拉式選單中,選取要收集指標的 cAdvisor/Kubelet 元件:

    • cAdvisor
    • Kubelet
  6. 按一下 [確定]

  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 with 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 查詢語言 (PromQL) 查詢 cAdvisor/Kubelet 指標。您也可以使用 Monitoring Query Language (MQL) 查詢這些指標

查詢指標

查詢 cAdvisor/Kubelet 指標時,您使用的名稱取決於是否使用 PromQL,或是以 Cloud Monitoring 為基礎的功能,例如 MQL 或 Metrics Explorer 的 選單導向介面

下表列出 cAdvisor/Kubelet 指標,並顯示每個指標名稱的兩個版本:

  • PromQL 指標名稱:在 Google Cloud 控制台的 Cloud Monitoring 頁面使用 PromQL,或在 Cloud Monitoring API 的 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
Pod 在 PLEG 重新列出的時間長度 (以秒為單位)。每 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