Perfree

Perfree

Perfree

岁岁安宁

54 文章数
73 评论数

使用javamelody监控web程序

perfree
2019-04-02 / 0 评论 / 2669 阅读 / 1 点赞

JavaMelody是用来在QA和实际运行生产环境中监控Java或Java EE应用程序服务器的一个开源框架。它可以测量和计算用户在实际操作中应用程序的使用情况,并以图表的形式显示,图表可以按天,周,月,年或自定义时间段查看,并且可以进行session的管理,强制清除session等操作

JavaMelody基础的监控包括Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。如果要监控Jenkins,JIRA,Sonar等等一些,需要另外安装对应的插件,还有一些高级文档用于高级配置。

相关链接

  1. 官方文档https://github.com/javamelody/javamelody/wiki/UserGuide
  2. 下载地址https://github.com/javamelody/javamelody/releases
  3. maven仓库地址https://mvnrepository.com/artifact/net.bull.javamelody/javamelody-core
  4. SpringBoot版本https://mvnrepository.com/artifact/net.bull.javamelody/javamelody-spring-boot-starter/1.76.0

引入依赖

这里使用的框架为jfinal

<dependency>
    <groupId>net.bull.javamelody</groupId>
    <artifactId>javamelody-core</artifactId>
    <version>1.76.0</version>
</dependency>

如果你是SpringBoot项目,则引入以下依赖

<dependency>
    <groupId>net.bull.javamelody</groupId>
    <artifactId>javamelody-spring-boot-starter</artifactId>
    <version>1.76.0</version>
</dependency>

配置web.xml

如果应用服务器兼容Servlet API 3.0比如tomcat 7, glassfish v3或者 jboss 6,一般可以跳过这一步,除非你用了一个没有version="3.0"的web.xml。不然就如下操作:在程序的WEB-INF/web.xml里面,在servlet之前添加如下行,其中注意 true ASYNC 是需要在Servlet API 3.0里用来支持异步请求的。

<filter>
        <filter-name>javamelody</filter-name>
        <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
        <async-supported>true</async-supported>
</filter>
<filter-mapping>
        <filter-name>javamelody</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>ASYNC</dispatcher>
</filter-mapping>
<listener>
        <listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>

如果你是SpringBoot项目,请参照以下配置:

#javamelody 监控
javamelody:
  init-parameters:
    # log http requests
    log: true

启动项目

上述步骤操作完毕,即可启动项目进行访问: http://ip地址+端口号/monitoring,界面如下

文章不错,扫码支持一下吧~
上一篇 下一篇
评论
来首音乐
最新回复
光阴似箭
今日已经过去小时
这周已经过去
本月已经过去
今年已经过去个月