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

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

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

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

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

評(píng)論