天天看點

性能實戰-全鍊路監控篇

在性能測試中為什麼需要監控?我們需要了解程式在運作過程中關于各個服務節點的狀态,而伺服器實體機是有資源制約的,有限制邊界的,不同的軟硬體配置在實際性能測試中造成的影響也不一緻。

性能測試的目的主要有以下三點:

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監控面闆展示

性能實戰-全鍊路監控篇