jmeter plugin监控的信息很少,只有cpu、内存、网络IO,但这些是不够的。例如对于分析mysql数据库的慢查询、最大连接数等更加细密度的信息。
服务端稳定测试的三个前提:
1.应用级别的自动化测试。针对整个系统进行评测,而不是单独某一个模块,自动化用例要覆盖系统业务场景的80%以上。自动化遍历深度不够,不能覆盖80%以上的业务场景。而且自动化遍历是在一个设备上执行的,其并发数量只有1,而稳定性测试要在一定的压力之下进行的。
2.高可用、灾难恢复的部署架构。 K8S做部署。
3.线上级别的监控体系。 在对整个系统做评测,而且是长时间的,运行时间以周为单位。要对系统进行全方位的测试。仅监控机器的物理性能指标是远远不够的,要从白盒、黑盒、从各个方面去监控不同的指标。在测试报告中详细记录,让研发人员和架构师分析系统瓶颈出现在什么地方。
目前最主流的监控体系之一。生态很丰富,有各种各样的插件可以使用。比如监控mysql的性能指标。
K8S团队已经发布了以普罗米修斯进行监控的版本,可以监控所有K8S中的性能指标,如容器的状态、服务的状态、节点的状态、名称空间的状态。
1.启动普罗米修斯
填写策略、规则。
查看启动的容器和端口号,填入到job_name。
查看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可以查看当前监控的应用
点击URL可以查看监控数据
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都已经连接成功。
2.访问和使用prometheus
graph中输入表达式即可,默认是Console模式,点击Graph可以切换到图形模式。
console模式
Graph模式
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。
add data source,填入name,类型为prometheus,填入prometheus容器的地址
添加一个panel
点击修改
general修改名字,metrics填写语句
返回面板即可
4.使用开源共享的模版
开源的共享的mysql监控的模版 添加-import,复制下载的mysql_rev1.json内容
普罗米修斯中文教程:https://github.com/yunlzheng/prometheus-book