可觀測監控 Prometheus 版提供了 Prometheus 託管服務和容器監控服務。容器監控服務產生容器監控費用,容器監控費用包括監控叢集規模費用和 Prometheus 執行個體費用。容器監控服務分為2個版本,容器監控基礎版和容器監控 Pro 版。本文介紹了容器監控 Pro 版使用操作、計費說明、功能說明、支援大盤、預設警示規則等。
支援開啟容器監控 Pro 版的叢集類型
-
ACK託管叢集Pro版
-
ACK靈駿叢集
-
ACK專有版叢集
前提條件
容器監控 Pro 版服務依賴可觀測監控 Prometheus 版,需要先開通可觀測監控 Prometheus 版(按寫入量計費開通連結,按上報量計費開通串連),再開通容器監控 Pro 版。
容器監控 Pro 版計費說明
計費項目 | 計費說明 | 計費方式 | 計費周期 |
監控叢集規模費用 | 根據容器叢集節點(Node)規模換算 OCU 用量,每10個叢集節點換算為1個 OCU。 說明 OCU:可觀測資源額度(Observability Capacity Unit)是阿里雲雲原生可觀測推出的新版計費單位,可根據每小時資源使用方式自動統計 OCU 用量,OCU的定價為0.023美元/個。 | 隨用隨付:日容器叢集規模費用=每小時 OCU 個數累加求和 * OCU 單價 說明 每小時 OCU 個數 = 當前計費周期內節點最大值除以10 後向上取整 | 計費周期為每小時,可觀測監控 Prometheus 版會在00:00後統計前一天每小時的叢集節點數最大值,然後按計費規則計算每小時 OCU 個數,通過累計每小時 OCU 個數計算前一天的總 OCU 量,乘以 OCU 單價,按天出容器叢集規模監控費用。 |
Prometheus 執行個體費用 | |||
如何使用容器監控 Pro 版
方式一:接入時選擇容器監控 Pro 版
在接入中心頁面,選擇容器叢集監控。
在容器叢集監控面板,選擇需要接入的Container Service叢集,然後選擇版本為容器監控Pro版,然後單擊確定。
方式二:基礎版升級為容器監控 Pro 版
升級為容器監控 Pro 版後不支援降級至容器監控基礎版。
在接入管理頁面,選擇已接入環境 > 容器環境。
單擊待升級的容器監控操作列下的升級。在對話方塊中,單擊確認。
升級後檢查非託管採集探針
容器監控基礎版會在使用者叢集內部署自管的採集探針 Deployment(arms-prometheus-ack-arms-prometheus),由使用者自行管理。升級為容器監控 Pro 版後,該 Deployment 可能仍然殘留在叢集中,與 Pro 版的託管採集 Agent同時採集指標,導致同一指標在 Prometheus 執行個體中出現兩條 job 標籤不同的時間序列,監控資料翻倍。建議按以下步驟檢查並處理。
檢查
arms-prom命名空間下是否殘留非託管採集探針:kubectl -n arms-prom get deployments.apps如果輸出中包含
arms-prometheus-ack-arms-prometheus,說明非託管採集探針仍然存在。通過 PromQL 驗證是否存在重複採集(以 GPU 顯存總量指標為例,在 Prometheus 執行個體的指標查詢頁面或 Grafana 中執行):
count(DCGM_CUSTOM_DEV_FB_TOTAL)傳回值大於 1 表示同一指標存在多條時間序列,即重複採集。可進一步確認這些序列取值相同而
job標籤不同,例如job=gpu-exporter為 Pro 版託管採集,job=node-gpu-exporter為叢集內非託管探針的採集路徑。DCGM_FI_DEV_GPU_UTIL等其他 GPU 指標可用同樣方法驗證。縮容殘留的非託管採集探針:
kubectl -n arms-prom scale deployment arms-prometheus-ack-arms-prometheus --replicas=0等待約 5 分鐘(指標 staleness 視窗)後重新執行上述
count查詢,確認傳回值恢複為 1、僅剩託管採集的時間序列。監控資料恢複正常後,刪除該 Deployment:kubectl -n arms-prom delete deployment arms-prometheus-ack-arms-prometheus
基礎版與 Pro 版區別
類別 | 基礎版 | Pro 版 |
容器叢集基礎指標儲存周期 | 7天 | 90天 |
Prometheus採集器 | 使用者叢集內部署 Agent(預設單副本佔用叢集資源3 Core,4 GB),需自行管理。 | 提供託管採集 Agent,使用者不再承擔 Agent 的資源成本,提供生產級SLA 99.95%。 |
監控大盤 | 內建基礎的監控大盤。 | 內建豐富的監控大盤。 |
PrometheusRule 自動同步 | 支援,通過 CRD 定義 PrometheusRule 資源實現自動掃描同步。 | 不支援。Pro 版為託管服務,採集 Agent 由阿里雲管理,使用者無法修改底層組件參數。可通過控制台Prometheus 警示規則頁面管理警示規則,支援靜態閾值和自訂 PromQL 兩種檢測類型。 |
容器監控Pro版支援大盤
類型 | 大盤名稱 |
監控概覽 | 叢集監控概覽 |
叢集 Namespace 大盤 | |
叢集核心組件 | ACK Pro API server |
ACK Pro ETCD | |
ACK Pro Scheduler | |
ACK Pro Cloud Controller Manager | |
ACK Pro Kube Controller Manager | |
節點監控 | 節點池概覽 |
叢集節點監控詳情 | |
應用監控 | 無狀態應用監控 |
有狀態應用監控 | |
守護進程集應用監控 | |
叢集 Pod 監控 | |
網路監控 | CoreDNS 組件監控 |
叢集 Ingress 流量監控 | |
儲存監控 | CSI 儲存群組件監控-叢集維度 |
CSI 儲存群組件監控-節點維度 | |
Pod IO Monitoring (Pod Level) | |
Frontend Storage IO Monitoring (Cluster Level) | |
GPU 監控 | 叢集 GPU 監控-叢集維度 |
叢集 GPU 監控-節點維度 | |
叢集 GPU 監控-應用 Pod 維度 | |
成本分析/資源最佳化 | 資源畫像 |
其他 | Backend Storage IO Monitoring (Cluster Level) |
k8s-reclaimed-resource | |
叢集 Prometheus 自身監控 | |
Virtual Node(ECI) Overview |
預設警示規則
警示規則名稱/ID | 警示分組 | 模板 |
節點 CPU 使用率大於75% | 節點 | 節點 {{ $labels.instance }} CPU 使用率大於 75%,當前 CPU 使用率 {{ printf "%.2f" $value }}% |
節點 CPU 使用率大於85% | 節點 | 節點 {{ $labels.instance }} CPU 使用率大於 85%,當前 CPU 使用率 {{ printf "%.2f" $value }}% |
節點記憶體使用量率大於75% | 節點 | 節點 {{ $labels.instance }} 記憶體使用量率大於 75%,當前記憶體使用量率 {{ printf "%.2f" $value }}% |
節點記憶體使用量率大於85% | 節點 | 節點 {{ $labels.instance }} 記憶體使用量率大於 85%,當前記憶體使用量率 {{ printf "%.2f" $value }}% |
節點狀態異常 | 節點 | 節點 {{$labels.node}} 處於不可用狀態超過 10 分鐘 |
磁碟使用率大於95% | 節點 | 節點 {{ $labels.instance }} 磁碟 {{ $labels.device }} 使用率超過 95%,當前磁碟使用率 {{ printf "%.2f" $value }}% |
Deployment Pod 可用率小於50% | 工作負載 | 命名空間: {{$labels.namespace}} / Deployment: {{$labels.deployment}} Pod 可用率小於 50%, 當前不可用 Pod 數 {{ $value }} |
Job 執行失敗 | 工作負載 | 命名空間: {{$labels.namespace}}/Job: {{$labels.job_name}} 執行失敗 |
Pod 啟動逾時失敗 | 工作負載 | 命名空間: {{$labels.namespace}}/Pod: {{$labels.pod_name}}超過15分鐘未啟動成功,等待原因 {{$labels.reason}} |
Pod 狀態異常 | 工作負載 | 命名空間: {{$labels.namespace}}/Pod: {{$labels.pod_name}} 處於{{$labels.phase}}狀態持續超過10分鐘 |
Pod 頻繁重啟 | 工作負載 | 命名空間: {{$labels.namespace}}/Pod: {{$labels.pod_name}} {{$labels.metrics_params_time}}分鐘內重啟超過{{ $labels.metrics_params_value}}次,當前重啟 {{ $value }}次 |
容器 CPU 使用率超過85% | 工作負載 | 命名空間: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / 容器: {{$labels.container}} CPU 使用率大於 85%, 當前值{{ printf "%.2f" $value }}% |
容器 CPU 使用率超過75% | 工作負載 | 命名空間: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / 容器: {{$labels.container}} CPU使用率大於 75%, 當前值{{ printf "%.2f" $value }}% |
容器記憶體使用量率超過75% | 工作負載 | 命名空間: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / 容器: {{$labels.container}} 記憶體使用量率大於 75%, 當前值{{ printf "%.2f" $value }}% |
容器記憶體使用量率超過85% | 工作負載 | 命名空間: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / 容器: {{$labels.container}} 記憶體使用量率大於 85%, 當前值{{ printf "%.2f" $value }}% |