jmeter plugin监控的信息很少,只有cpu、内存、网络IO,但这些是不够的。例如对于分析mysql数据库的慢查询、最大连接数等更加细密度的信息。
服务端稳定测试的三个前提:
1.应用级别的自动化测试。针对整个系统进行评测,而不是单独某一个模块,自动化用例要覆盖系统业务场景的80%以上。自动化遍历深度不够,不能覆盖80%以上的业务场景。而且自动化遍历是在一个设备上执行的,其并发数量只有1,而稳定性测试要在一定的压力之下进行的。
2.高可用、灾难恢复的部署架构。 K8S做部署。
3.线上级别的监控体系。 在对整个系统做评测,而且是长时间的,运行时间以周为单位。要对系统进行全方位的测试。仅监控机器的物理性能指标是远远不够的,要从白盒、黑盒、从各个方面去监控不同的指标。在测试报告中详细记录,让研发人员和架构师分析系统瓶颈出现在什么地方。

目前最主流的监控体系之一。生态很丰富,有各种各样的插件可以使用。比如监控mysql的性能指标。
K8S团队已经发布了以普罗米修斯进行监控的版本,可以监控所有K8S中的性能指标,如容器的状态、服务的状态、节点的状态、名称空间的状态。

1.启动普罗米修斯

填写策略、规则。
查看启动的容器和端口号,填入到job_name。
1021 docker prometheus监控体系
查看IP地址:

global:#抓取策略,15秒抓取1次
  scrape_interval:     15s
  evaluation_interval: 15s

alerting:#发送邮箱报警
  alertmanagers:
  - static_configs:
    - targets:
      - localhost:9093

rule_files:
  - rules/*.rules

scrape_configs:#监控应用explore的ip port
  - job_name: 'prometheus'
    static_configs:
    - targets: ['192.168.63.143:9090']
  - job_name: 'node_exporter'
    static_configs:
    - targets: ['192.168.63.143:9100']
  - job_name: 'mysql'
    static_configs:
    - targets: ['192.168.63.143:9104']
docker run --name prometheus -d -p 9090:9090 -v `pwd`/prometheus.yml:/etc/prometheus/prometheus.yml -v `pwd`/rules/:/etc/prometheus/ prom/prometheus --config.file=/etc/prometheus/prometheus.yml

使用浏览器打开127.0.0.1:9090可以访问prometheus,打开target可以查看当前监控的应用
1021 docker prometheus监控体系
1021 docker prometheus监控体系
点击URL可以查看监控数据
1021 docker prometheus监控体系3

如果发现mysql和node连接失败,需要分别启动explore

1.1.启动MYSQLD-EXEPORTER连接数据库,并将端口修改为9104

docker run -d --name mysql-exporter -p 9104:9104 -e DATA_SOURCE_NAME="root:123456.@(192.168.63.143:3306)/mysql" prom/mysqld-exporter

1.2.NODE-EXPORTER

需求:监控Linux各种各样的指标,CPU、内存、磁盘IO。
普罗米修斯官方提供了node exporter,mac下载darwin,直接运行即可。下载好node exporter的包后,运行:

 ./node_exporter

node和mysql都已经连接成功。

1021 docker prometheus监控体系 graph中输入表达式即可,默认是Console模式,点击Graph可以切换到图形模式。 console模式 1021 docker prometheus监控体系Graph模式 1021 docker prometheus监控体系 node_boot_time:系统启动时间 node_cpu:系统CPU使用量 node_disk_*:磁盘IO node_filesystem_*:文件系统用量 node_load1:1分钟系统负载 node_load5 5分钟 node_load15 15分钟 node_memeory_*:内存使用量 node_network_*:网络带宽 node_time:当前系统时间 go_*:node exporter中go相关指标 process_*:node exporter自身进程相关运行指标

3.启用GRAFANA

每次通过输入表达式过于麻烦,使用grafana可以将一些表达式存储起来,直接查看结果
docker run --name grafana -d -p 8000:3000 grafana/grafana
http://127.0.0.1:8000,默认用户名/密码:admin/admin,修改密码即可进入grafana。
1021 docker prometheus监控体系
add data source,填入name,类型为prometheus,填入prometheus容器的地址
1021 docker prometheus监控体系
添加一个panel
1021 docker prometheus监控体系
点击修改
1021 docker prometheus监控体系
general修改名字,metrics填写语句
1021 docker prometheus监控体系
1021 docker prometheus监控体系
返回面板即可
1021 docker prometheus监控体系

4.使用开源共享的模版

开源的共享的mysql监控的模版
添加-import,复制下载的mysql_rev1.json内容
1021 docker prometheus监控体系
1021 docker prometheus监控体系
1021 docker prometheus监控体系
1021 docker prometheus监控体系

普罗米修斯中文教程:https://github.com/yunlzheng/prometheus-book

相关文章: