如前所述,System Metrics 中包含一些 GKE 底層核心的指標,包含:
- CPU usage time: 容器使用的所有內核的累計CPU使用率(以秒為單位)
- Limit cores: 容器的限制 CPU 核心數
- CPU limit utilization: Instance 使用的 CPU 與限制 CPU 的比率
- Request cores: 容器請求的 CPU 核心數
- CPU request utilization: Instance 使用的 CPU 與請求的 CPU 的比率
- Memory limit: 容器的限制 Memory
- Memory limit utilization: Instance 使用的 Memory 與限制 Memory 的比率
- Memory request: 容器請求的 Memory
- Memory request utilization: Instance 使用的 Memory 與請求的 Memory 的比率
除了上述常用指標外,目前 System Metrics 還有包含其他項目可以呈現在 Cloud Monitoring 中,其他可被收集的 System Metrics 可參考 [3]
2. 啟用 Additional Observability Metrics
那除了監控底層的 System Metrics 之外,啟用 Control Plane Metrics 與 Kube State Metrics 可以讓我們針對 GKE 各類狀態能有更全面的監控,其中 Control Plane Metrics 能讓我們特別監控:
而 Kube State Metrics 則:
- 不僅針對 Deployments, Nodes 與 Pods,Kube State Metrics 甚至是針對 DaemonSet, Storage 與 HorizontalPodAutoscaler 也可以進行 Workloads 層級的監控
透過這兩個 Additional Packages,我們便可以非常方便地監控實務上常用的 Metrics,包含:
- apiserver_request_duration_seconds
- apiserver_request_total
- apiserver_storage_objects
- apiserver_current_inflight_requests
- kube_pod_status_phase
- kube_deployment_status_replicas_available
- kube_statefulset_status_replicas_ready
- kube_horizontalpodautoscaler_spec_max_replicas
- kube_horizontalpodautoscaler_spec_min_replicas
- kube_horizontalpodautoscaler_status_current_replicas
- kube_horizontalpodautoscaler_status_desired_replicas
透過上述幾個 Metrics,我們可以快速在元件有異常負載的時候回查狀況。
舉例來說,當 API Server 過載的時候 request 的時間相對會變長,這時候我們就可以檢視 apiserver_request_duration_seconds 來初步確認每次 request 所花費的時間是否超過建議的閾值,再透過 apiserver_request_tota 與 apiserver_storage_objects 進一步針對各個 Label 逐一排查是哪些 request 造成狀況 [4],又或是我們可以透過 kube_horizontalpodautoscaler_status_current_replicas 與 kube_horizontalpodautoscaler_status_desired_replicas 來檢視 controller 是否能夠正常部署我們預期數量的 pod。
其餘這兩個 Additional Packages 可收集的 Metrics,還請參考此文件 [5][6]
其實不只是於 GKE Enterprise 版本的叢集中可以使用 Control Plane Metrics, Kube State Metrics (預設啟用),使用者若只是 GKE Standard 版本的叢集也可以透過 GCP Console 或是 gcloud 指令來啟用,這些額外的 Metrics 可於建立叢集或是後續再做修改設定,
- 於建立叢集時:
- 使用者可以透過 Features 內 Cloud Monitoring 下方 Components 選單內勾選希望收集 Metrics 的 Components: