使用Prometheus查看监控数据

阿里云Prometheus监控提供统一采集、存储和展示阿里云云服务监控数据的能力,并提供对应的Grafana监控大盘和告警。本文介绍使用阿里云Prometheus监控查询原始压测指标的方法。

使用限制

2023年01月04日后发起的PTS压测与JMeter公网压测,均支持Prometheus监控,历史报告暂不支持Prometheus监控。

查看原始数据和监控大盘

  1. 登录PTS控制台,在左侧导航栏选择性能测试 > 报告列表
  2. 报告列表页面,单击目标压测报告右侧操作列的查看报告,然后单击Prometheus监控页签,查看原始数据(图标①)和监控大盘(图标②)。
    vr

新版监控大盘优势

新版监控大盘相对旧版压测报告概览,有如下升级:

  • 支持90、95、99分位响应时长,比平均响应时长更适合衡量大部分用户的访问延迟,准确评估在流量峰值下的用户体验。vw
  • 支持请求各阶段耗时,如建联时长、等待响应时长、下载响应体时长,辅助定位响应时长不符合预期的原因。ro
  • 增加断言失败请求分布图,按失败数从大到小排序。rl
  • 增加各API请求响应时长、请求吞吐量、请求成功率排序表格,方便定位在模拟会话中的性能瓶颈API。sk

指标详情

PTS中Prometheus监控的指标类型分为请求响应、响应时长及施压机自监控,这些指标类型对应的详细指标名称及Label名称如下。

请求响应

指标名称指标描述Label名称Label描述
pts_api_request发送请求数task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
api_idAPI ID
api_nameAPI名称
pts_api_response接收响应数task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
api_idAPI ID
api_nameAPI名称
code响应状态码
pts_api_assertion_result断言结果,对应检查点task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
api_idAPI ID
api_nameAPI名称
assertion_result断言结果。包括:
  • 成功:success
  • 失败:fail
pts_assertion断言条件,一个断言包括多个断言条件task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
api_idAPI ID
api_nameAPI名称
assertion断言条件,例如响应Body JSON、 响应Header或响应状态码
assertion_result断言结果。包括:
  • 成功:success
  • 失败:fail

响应时长

指标名称指标描述Label名称Label描述
pts_api_rtAPI响应时长task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
api_idAPI ID
api_nameAPI名称
pts_api_timingAPI Timing瀑布流,即请求各阶段耗时task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
api_idAPI ID
api_nameAPI名称
timingTiming各阶段。
  • PTS压测中Label值如下:
    • dns
    • connect
    • send
    • download
    • wait
  • JMeter压测中Label值如下:
    • connect
    • idle
    • latency
pts_scene_rt全场景响应时长task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
pts_scene_timingTopic消息消费次数task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
timingTiming各阶段。
  • PTS压测中Label值如下:
    • dns
    • connect
    • send
    • download
    • wait
  • JMeter压测中Label值如下:
    • connect
    • idle
    • latency

施压机自监控

指标名称指标描述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值如下:
  • 入向带宽:in_bytes
  • 出向带宽:out_bytes
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值如下:
  • 总内存:total
  • 已用内存:used
pts_os_cpu施压机CPU使用率task_id压测报告ID
region_id施压机所在地域的ID
agent_id施压机ID
cpuCPU使用率。Label值如下:
  • user:用户态
  • system:内核态
  • idle:空闲状态
  • steal:被其他虚拟系统占用时间
  • io_wait:IO等待状态

如何自定义指标查询监控数据

基于上文指标详情中提供的基础指标,您可以通过自定义PromQL语句,查询聚合出丰富的业务指标。

  1. 登录PTS控制台,在左侧导航栏选择性能测试 > 报告列表
  2. 报告列表页面,单击目标压测报告右侧操作列的查看报告,然后单击Prometheus监控页签,在原始数据区域单击Metrics
    ev
    系统会跳转至大盘页面,然后在Explore右侧通过输入PTS关键字(图标①)搜索目标地域Explore,并选择时间范围(图标②),然后在Metrics右侧填写PromQL语句(图标③)。这里为您提供以下几种常用的PromQL语句。wi
    1. 全场景吞吐量:
      round(sum(rate(pts_api_response_total{task_id="Your Task Id"}[5s])))
    2. 全场景返回状态码为200或302的吞吐量:
      sum(rate(pts_api_response_total{task_id="Your Task Id", code=~"200|302"}[5s]))
    3. 平均响应时长:
      avg(pts_scene_rt_sum{task_id="Your Task Id"}/pts_scene_rt_count{task_id="Your Task Id"})