开发者
资源

Grafana可视化

功能说明

Grafana工具支持对服务化调优工具采集并解析的性能数据进行可视化展示。

数据准备

已完成数据解析并输出解析结果

确认在--output-path指定的路径下存在SQLite数据库文件profiler.db。

环境依赖

工具版本:Grafana=11.3.0,SQLite插件=11.3.0。

安装并连接Grafana

Grafana安装官方网址https://grafana.com/grafana/download?platform=arm&edition=oss,下载安装对应开源版本解压运行。例如:

tar -zxvf grafana-11.3.0.linux-arm64.tar.gz
cd grafana-v11.3.0/bin/
./grafana-server

配置Windows代理,需要添加Linux设备IP前缀,例如90.90.*;90.91.*,访问http://Linux设备IP:3000/即可打开Grafana的Web端,初始账号密码都为admin。

图1 Grafana示意图

使用示例

  1. 新建Data sources,如图2所示。
    图2 Data source

    data source类型选择SQLite类型,如图2 Add data source所示。

    图3 Add data source

    将解析生成的SQLite数据库文件profiler.db连接到Grafana,并记录datasource uid,如图3 Data sources所示。

    图4 Data sources
  2. 新建dashboard,导入折线图。

    在/xxx/Ascend/cann-{version}/tools/msserviceprofiler/python/ms_service_profiler/views/路径下包含可视化文件profiler_visualization.json,修改json文件中datasource的uid为步骤2中记录的uid。

    {cann_version}为CANN软件包版本,支持CANN 8.1.RC1及之后的版本。

    图5 uid示意图

    json文件末尾的uid用于唯一标记此dashboard,这里不用修改;title用于给此dashboard命名,默认为Profiler Visualization。

    图6 json示意图
  3. 新建dashboard,将修改后的json文件内容粘贴导入,即可在Dashboards中找到相对应名称的dashboard。
    图7 Dashboards
    图8 Import dashboard
    图9 设置参数

可视化结果

生成的Grafana dashboard中包含以下可视化图像:

表1 可视化图像

可视化图像名称

描述

Batch Size by Batch ID

记录BatchSchedule过程中每个batch包含的请求数量折线图。根据时间排序,区分prefill和decode。

Request Status

服务中处于不同状态下的请求数目随时间变化的折线图。

Kvcache usage percent

所有请求Kvcache使用率随时间变换折线图。包含所有请求的Kvcache使用率情况。

first_token_latency

所有请求首token时延随时间变化折线图。包含所有请求首token时延的平均值avg,分位值p99、p90、p50等。

prefill_generate_speed_latency

所有请求prefill阶段,不同时刻吞吐的token平均时延随时间变化折线图。包含所有请求不同时刻吞吐的token平均时延的平均值avg,分位值p99、p90、p50等。

decode_generate_speed_latency

所有请求decode阶段,不同时刻吞吐的token平均时延随时间变化折线图。包含所有请求不同时刻吞吐的token平均时延的平均值avg,分位值p99、p90、p50等。

request_latency

所有请求端到端时延随时间变化折线图。包含所有请求端到端时延的平均值avg,分位值p99、p90、p50等。

  • Batch Size by Batch ID

    记录BatchSchedule过程中每个batch包含的请求数量折线图。

    横轴:按执行时间顺序的第x个batch,从0开始。

    纵轴:记录对应batch的batch size,区分prefill batch和decode batch。

    图10 Batch Size by Batch ID
  • Request Status

    服务化过程中处于不同状态下的请求数目随时间变化的折线图。

    横轴:服务化推理运行时间轴。

    纵轴:当前时刻处于该状态的请求总数。

    图11 Request Status
  • Kvcache usage percent

    所有请求Kvcache使用率随时间变化折线图。

    横轴:服务化推理运行时间轴。

    纵轴:所有请求Kvcache使用率的变化情况。单位:百分率%。

    图12 Kvcache usage percent
  • first_token_latency

    所有请求token时延随时间变化折线图。

    横轴:服务化推理运行时间轴。

    纵轴:所有请求首token时延的平均值avg,分位值p99、p90、p50。单位:us。

    图13 first_token_latency
  • prefill_generate_speed_latency

    所有请求prefill阶段,不同时刻吞吐的token平均时延随时间变化折线图。

    横轴:服务化推理运行时间轴。

    纵轴:所有请求prefill阶段不同时刻吞吐的token平均时延的平均值avg,分位值p99、p90、p50。单位:token个数/s。

    图14 prefill_generate_speed_latency
  • decode_generate_speed_latency

    所有请求decode阶段,不同时刻吞吐的token平均时延随时间变化折线图。

    横轴:服务化推理运行时间轴。

    纵轴:所有请求decode阶段不同时刻吞吐的token平均时延的平均值avg,分位值p99、p90、p50。单位:token个数/s。

    图15 decode_generate_speed_latency
  • request_latency

    所有请求端到端时延随时间变化折线图。

    横轴:服务化推理运行时间轴。

    纵轴:所有请求端到端时延的平均值avg,分位值p99、p90、p50。单位:us。

    图16 request_latency