天天看点

性能实战-全链路监控篇

在性能测试中为什么需要监控?我们需要了解程序在运行过程中关于各个服务节点的状态,而服务器物理机是有资源制约的,有限制边界的,不同的软硬件配置在实际性能测试中造成的影响也不一致。

性能测试的目的主要有以下三点:

1.评价系统当前性能,判断系统是否满足预期的性能需求。例如上线性能要求。

2.判定系统的性能表现,预判系统负载压力承受力,知道系统的极限。

3.寻找系统可能存在的性能问题,定位性能瓶颈并解决问题。

针对以上性能测试的目的,就必须首先执行性能测试并明确需要收集、监控哪些关键指标;通常情况下,性能测试监控指标主要分为:资源指标和系统指标,如下图所示,资源指标与硬件资源消耗直接相关,而系统指标则与用户场景及需求直接相关。

性能实战-全链路监控篇

首先来了解下本次用到了哪些工具

压测工具i:Jmeter

数据库:mysql

监控工具:netdata

可视化分析:grafana

储存时序数据:influxDB

以及一些已经部署好的前端后台服务

现在开始配置监控工具

一.配置jmeter监听器(与influxdb进行关联)

性能实战-全链路监控篇
性能实战-全链路监控篇

二.运行jmeter查看influxdb数据(在进行压测时,监听器会通过配置的influxdb地址进行被测接口的数据传输)

进入容器:docker exec -it influxdb /bin/sh

进入influx:influx

查看数据库:show databases

使用jmeter:use jmeter

查看jmeter库清单:show measurements

查看并发数据:select * from "jmeter"

三.grafana添加influxdb的jmeter数据

性能实战-全链路监控篇
性能实战-全链路监控篇
性能实战-全链路监控篇
性能实战-全链路监控篇

四.grafana添加jmeter面板

我这边用的是4026,https://grafana.com/grafana/dashboards/4026

性能实战-全链路监控篇
性能实战-全链路监控篇
性能实战-全链路监控篇

import后生成面板

五.grafana监控面板展示

性能实战-全链路监控篇