本文介绍如何将PTS压测指标输出到开源Prometheus,帮助您将PTS压测的监控数据导出至自建Prometheus监控系统,以便您可以自定义查询和聚合指标。
前提条件
- 已创建PTS压测场景,具体操作,请参见创建压测场景。
- 已搭建Prometheus。
背景信息
开源Prometheus是一套开源的监控报警系统。主要特点包括多维数据模型、灵活查询语句PromQL以及数据可视化展示等。更多信息,请参见Prometheus官方文档。
步骤一:配置Prometheus指标并启动压测
您需要在已创建的PTS压测场景的高级设置页面中打开Prometheus开关,具体操作如下。
- 登录PTS控制台。
- 在左侧导航栏选择,单击目标PTS压测场景名称右侧操作列的编辑。
- 在编辑场景页面,单击高级设置页签。
- 在Prometheus Exporter配置区域,打开Prometheus开关按钮。
打开
Prometheus开关后:
- 在压测指标区域会生成默认配置信息,您可以对默认配置参数信息进行修改或者根据需要添加监控指标。
默认的参数配置信息说明如下。
参数 |
说明 |
示例 |
Metric名称 |
对应Prometheus中的监控指标(即Metric)。 |
pts_success_count |
Metric说明 |
对监控指标(即Metric)的相关注释。 |
成功请求数 |
Labels |
对应Prometheus中的Label概念,支持API名称和响应状态码2个维度。利用Label,您可以在开源Prometheus中针对不同的状态码或请求做统计。 |
API名称,支持多选 |
Metric类型 |
对应Prometheus的指标类型(即Metric type),Prometheus目前支持的指标类型有Counter、Gauge、Histogram和Summary。同时针对压测使用场景,扩展了成功率的类型,支持采集成功数、失败数和总数这3个指标,可以用来计算请求、断言成功率。 |
Counter |
直方图分布区间 |
对应Prometheus中Histogram和Summary指标类型,用于统计区间配置。 |
- Histogram指标类型:数值,用英文逗号分隔。示例: 100,500,1000,3000
- Summary指标类型:数值对,每组数值用逗号分隔,组与组间用|分隔,每组第一个数值代表区间边界值,第二个数值代表误差波动范围,可用于统计分位数。示例: 0.8,0.01|0.9,0.01|0.95,0.005|0.99,0.001
|
监听对象 |
监听的PTS对象,目前仅支持API。 |
API |
监听指标 |
监控指标(即Metric)对应的PTS指标,支持如下指标:
- 总请求数
- 成功请求数
- 失败请求数
- 请求成功率
- 响应时长(Elapsed Time)
- 建联时长(Connect Time)
- 空闲时长(Idle Time)
- Latency
- 响应大小
|
成功请求数 |
- 在施压机监控区域默认采集2个施压机性能监控指标:垃圾回收次数(jvm_gc_collection_seconds_count)、垃圾回收耗时(jvm_gc_collection_seconds)。

- 在编辑场景页面单击保存去压测,启动压测。
压测开始后,可以看到Prometheus监控导出对应的配置。
步骤二:获取并验证Prometheus Target
您需要在PTS控制台获取Prometheus Target,并在自建的Prometheus中复制并热加载此配置,然后可以在Prometheus平台验证Target是否生效,当Target后,就可以将您的PTS压测监控数据导出至自建Prometheus监控系统。
- 在压测中页面单击监控导出,然后在弹出的监控导出面板中,您可以根据界面提示操作获取Prometheus Target。

此处为您提供获取Prometheus Target的示例操作,即您需要在自建Prometheus中编辑配置文件(配置文件一般是prometheus.yaml形式),然后在scrape_configs中复制Prometheus配置内容。

global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
# job名称,可自行修改
- job_name: 'pts_prometheus_xxxxxxx'
# Prometheus pull metric path
metrics_path: /pts/prometheus/xxxxxxx/metrics
basic_auth:
username: 'pts_prometheus_xxxxxxxx'
password: 'xxxxxxxxxxxxxxxxxxxxxxxx'
# 轮询时间,可修改
scrape_interval: 5s
scrape_timeout: 5s
# Prometheus targets
static_configs:
- targets: ['xx.xx.xx.xx:9270']
- targets: ['xx.xx.xx.xx:9270']
- 热加载配置文件。
# PrometheusDomain为Prometheus的web地址
curl -X POST http://{PrometheusDomain}/-/reload
- 在Prometheus平台验证Target是否生效。如下图所示,当处于UP状态的Target数量等于Target总数时,则代表配置成功。
步骤三:快速搭建Grafana监控大盘
PTS提供了官方Grafana大盘模板,支持一键导入监控大盘,并可以灵活编辑和扩展,满足您的定制监控需求。在将PTS压测监控数据导出至自建Prometheus监控系统后,您可以通过Grafana大盘来展示监控到的指标数据,具体操作如下。
- 打开Grafana大盘概览页。
- 在左侧导航栏选择。
- 在Import Dashboard页面的Grafana.com Dashboard区域填写PTS Dashboard的ID(15981),单击Load,然后在Prometheus区域选择已有的数据源,然后单击Import。
数据源导入成功后,在Grafana页面单击左上角
PTS压测任务,选择需要监控的压测任务名称,即可看到当前监控大盘。通过该大盘您可以看到以下几点数据:
说明 该压测任务名对应步骤二中监控导出Prometheus时配置的Job Name,具体请参见
监控导出。
- 在概览区域,提供了全局请求成功率,系统吞吐量(TPS),P99、P95、P90分位响应时长,以及按错误状态码聚合的错误请求数等数据。

- 在API分布区域,可以直观的对比各API的监控指标,快速定位性能短板API。

- 在API详情区域,可以查看单个API的详细指标,准确定位性能瓶颈。

- 在施压机性能区域,提供了施压机的JVM垃圾回收监控指标,可以帮助您判断施压机是否为压测链路中的性能瓶颈。
