APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana

APM架构

上次公司请《性能测试进阶指南——LoadRunner11实战》作者陈霁来公司讲课,介绍了APM,感觉挺好用的,于是就搭建了一个。APM主要是对性能测试全流程进行监控并反映的一个平台框架。要实现的内容如下:

  1. 实时监控jmeter压测过程中的请求数据/响应数据以及对应统计信息等
  2. 实时监控被测主机的性能数据,比如CPU/内存/IO/网络等信息

其中涉及到两个重要的时序数据库:InfluxdbPromethues。Influxdb用于存储Jmeter执行过程的请求和响应信息;Promethues有两个作用,一个是监控服务器信息,另一个是存储这些数据信息;整体架构如下:
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana

服务安装

Influxdb/Promethues/Grafana的安装都挺简单的,直接网上找一些安装文档即可。不赘述。然后Promethus要监控服务器,需要分为LinuxWindows服务器。
Linux:直接官网下载Node_exporter并执行./node_exporter即可,端口为9100
Windows:wmi_exporter下载地址下载wmi_exporter.msi,双击运行即可,端口为9182

服务配置

Jmeter配置:添加后端监视器
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
要配置几个关键项:
summaryOnly:要设置为false
useRegexpForSamplersList:要设置为true
samplersList:正则匹配jmeter测试线程组的名称,用于区分每个请求名称,比如一个application下有多个测试项,每个测试项的线程组以JM_xxx开头,可以写为JM.+
application:用于区分不同应用的测试内容,为了便于在grafana图标切换,可以写项目名称

:为了查看jmeter执行过程是否报错,可以设置显示log,看看是否有ERROR
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana

Influxdb配置:用influx连接到influxdb后,要创建jmeter数据库,不然可能会出现jmeter写入数据库报错找不到jmeter数据库

Promethues配置

  1. 在每台待监控被测服务器安装exporter并运行
  2. 在promethus.yml添加job_name,targets填写这些服务器的ip和端口
  3. 重启promethues服务
    APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana

注:promethues严格要求空格,少一个空格可能执行的时候就执行失败!

Grafana模板

到grafana模板网站,找个wmi监控模板和linux监控模板,下载下来并导入。
模板部分内容是可以直接使用,但是很多时候是无法使用的。一般模板左上角都是可以选择服务器IP/应用名称等信息的,然后根据选择来切换不同服务器的监控信息。
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
(一) 、所有图表完全无法使用的时候
1、需要进入该模板的统一配置中心,点击Dashboard Settings
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana

查看变量信息:
windows模板:
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
linux模板:
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
2、根据exporter类别来分别设置node和server

3、时间要看最近5分钟的,一般刚开始如果时间太长的话会因为无数据而报错。
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
4、查看当前模板所有图表是否全都可以正常显示。

(二)、部分图表无法显示
1、点击该图表的下拉选项-选择编辑,查看查询语句
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana

2、查看间隔时间是否小于30s,如果是的话尽量调整到大于等于30s以上的,看看是否有数据
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
3、查看语句里引用的变量是否为空值,可以采用逐一去除引用变量或者将所有变量都去除的方式(也就是将花括号整个删除掉),查看是否有数据显示
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
4、其他错误:一般错误的话,左上角的感叹号会给出具体错误内容,此时可以查看报错语句再去具体定位
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana

实际事例

Wmi监控:
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana
linux监控:
APM性能监控平台搭建_Jmeter+Inlfluxdb+Promethues+Grafana