当前位置: 首页 > news >正文

java系统类的使用体验_javamelody使用体验

最近,做有关服务监控的项目,所以在使用javamelody这个插件;对其做了一个大概了解,记下来,以后有的看..

首先,到google的code下,下载javamelody的zip包,下面有三个jar包:javamelody.jar,jrobin.jar,jira-javamelody.jar

其中:javamelody有监控的主要类,jrobin是一个导出图表的插件,里面机制不了解;另一个包还没用呢;下面还有一个war

包:javamelody.war,这个war包放到tomcat下,启动tomcat就可以访问了,地址为:http:localhost:8080/javamelody;进去可

以添加应用;但是,一般普通的应用添加进去不管用;会报找不到javamelody文件的错;这是你需要将javamelody集成到你的应用

中去;集成的方法是将javamelody.jar和jrobin.jar的包导入到你应用的lib中,然后,在web.xml中配置过滤器就可以了.添加应用就可以了.

下面讲讲javamelody应用和单个应用的关系;javamelody中是有一个核心servlet叫CollectorServlet,处理发送过来的请求,

处理过程中创建一个CollectorController的对象,对象里传入一个ConllectorServer对象(CollectorController collectorController =

new CollectorController(collectorServer));而CollectorServer中封装了采集到的数据,这个collectorServer是在启动tomcat容器

时,实例化servlet的时候在其int方法中创建的,在collectorServer的构造方法中启动了一个定时器,定时器中添加一个

timertask任务,任务中执行collectWithoutErrors()方法收集数据;collectWithoutErrors中通collectForApplication(application,

urls)对每个应用收集数据,这个方法中有一个remoteCollector得类给添加的应用发送请求收集相关数据.最后将收集的数据

交给jrobin报表插件显示.

而对应每个添加的应用添加的jar包中也有一个定时器,在不断的收集应用的数据,而这个定时器是通过添加的核心过滤器

MonitoringFilter的init方法中启动.他的作用就是收集项目spring,EJB,struts,guice等的数据.可以通过http:localhost:8080/项

目路径/monitoring来访问单个项目的监控台.

我的理解是:一端是开启定时器不断的发送请求,另一端是开启定时器不断的收集数据;但是,这个过程中数据不知道使用

缓存还是存储在数据库呢?还有就是相关spring等信息 的MBean是如何写的?先到这,明天再写啦~~

相关文章:

  • 摆花(codevs 1315)
  • java课设要分小组吗_Java团队课程设计-学生成绩管理
  • 惊群 java_(转)测试Lighttpd accept的惊群现象
  • Python——私有化 和 属性property
  • python again_收藏!最全从Python小白到大牛,要走的路这里都有(初级篇)
  • .Net Core缓存组件(MemoryCache)源码解析
  • php 函数变量 前加,php在函数和变量前面加上@和$符号的区别详解
  • 凸函数与简森不等式(Jensen's inequality)
  • php date参数n,总结PHP date()参数列表
  • 小程序自定义函数—数字千位转换
  • tp3.2.3php环境要求,TP3.2.3开发手册
  • 控件模板
  • php 热点,PHP+jQuery实现中国地图热点数据统计展示效果
  • phpspy.php,一款php后门 phpspy的情况
  • Appium 之处理首次启动手机App时的系统权限弹框
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • CSS实用技巧干货
  • laravel with 查询列表限制条数
  • quasar-framework cnodejs社区
  • SOFAMosn配置模型
  • vue中实现单选
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 从重复到重用
  • 排序(1):冒泡排序
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 选择阿里云数据库HBase版十大理由
  • #pragma multi_compile #pragma shader_feature
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (初研) Sentence-embedding fine-tune notebook
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (六)Hibernate的二级缓存
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (正则)提取页面里的img标签
  • (转)大型网站的系统架构
  • ******之网络***——物理***
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET构架之我见
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .net中的Queue和Stack
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [HTML]Web前端开发技术12(HTML5、CSS3、JavaScript )——喵喵画网页
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • [JDBC-1] JDBC Base Template
  • [JS] 常用正则表达式集(一)
  • [JS]JavaScript 注释 输入输出语句
  • [MySQL]日期和时间函数