MyPerf4J3.0+influxdb1.7+grafana实现系统监控
MyPerf4J3.0+influxdb1.7+grafana实现系统监控
使用MyPerf4J3.0 实现代码无侵入监控,实现原理是使用asm修改字节码的方式来做
数据库 influxdb1.7 go语言实现的 时序数据库 这里用来保存系统日志和指标
数据可视化面板grafana nodejs
准备程序包
下载influxdb-1.7.11.x86_64.rpm rpm包 influxdb目前最新版本是2.0.6 在使用方式上好像有区别(这个数据库还不是很了解),最好是1.7般的 MyPerf4J3.0 配置里使用的连接是1.7的
下载grafana 程序
修改MyPerf4j.properties
解压 MyPerf4J-ASM.zip 修改MyPerf4j.properties配置 参考
MyPerf4j的使用方式
1
java -javaagent:/path/to/MyPerf4J-ASM.jar -DMyPerf4JPropFile=/path/to/MyPerf4J.properties -jar yourApp.jar
这里我使用的 是MyPerf4j直接写入influxdb数据库,我的配置如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51# MyPerf4J 所有配置请参考:https://github.com/LinShunKang/MyPerf4J/wiki/%E9%85%8D%E7%BD%AE
# 配置监控应用的名称
app_name = kb-data-rest
debug = true
###############################################################################
# Metrics Configuration #
###############################################################################
# 配置 MetricsExporter 类型
# log.stdout: 以标准格式化结构输出到 stdout.log
# http.influxdb: 以 InfluxDB LineProtocol 格式发送至 InfluxDB server,需要另行增加 influxdb 的配置
metrics.exporter = http.influxdb
# 配置各项监控指标日志的文件路径
# 如果 metrics.exporter 配置为 log.influxdb,建议把所有的 metrics.log.* 路径配置成一样以方便 Telegraf 收集
metrics.log.method = /var/log/MyPerf4J/metrics.log
metrics.log.class_loading = /var/log/MyPerf4J/metrics.log
metrics.log.gc = /var/log/MyPerf4J/metrics.log
metrics.log.memory = /var/log/MyPerf4J/metrics.log
metrics.log.buff_pool = /var/log/MyPerf4J/metrics.log
metrics.log.thread = /var/log/MyPerf4J/metrics.log
metrics.log.file_desc = /var/log/MyPerf4J/metrics.log
metrics.log.compilation = /var/log/MyPerf4J/metrics.log
###############################################################################
# Filter Configuration #
###############################################################################
# 配置需要监控的package,可配置多个,用英文';'分隔
# com.demo.p1 代表包含以 com.demo.p1 为前缀的所有包和类
# [] 表示集合的概念:例如,com.demo.[p1,p2,p3] 代表包含以 com.demo.p1、com.demo.p2 和 com.demo.p3 为前缀的所
有包和类,等价于 com.demo.p1;com.demo.p2;com.demo.p3
# * 表示通配符:可以指代零个或多个字符,例如,com.*.demo.*
filter.packages.include = com.trs.kb.*;
# 配置不需要监控的package,可配置多个,用英文';'分隔
filter.packages.exclude = cn.perf4j.demo.dao.DemoDAOImpl
influxdb.host=ky48
influxdb.port=8086
influxdb.database=influxdb
influxdb.username=influx
influxdb.password=influxdb
influxdb.conn_timeout=3000
influxdb.read_timeout=5000
安装influxdb数据库
- 安装 influxdb-1.7.11.x86_64.rpm 运行 命令:
1 | rpm -i influxdb-1.7.11.x86_64.rpm |
- 检查安装是否成功 运行命令:
1 | influx |
会出现以下结果:
1 | Connected to http://localhost:8086 version 1.7.11 |
- 输入auth 创建用户和密码
grafana 安装
- https://grafana.com/grafana/download 请按照这个说明安装就可以了
- 安装完成后 通过游览器 http://ip:3000 即可验证安装成功
配置grafana 连接influxdb
- 选择influxdb数据源
配置influxdb的地址和用户密码 并保存
创建监控面板
这里创建 jvm启动线程的面板
选择指标
选择线程状态
保存应用,这样就可以了按照自己的需求去定义 自己的监控面板。
自己用于测试的例子
到此引用监控流程配置完成!