本頁說明如何設定 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 指標,請按照下列步驟操作:
-
在 Google Cloud 控制台中,前往「Kubernetes clusters」(Kubernetes 叢集) 頁面:
前往「Kubernetes clusters」(Kubernetes 叢集)
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Kubernetes Engine」的結果。
按一下叢集名稱。
在標示為「Cloud Monitoring」的「功能」列中,按一下「編輯」圖示。
在隨即顯示的「Edit Cloud Monitoring」(編輯 Cloud Monitoring) 對話方塊中,確認已選取「Enable 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 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
|
|
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 |
Pod 在 PLEG 重新列出的時間長度 (以秒為單位)。每 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
|