阿里云Prometheus监控提供统一采集、存储和展示阿里云云服务监控数据的能力,并提供对应的Grafana监控大盘和告警。本文介绍使用阿里云Prometheus监控查询原始压测指标的方法。
使用限制
2023年01月04日后发起的PTS压测与JMeter公网压测,均支持Prometheus监控,历史报告暂不支持Prometheus监控。
查看原始数据和监控大盘
- 登录PTS控制台,在左侧导航栏选择 。
- 在报告列表页面,单击目标压测报告右侧操作列的查看报告,然后单击Prometheus监控页签,查看原始数据(图标①)和监控大盘(图标②)。
新版监控大盘优势
新版监控大盘相对旧版压测报告概览,有如下升级:
- 支持90、95、99分位响应时长,比平均响应时长更适合衡量大部分用户的访问延迟,准确评估在流量峰值下的用户体验。
- 支持请求各阶段耗时,如建联时长、等待响应时长、下载响应体时长,辅助定位响应时长不符合预期的原因。
- 增加断言失败请求分布图,按失败数从大到小排序。
- 增加各API请求响应时长、请求吞吐量、请求成功率排序表格,方便定位在模拟会话中的性能瓶颈API。
指标详情
PTS中Prometheus监控的指标类型分为请求响应、响应时长及施压机自监控,这些指标类型对应的详细指标名称及Label名称如下。
请求响应
指标名称 | 指标描述 | Label名称 | Label描述 |
pts_api_request | 发送请求数 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
api_id | API ID | ||
api_name | API名称 | ||
pts_api_response | 接收响应数 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
api_id | API ID | ||
api_name | API名称 | ||
code | 响应状态码 | ||
pts_api_assertion_result | 断言结果,对应检查点 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
api_id | API ID | ||
api_name | API名称 | ||
assertion_result | 断言结果。包括:
| ||
pts_assertion | 断言条件,一个断言包括多个断言条件 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
api_id | API ID | ||
api_name | API名称 | ||
assertion | 断言条件,例如响应Body JSON、 响应Header或响应状态码 | ||
assertion_result | 断言结果。包括:
|
响应时长
指标名称 | 指标描述 | Label名称 | Label描述 |
pts_api_rt | API响应时长 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
api_id | API ID | ||
api_name | API名称 | ||
pts_api_timing | API Timing瀑布流,即请求各阶段耗时 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
api_id | API ID | ||
api_name | API名称 | ||
timing | Timing各阶段。
| ||
pts_scene_rt | 全场景响应时长 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
pts_scene_timing | Topic消息消费次数 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
timing | Timing各阶段。
|
施压机自监控
指标名称 | 指标描述 | Label名称 | Label描述 |
pts_jvm_gc | 施压机JVM垃圾回收 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
gc | 垃圾回收器 | ||
pts_os_network | 施压机带宽 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
network | 带宽。Label值如下:
| ||
pts_os_load | 施压机负载 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
load | 负载。 Label值为1分钟系统负载:即load1 | ||
pts_os_memory | 施压机内存 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
memory | 内存。Label值如下:
| ||
pts_os_cpu | 施压机CPU使用率 | task_id | 压测报告ID |
region_id | 施压机所在地域的ID | ||
agent_id | 施压机ID | ||
cpu | CPU使用率。Label值如下:
|
如何自定义指标查询监控数据
基于上文指标详情中提供的基础指标,您可以通过自定义PromQL语句,查询聚合出丰富的业务指标。
- 登录PTS控制台,在左侧导航栏选择 。
- 在报告列表页面,单击目标压测报告右侧操作列的查看报告,然后单击Prometheus监控页签,在原始数据区域单击Metrics。系统会跳转至大盘页面,然后在Explore右侧通过输入PTS关键字(图标①)搜索目标地域Explore,并选择时间范围(图标②),然后在Metrics右侧填写PromQL语句(图标③)。这里为您提供以下几种常用的PromQL语句。
- 全场景吞吐量:
round(sum(rate(pts_api_response_total{task_id="Your Task Id"}[5s])))
- 全场景返回状态码为200或302的吞吐量:
sum(rate(pts_api_response_total{task_id="Your Task Id", code=~"200|302"}[5s]))
- 平均响应时长:
avg(pts_scene_rt_sum{task_id="Your Task Id"}/pts_scene_rt_count{task_id="Your Task Id"})
- 全场景吞吐量:
文档内容是否对您有帮助?