作者 | 孫曉 李鋒
1相關概念
1.1 MindIE 服務化監控指標查詢接口
在 MindIE 服務化運行過程中,為了及時掌握服務的運行狀態、性能表現以及發現潛在問題,提供了服務監控指標查詢接口(普羅 (Prometheus) 格式)。該接口能夠幫助開發者和運維人員獲取豐富的服務監控指標數據,為優化服務配置、保障服務質量提供有力支持。
本文將介紹如何使用 Prometheus 與 Grafana 來實現 MindIE 服務可視化監控功能。
當前接口支持以下指標監控,詳情可以參考:服務監控指標查詢接口(普羅格式)
名稱 | 描述 |
---|---|
請求相關指標 | |
request_received_total | 服務端接收到的推理請求總數。通過該指標可了解服務的訪問熱度。 |
request_success_total | 推理成功的請求個數,用于衡量服務的推理成功率。 |
request_failed_total | 推理失敗的請求個數,結合成功請求數可計算失敗率,評估服務的穩定性。 |
num_requests_running | 當前正在運行的請求個數,反映服務當前的負載情況。 |
num_requests_waiting | 當前等待處理的請求個數,可用于判斷服務的處理能力是否滿足需求。 |
num_requests_swapped | 當前被交換到 CPU 上的請求個數,幫助了解資源調度情況。 |
num_preemptions_total | 累計觸發請求搶占的次數,用于分析服務資源競爭和調度策略的合理性。 |
Token 相關指標 | |
prompt_tokens_total | 處理的所有請求的輸入 prompt token 總數,反映輸入數據量。 |
generation_tokens_total | 推理后生成的 token 總數,體現服務的輸出量。 |
avg_prompt_throughput_toks_per_s | 平均 Prefill 吞吐量,衡量輸入階段的處理速度。 |
avg_generation_throughput_toks_per_s | 平均 token 吞吐量,反映整體的推理生成速度。 |
request_prompt_tokens | 請求輸入的 token 數量,用于分析單個請求的輸入規模。 |
request_generation_tokens | 請求輸出的 token 數量,幫助了解單個請求的輸出規模。 |
性能和資源指標 | |
failed_request_perc | 推理失敗的請求率,直觀反映服務的可靠性。 |
npu_cache_usage_perc | KV Cache 的 NPU 顯存利用率,監控 NPU 資源使用情況。 |
cpu_cache_usage_perc | KV Cache 的 CPU 利用率,掌握 CPU 資源使用狀況。 |
npu_prefix_cache_hit_rate | NPU 卡上 prefix cache 的命中率,評估緩存的使用效率。 |
時延指標 | |
time_to_first_token_seconds | 首 token 時延,衡量請求推理生成首個 token 的速度,對實時性要求較高的場景至關重要。 |
time_per_output_token_seconds | token 生成時延,反映連續生成 token 之間的時間間隔,影響服務的響應流暢度。 |
e2e_request_latency_seconds | 端到端時延,代表請求從接收到執行完成的總耗時,綜合體現服務的整體性能。 |
1.2Prometheus 是什么
Prometheus 是一個開源的系統監控和報警工具包,最初由 SoundCloud 開發,現在是 Cloud Native Computing Foundation(CNCF)的一部分。Prometheus 以其強大的數據收集和查詢能力、易于擴展和高可用性在行業內得到了廣泛應用。以下是 Prometheus 的核心概念:
時間序列數據庫:Prometheus 主要用于存儲時間序列數據,即帶有時間戳的指標數據。每個時間序列由一個指標名和一組標簽(key-value 對)標識。
多維數據模型:Prometheus 的數據模型基于指標名稱和標簽,可以靈活地對監控數據進行分類和過濾,從而實現復雜的查詢和分析。
PromQL:Prometheus 查詢語言(PromQL)用于實時查詢和分析存儲在 Prometheus 中的數據。它支持豐富的運算符和函數,能夠滿足多種監控和報警需求.
1.3 Grafana 是什么
Grafana 是一個開源的可視化和監控平臺,廣泛應用于數據分析、監控和報警。它支持多種數據源,提供豐富的可視化工具,使用戶能夠創建交互式的儀表盤。以下是 Grafana 的核心功能:
數據可視化:Grafana 提供了多種圖表類型,包括折線圖、柱狀圖、餅圖、熱圖等,用戶可以通過拖拽的方式輕松創建和自定義儀表盤。
支持多種數據源:Grafana 支持從多種數據源獲取數據,包括 Prometheus、InfluxDB、Graphite、Elasticsearch、MySQL、PostgreSQL 等。
靈活的查詢和過濾:通過集成的數據源查詢語言,Grafana 允許用戶靈活地對數據進行過濾、聚合和轉換。每種數據源都有專門的查詢編輯器,幫助用戶編寫查詢語句。
報警和通知:Grafana 提供強大的報警功能,允許用戶基于查詢結果設置報警規則。當條件滿足時,可以通過郵件、Slack、PagerDuty 等多種渠道發送通知。
用戶管理和權限控制:Grafana 提供詳細的用戶管理和權限控制功能,支持用戶、團隊和組織的管理。用戶可以根據需要設置不同的訪問權限,保護敏感數據。
2 實踐記錄
2.1 Prometheus 安裝
Prometheus 安裝方法參考:
https://prometheus.cloudnative.io/di-san-zhang-prometheus/di-2-jie-an-zhuang/installation
為方便起見,本次實踐筆者采用預編譯二進制文件安裝方法,在 Windows PC 上安裝。
安裝地址:https://prometheus.io/download/
2.2 Grafana 安裝
Grafana 同樣支持在不同操作系統安裝,詳見教程https://grafana.com/docs/grafana/latest/setup-grafana/installation/
本次實踐選擇在 Windows 安裝,安裝地址https://grafana.com/grafana/download?platform=windows
2.3 MindIEService 服務部署啟動
需在服務器啟動 MindIE-Service 服務,服務啟動教程不做贅述。
由于 MindIE 服務和 Prometheus+Grafana 在不同主機啟動,因此注意配置 config.json 文件。修改 ipAddress 和 managementIpAddress 為服務器 IP,保證 Prometheus+Grafana 服務可訪問該 IP 地址。同時需要注意端口設置。
另外,需要確保啟動服務前開啟服務化監控開關,開啟服務化監控功能的命令如下:
export MIES_SERVICE_MONITOR_MODE=1
參考:https://www.hiascend.com/document/detail/zh/mindie/10RC3/mindieservice/servicedev/mindie_service0251.html
嘗試使用 curl 命令驗證 metricsPort 輸出正常:curl http://{ip}:{port}/metrics
發現能返回普羅格式 metric 輸出
2.4 啟動 Prometheus 和 Grafana
Step1修改 prometheus 安裝目錄下的 promethues.yml 文件,添加 MindIE 服務的 IP 和 metricsport
點擊 Prometheus 安裝目錄下的 promethrus.exe 和 Grafana 安裝目錄下的 bin/grafana-server.exe 啟動 Prometheus 和 Grafana
Step2打開 Grafana http://localhost:3000 ,預設賬號密碼是 admin@admin,第一次登錄會需要修改密碼。
Step3點擊 Connection > Data sources > Add new data source,選擇 prometheus,之后把 prometheus 的 URL http://localhost:9090 / 填上去,點擊最下面 Save & test。
Step4之后可以在 Grafana 頁面建立 dashboard,在 Home-Dashboards-New dashboard 建立 dashboard, Dashboard 手動構建較麻煩,可以參考一些 Grafana 教程 https://imageslr.com/2024/grafana.html
好在可以通過 json 格式輸入或 json 文件 import 快速構建 dashboard
這里選擇參考下面 vllm 的 grafana json 文件,將其中的 vllm: 字段去掉(因為 MindIE 的 metrics 字段和 vllm 的 metric 有區別)
http://www.gitpp.com/digiman/vllm/-/blob/main/examples/production_monitoring/grafana.json?ref_type=heads
最終得到 MindIE 指標監控看板界面
-
接口
+關注
關注
33文章
8966瀏覽量
153336 -
開源
+關注
關注
3文章
3632瀏覽量
43573 -
可視化
+關注
關注
1文章
1250瀏覽量
21685 -
服務端
+關注
關注
0文章
68瀏覽量
7201
原文標題:MindIE服務化部署實現監控功能
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
軌道交通路面3G手機移動可視化巡檢系統方案
阿里云容器Kubernetes監控(二) - 使用Grafana展現Pod監控數據
可視化MES系統軟件
三維可視化的應用和優勢
prometheus做監控服務的整個流程介紹
簡述linux-arm64 UOS安裝開源Grafana的步驟
使用Thanos+Prometheus+Grafana構建監控系統
通過Grafana實現OVL數據可視化的兩種方法
互動倉庫物流監控管理可視化服務
虹科干貨 | 虹科教您使用Grafana輕松實現OVL數據可視化

物聯網可視化監控大屏如何實現?有什么功能?
如何實現園區大屏可視化?

云服務器 Flexus X 實例,Docker 集成搭建 Grafana 開源數據可視化平臺

評論