Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/onblog/javamonitor
Java应用性能远程监控系统(使用C/S架构)适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控,提供堆快照下载,线程快照下载(欢迎Star,🚫禁止Fork)
https://github.com/onblog/javamonitor
echarts java8
Last synced: 6 days ago
JSON representation
Java应用性能远程监控系统(使用C/S架构)适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控,提供堆快照下载,线程快照下载(欢迎Star,🚫禁止Fork)
- Host: GitHub
- URL: https://github.com/onblog/javamonitor
- Owner: onblog
- License: apache-2.0
- Created: 2018-11-14T10:51:42.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-03T17:41:31.000Z (3 months ago)
- Last Synced: 2024-12-28T05:06:57.408Z (6 days ago)
- Topics: echarts, java8
- Language: Java
- Homepage:
- Size: 66.6 MB
- Stars: 516
- Watchers: 29
- Forks: 191
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Java应用性能远程监控系统
适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控,提供堆快照下载,线程快照下载。
**若使用本项目二次开发请遵守Apache开源协议,并在项目主页做上述文字说明且附上本页Github地址**
## 一、简介
JavaMonitor 发布之后,受到了很多网友的好评,QQ群也有很多人加入反馈建议。但 JavaMonitor 的局限性也有很多,比如,无法进行远程监控,无法监控多个服务器,占用内存太大等等。为了解决上述问题,基于 JavaMonitor-0.0.7 开发而成的 JavaMonitoPlus 诞生了!JavaMonitoPlus 不仅解决了上述三个问题,而且增加了安全认证,优化了缓存,使页面访问更加流畅!
## 二、环境
要求JDK8及以上,必须有Java环境变量,且Java环境变量不冲突!
## 三、使用
克隆本项目,在需要监控的主机上运行 client 项目下的 main 方法即可,默认8081端口,可以追加参数`--server.port=9999`更改。
然后,在作为监控中心的主机上运行 server 项目下的 main 方法,默认8888端口,到这里是不会成功的,因为运行之前还需要在该jar包目录下,新建application.properties配置文件并配置监控的主机列表,详细介绍接下来会说到。
## 四、主机
配置监控的主机非常简单,只需要在jar包所在目录下新建application.properties文件,配置以下字段即可。
```properties
monitor.serve[0].name=serve-1
monitor.serve[0].address=http://127.0.0.1:8081
monitor.serve[1].name=serve-1
monitor.serve[1].address=http://127.0.0.1:8082
```注意:一定要写明HTTP协议!name值若不写,默认就是主机地址。
## 五、监控
默认监控频率为60秒,并且只记录当天产生的监控数据。
如果需要自定义监控频率与监控时长,只需要在jar包所在目录下新建application.properties文件,修改下列字段即可
```
monitor.rate=60 #监控频率/秒
monitor.cron=0 0 0 * * ? #每日的0:00:00时刻清空数据
```连续监控1个月,示例
```
monitor.cron=0 0 0 1 * ?
```连续监控1年,示例
```
monitor.cron=0 0 0 1 1 ? *
```## 六、安全
默认是不开启安全认证的,若要开启请在application.properties文件中添加
```properties
monitor.open=true
```默认用户名/密码为admin,修改方法为
```properties
monitor.username=admin
monitor.password=admin
```## 七、MySQL
内嵌H2数据库,有诸多限制,不过JMP提供MySQL数据库的支持。
使用方法很简单,新建application.properties文本文件放在jar包目录下,修改下列参数即可,这样数据库就更换为了MySQL。
```properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
spring.jpa.hibernate.ddl-auto=update
```## 八、监控参数
- S0C:s0(from)的大小
- S1C:s1(from)的大小
- S0U:s0(from)已使用的空间
- S1U:s1(from)已经使用的空间
- EC:eden区的大小
- EU:eden区已经使用的空间
- OC:老年代大小
- OU:老年代已经使用的空间
- MC:元空间的大小(Metaspace)
- MU:元空间已使用大小
- CCSC:压缩类空间大小(compressed class space)
- CCSU:压缩类空间已使用大小
- YGC:新生代gc次数
- YGCT:新生代gc耗时
- FGC:Full gc次数
- FGCT:Full gc耗时
- GCT:gc总耗时
- Loaded:表示载入了类的数量
- Unloaded:表示卸载类的数量
- Compiled:表示编译任务执行的次数
- Failed:表示编译失败的次数
- Total:线程总数
- Runnable:正在运行的线程数
- Sleeping:休眠的线程数
- Waiting:等待的线程数**JavaMonitorPlus监控架构图**
![图片加载中](./JavaMonitor/picture/20190317192605.png)