Milvus 監控框架概述
本主題說明 Milvus 如何使用 Prometheus 來監控指標,以及如何使用 Grafana 來視覺化指標和建立警示。
Milvus 中的 Prometheus
Prometheus是 Kubernetes 實作的開放原始碼監控及警示工具套件。它以時間序列資料的方式收集並儲存指標。這表示度量記錄時會儲存時間戳記,以及稱為標籤的可選鍵值對。
目前 Milvus 使用 Prometheus 的下列元件:
- Prometheus 端點,從出口商設定的端點取得資料。
- Prometheus 操作員,以有效管理 Prometheus 監控實體。
- Kube-prometheus 提供易於操作的端對端 Kubernetes 群集監控。
度量名稱
Prometheus 中有效的度量名稱包含三個元素:命名空間、子系統和名稱。這三個元素以「_」連結。
Prometheus 監控的 Milvus 公制的命名空間是 "milvus"。根據度量指標所屬的角色,其子系統應該是下列八種角色之一:"rootcoord"、"proxy"、"querycoord"、"querynode"、"indexcoord"、"indexnode"、"datacoord"、"datanode"。
例如,計算查詢向量總數的 Milvus 公制命名為milvus_proxy_search_vectors_count
。
度量類型
Prometheus 支援四種度量類型:
- 計數器 (Counter):一種累積度量,其值只能增加或在重新啟動時重設為零。
- Gauge (度量單位):這種度量單位的值可以上升或下降。
- 直方圖:一種根據可設定的桶進行計算的度量指標。常見的範例是請求持續時間。
- 摘要:類似直方圖的度量類型,可在滑動時間視窗中計算可設定的量化值。
度量標籤
Prometheus 透過標籤區分具有相同度量名稱的樣本。標籤是度量指標的特定屬性。具有相同名稱的度量值,其variable_labels
欄位的值必須相同。下表列出 Milvus 公制常用標籤的名稱和意義。
標籤名稱 | 定義 | 值 |
---|---|---|
"node_id" | 角色的唯一 ID。 | 由 milvus 產生的全局唯一 ID。 |
狀態 | 已處理的作業或請求的狀態。 | 「放棄」、「成功 」或 「失敗」。 |
"查詢類型 | 讀取請求的類型。 | 「搜尋 」或 「查詢」。 |
"msg_type | 訊息的類型。 | 「插入」、「刪除」、「搜尋 」或 「查詢」。 |
"segment_state" 區段的狀態。 | 區段的狀態。 | "Sealed"、"Growing"、"Flushed"、"Flushing"、"Dropped 「或 」Importing"。 |
"cache_state" 快取物件的狀態。 | 快取物件的狀態。 | 「命中 」或 「未命中」。 |
"快取名稱 | 快取物件的名稱。此標籤與 "cache_state" 標籤一起使用。 | 例如:"CollectionID"、"Schema "等。 |
"通道名稱 | 訊息儲存(Pulsar 或 Kafka)中的實體主題。 | 例如:"by-dev-rootcoord-dml_0"、"by-dev-rootcoord-dml_255 "等。 |
"function_name"(函式名 | 處理特定請求的函式名稱。 | 例如,"CreateCollection"、"CreatePartition"、"CreateIndex "等。 |
"使用者名稱 | 用於驗證的使用者名稱。 | 您偏好的使用者名稱。 |
"索引任務的狀態 | 索引任務在元儲存中的狀態。 | 「未發佈」、「進行中」、「失敗」、「完成 」或 「回收」。 |
Milvus 中的 Grafana
Grafana是一個開放原始碼的可視化堆疊,可連結所有資料來源。透過調出指標,它可以幫助使用者瞭解、分析和監控大量資料。
Milvus 使用 Grafana 的客製化儀表板來進行度量可視化。
下一步
了解監控和警示的基本工作流程後,請學習: