一、下载安装Influxdb
- Influxdb是一个开源分布式时序、时间和指标数据库,使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展,是 InfluxData 的核心产品。
- 应用:性能监控,应用程序指标,物联网传感器数据和实时分析等的后端存储。
- Influxdb 完整的上下游产业还包括:Chronograf、Telegraf、Kapacitor,其具体作用及关系如下:
1, 到https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.6-windows-amd64.zip下载influxdb2-2.0.6-windows-amd64.zip。
2, 将下载下来的zip文件存储在本地一个非中文目录下(我下载在influxdb-1.7.3-1下)。
3, 进入安装目录,用文本编辑器打开influxdb.conf。
4, 按如下红字部分进行编辑
… [meta] # Where the metadata/raft database is stored # dir = "/var/lib/influxdb/meta" dir = "C:\\influxdb\\meta" #我设为C:\\influxdb,数据库文件将产生在C:\\influxdb目录下。 # Automatically create a default retention policy when creating a database. retention-autocreate = true # If log messages are printed for the meta service logging-enabled = true … [data] # The directory where the TSM storage engine stores TSM files. dir = "C:\\influxdb\\meta" # The directory where the TSM storage engine stores WAL files. wal-dir = "C:\\influxdb\\wal" … [retention] # Determines whether retention policy enforcement enabled. enabled = true # The interval of time when retention policy enforcement checks run. check-interval = "30m" … [shard-precreation] # Determines whether shard pre-creation service is enabled. enabled = true # The interval of time when the check to pre-create new shards runs. check-interval = "10m" # The default period ahead of the endtime of a shard group that its successor # group is created. advance-period = "30m" … [monitor] # Whether to record statistics internally. store-enabled = true # The destination database for recorded statistics store-database = "_internal" # The interval at which to record statistics store-interval = "10s" …
5,用influxd -config influxdb.conf运行
influxd -config influxdb.conf C:\influxdb-1.7.3-1>influxd -config influxdb.conf 8888888 .d888 888 8888888b. 888888b. 888 d88P" 888 888 "Y88b 888 "88b 888 888 888 888 888 888 .88P 888 88888b. 888888 888 888 888 888 888 888 888 8888888K. 888 888 "88b 888 888 888 888 Y8bd8P' 888 888 888 "Y88b 888 888 888 888 888 888 888 X88K 888 888 888 888 888 888 888 888 888 Y88b 888 .d8""8b. 888 .d88P 888 d88P 8888888 888 888 888 888 "Y88888 888 888 8888888P" 8888888P" … 2021-06-04T09:46:34.406806Z info Starting retention policy enforcement service {"log_id": "0UXbWmRG000", "service": "retention", "check_interval": "30m"} 2021-06-04T09:46:34.408611Z info Listening for signals {"log_id": "0UXbWmRG000"} 2021-06-04T09:46:34.408611Z info Sending usage statistics to usage.influxdata.com {"log_id": "0UXbWmRG000"}
如果出现Sending usage statistics to usage.influxdata.com,表示Influxdb启动成功。
二、配置Influxdb
- 用InfluxDB Studio配置
InfluxDB Studio是InfluxDB的图形化配置界面。
1,通过以下连接获得InfluxDB Studio
链接:https://pan.baidu.com/s/1CRJXtmj_W5bIEJjkP0mR5g
提取码:ok87
2,解压后直接运行InfluxDBStudio.exe
3,点击如下图标:
4,输入任意的连接名,地址(默认为localhost),端口(默认为8086),用户名和密码。点击【Test】,显示测试成功,点击【Save】,保存关闭。
5,左边树状结构如下。_internal为默认数据库
6,按下面顺序依次建立jmeter数据库
- 用命令行配置
1,在命令行,运行Influxdb,进入Influxdb命令行
Connected to http://localhost:8086 version 1.7.3 InfluxDB shell version: 1.7.3 Enter an InfluxQL query >
2,依次键入如下命令
>CREATE USER admin WITH PASSWORD 'admin' WITH ALL PRIVILEGES >auth admin admin >CREATE DATABASE jmeter >show databases use jmeter >show measurements
执行最后一个命令,命令行界面显示为空,当前还没有数据。
三、下载安装Grafana
Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能。目前使用Grafana的公司有很多,如paypal、ebay、intel等。它包括以下七大特点:
- 可视化:快速和灵活的客户端图形具有多种选项。面板插件为许多不同的方式可视化指标和日志。
- 报警:可视化地为最重要的指标定义警报规则。Grafana将持续评估它们,并发送通知。
- 通知:警报更改状态时,它会发出通知。接收电子邮件通知。
- 动态仪表盘:使用模板变量创建动态和可重用的仪表板,这些模板变量作为下拉菜单出现在仪表板顶部。
- 混合数据源:在同一个图中混合不同的数据源!可以根据每个查询指定数据源。这甚至适用于自定义数据源。
- 注释:注释来自不同数据源图表。将鼠标悬停在事件上可以显示完整的事件元数据和标记。
- 过滤器:过滤器允许您动态创建新的键/值过滤器,这些过滤器将自动应用于使用该数据源的所有查询。
1,到https://grafana.com/grafana/download?platform=windows下载Grafana的Windows版本。(建议下载zip 文件)
2,运行C:\grafana-7.5.7\bin 中的grafana-server.exe。
3,访问http://localhost:3000,使用admin/admin登录本机Grafana,新建influxdb数据源
4, 建立数据源,选择InfluxDB。
5, 在HTTP字段选择http://localhost:8086,
6, Database输入jmeter,user/password,为用InfluxDB Studio配置第4步,或者用命令行配置 auth后建立的用户名和密码。
7,按如下步骤建立,注意中间填写4026。
8,在JMeter中添加后端监听器,进行如下图配置
9,即可在Grafana实时数据展示
四、jmeter常见性能指标
最后介绍几个jmeter常见性能指标
线程数/用户相关指标
- test.minAT-Min active threads:最小活跃线程数
- test.maxAT-Max active threads:最大活跃线程数
- test.meanAT-Mean active threads:活跃线程数
- test.startedT-Started threads:启动线程数
- test.endedT-Finished threads:结束线程数
响应时间指标
- jmeter.ok.count:采样器的成功响应数
- jmeter.h.count:每秒点击数
- jmeter.ok.min:采样器成功最短响应时间
- jmeter.ok.max:采样器成功最长响应时间
- jmeter.ok.avg:采样器成功平均响应时间
- jmeter.ok.pct:采样器成功响应百分比
- jmeter.ko.count:采样器失败响应数
- jmeter.ko.min:采样器失败的响应最短时间
- jmeter.ko.max:采样称失败最长响应时间
- jmeter.ko.avg:采样器失败平均响应时间
- jmeter.ko.pct:采样器失败响应百分比
- jmeter.a.count:采样器响应数(ok.count和ko.count的总和)
- jmeter.a.min:采样器最小响应时间(ok.count和ko.count的最小值)
- jmeter.a.max:采样器最大响应时间(ok.count和ko.count的最大值)
- jmeter.a.avg:采样器平均响应时间(ok.count和ko.count的平均值)
jmeter.a.pct:采样器响应百分比(根据和失败样本的总数计算)