Java应用性能远程监控系统(使用C/S架构)

适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控,提供堆快照下载,线程快照下载。体验网址:http://116.85.23.6:8888/

一、简介

JavaMonitor 发布之后,受到了很多网友的好评,QQ群也有很多人加入反馈建议,身为作者,甚为骄傲。但 JavaMonitor 的局限性也有很多,比如,无法进行远程监控,无法监控多个服务器,占用内存太大等等。为了解决上述问题,基于 JavaMonitor-0.0.7 开发而成的 JavaMonitoPlus 诞生了!JavaMonitoPlus 不仅解决了上述三个问题,而且增加了安全认证,优化了缓存,使页面访问更加流畅!

二、环境

要求JDK8及以上,必须有Java环境变量,且Java环境变量不冲突!

三、使用

首先,在releases下载发行版压缩包,解压。

在需要监控的主机上运行 client.jar 包即可,默认8081端口,可以追加参数--server.port=9999更改。

然后,在作为监控中心的主机上运行 server.jar 包,默认8888端口,到这里是不会成功的,因为还需要在该jar包目录下,新建配置文件并配置监控的主机列表,详细介绍接下来会说到。

四、主机

配置监控的主机非常简单,只需要在jar包所在目录下新建application.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 ? *

六、安全

JMP 默认是不开启安全认证的,若要开启请在application.properties文件中添加

monitor.open=true

默认用户名/密码为admin,修改方法为

monitor.username=admin
monitor.password=admin

七、MySQL

JMP内嵌H2数据库,有诸多限制,不过JMP提供MySQL数据库的支持。

使用方法很简单,新建application.properties文本文件放在jar包目录下,修改下列参数即可,这样数据库就更换为了MySQL。

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:等待的线程数

九、关于作者

博客:https://www.yueshutong.cn/

Github:https://github.com/yueshutong/JavaMonitor

Gitee:https://gitee.com/zyzpp/JavaMonitor

开源中国:https://www.oschina.net/p/javamonitor

邮箱:yster@foxmail.com

QQ群:781927207

JM项目遇到的小坑

Thymeleaf

在HTML页面取值时不要使用getter方法,直接.value即可。

反例:map.getValue()

正例:map.value

FastJson

将json字符串转为 Map<String, MyObject> 类型的对象

正例:JSON.parseObject(json, Map.class)

将json字符串转为 List<MyObject> 类型的对象

正例:JSON.parseArray(json, MyObject.class)

注意!MyObject.class 一定有无参构造方法!

[原创]Java应用性能远程监控系统(C/S架构)的更多相关文章

  1. 基于邮件系统的远程实时监控系统的实现 Python版

    人生苦短,我用Python~ 界内的Python宣传标语,对Python而言,这是种标榜,实际上,Python确实是当下最好用的开发语言之一. 在相继学习了C++/C#/Java之后,接触Python ...

  2. 远程监控 – 应用程序运行状况测量 CSF 博客

    在远程监控基础知识和故障排除中,我们探讨了 Windows Azure 平台提供的基础指标.信息源.工具和脚本,介绍了有关监控和应用程序运行状况的基本原则.我们演示了如何利用这些基本原则对在 Wind ...

  3. 开源监控系统Prometheus介绍

    前言 Prometheus是CNCF的一个开源项目,Google BorgMon监控系统的开源版本,是一个系统和服务的监控系统.周期性采集metrics指标,匹配规则和展示结果,以及触发某些条件的告警 ...

  4. c# 远程监控(1) 大纲

    此篇文章主要讲了如何使用C# Winform程序模拟一个远程监控系统,并使用RTP实时传输协议传输数据. 应用场景:远程监控.局域网视频会议.客户端流式缓冲播放 这方面的资料还是有一些,但是都需要整合 ...

  5. 基于 HTML5 WebGL 的 3D 棉花加工监控系统

    前言 现在的棉花加工行业还停留在传统的反应式维护模式当中,当棉花加下厂的设备突然出现故障时,控制程序需要更换.这种情况下,首先需要客户向设备生产厂家请求派出技术人员进行维护,然后生产厂家才能根据情况再 ...

  6. 如何借助Monit搭建服务器监控系统?(1)

    许多Linux管理员依赖一种集中式远程监控系统(比如Nagios或Cacti),检查网络基础设施的健康状况.虽然集中式监控系统为管理员在处理许多主机和设备时简化了工作,但专用的监控设备显然成了单一故障 ...

  7. 打造云原生大型分布式监控系统系列文章-腾讯工程师roc

    附上本系列文章链接 打造云原生大型分布式监控系统(一): 大规模场景下 Prometheus 的优化手段 打造云原生大型分布式监控系统(二): Thanos 架构详解 打造云原生大型分布式监控系统(二 ...

  8. [原创]Java性能优化权威指南读书思维导图

    [原创]Java性能优化权威指南读书思维导图 书名:Java性能优化权威指南 原书名:Java performance 作者: (美)Charlie Hunt    Binu John 译者: 柳飞 ...

  9. 干货 | 云智慧透视宝Java代码性能监控实现原理

    这篇图文并茂,高端大气上档次,思维缜密的文章,一看就和我平时的风格不同.对了.这不是我写的,是我家高大英俊,写一手好代码,做一手好菜的男神老公的大作,曾发表于技术公号,经本人授权转载~~ 一.Java ...

随机推荐

  1. 一篇读懂HTTPS:加密原理、安全逻辑、数字证书等

    1.引言 HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.本文,就来深入介绍下其 ...

  2. [Abp vNext 源码分析] - 文章目录

    一.简要介绍 ABP vNext 是 ABP 框架作者所发起的新项目,截止目前 (2019 年 2 月 18 日) 已经拥有 1400 多个 Star,最新版本号为 v 0.16.0 ,但还属于预览版 ...

  3. 又拍云张聪:OpenResty 动态流控的几种姿势

    2019 年 1 月 12 日,由又拍云.OpenResty 中国社区主办的 OpenResty × Open Talk 全国巡回沙龙·深圳站圆满结束,又拍云首席架构师张聪在活动上做了< Ope ...

  4. 前端笔记之移动端&响应式(下)默认样式&事件&惯性抛掷&swiper&loaction对象

    一.移动端默认样式 ·IOS和Android下触摸元素时出现半透明灰色遮罩 a,input,button{ -webkit-tap-highlight-color: transparent; } ·I ...

  5. 痞子衡嵌入式:开启NXP-MCUBootUtility工具的HAB加密功能 - CST(中英双语)

    1 Reason for enabling HAB encryption function 为什么要开启HAB加密功能 NXP-MCUBootUtility is a tool designed fo ...

  6. 浅谈mybatis如何半自动化解耦

    在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis. 通过研究mybatis源码,可将mybatis的大 ...

  7. Webpack系列-第三篇流程杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 本文章个人理解, 只是为了理清webpack流程, 没有关注内部过多细节 ...

  8. 分享基于 websocket 网页端聊天室

    博客地址:https://ainyi.com/67 有一个月没有写博客了,也是因为年前需求多.回家过春节的原因,现在返回北京的第二天,想想,应该也要分享技术专题的博客了!! 主题 基于 websock ...

  9. DSAPI 网卡流量监控

    这是一个非常有意思的趣味小功能,统计每个网卡的流量信息. Dim 网卡() As DSAPI.网络.网卡信息 = DSAPI.网络.获取本机所有网卡信息 While True Console.Clea ...

  10. DS控件库 DSLed控件呈现滚动字幕效果

    滚动字幕效果在DSled上可以使用偏移来实现,代码如下 运行效果