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

如何使用Grafana輕松實現(xiàn)OVL數(shù)據(jù)可視化

虹科干貨 | 虹科教您使用Grafana輕松實現(xiàn)OVL數(shù)據(jù)可視化

物聯(lián)網(wǎng)可視化監(jiān)控大屏如何實現(xiàn)?有什么功能?
如何實現(xiàn)園區(qū)大屏可視化?

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

評論