Springboot集成Javamelody监控

JavaMelody的目标是监视QA和生产环境中的Java或Java EE应用服务器。它不是模拟用户请求的工具,而是根据用户对应用程序的使用情况来衡量和计算应用程序实际操作的统计信息的工具。JavaMelody主要基于请求统计和演化图。

它允许改进QA和生产中的应用程序,并有助于:
给出关于平均响应时间和执行次数的事实
在趋势不好的时候,在问题变得太严重之前做出决定
基于更有限的响应时间进行优化
找到响应时间的根本原因
验证优化后的实际改进

详细介绍请参考https://github.com/javamelody/javamelody/wiki/UserGuide

方式一、使用javamelody的springboot starter

		<dependency>
			<groupId>net.bull.javamelody</groupId>
			<artifactId>javamelody-spring-boot-starter</artifactId>
			<version>1.85.0</version>
		</dependency>
		<!-- (非必须)将javamelody监控结果导出pdf -->
		<dependency>
			<groupId>com.github.librepdf</groupId>
			<artifactId>openpdf</artifactId>
			<version>1.3.30</version>
		</dependency>

在application.yml文件中配置属性

javamelody:
  # 启用JavaMelody自动配置(可选,默认值:true)
  enabled: true
  # 从监控中排除数据源名称(可选,逗号分隔)
  excluded-datasources: secretSource,topSecretSource
  # 启用Spring服务和控制器的监控(可选,默认:true)
  spring-monitoring-enabled: true
  # 初始化JavaMelody参数(可选)
  # 参见: https://github.com/javamelody/javamelody/wiki/UserGuide#6-optional-parameters
  init-parameters:
    # 记录HTTP请求:
    log: true
    # 从监控中排除图像,css,字体和js url:
    #url-exclude-pattern: (/webjars/.*|/css/.*|/images/.*|/fonts/.*|/js/.*)
    # 聚合HTTP请求中的数字:
    #http-transform-pattern: \d+
    # 添加基本权限:
    authorized-users: admin:123456
    # 更改默认存储目录:
    #storage-directory: /tmp/javamelody
    # 修改默认的"/monitoring"路径:
    monitoring-path: /jpa/monitoring

方式二、使用javamelody原生的包

		<dependency>
			<groupId>net.bull.javamelody</groupId>
			<artifactId>javamelody-core</artifactId>
			<version>1.85.0</version>
		</dependency>
		<!-- (非必须)将javamelody监控结果导出pdf -->
		<dependency>
			<groupId>com.github.librepdf</groupId>
			<artifactId>openpdf</artifactId>
			<version>1.3.30</version>
		</dependency>

编写配置类注入bean

import net.bull.javamelody.MonitoringFilter;
import net.bull.javamelody.SessionListener;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;

import java.util.HashMap;
import java.util.Map;

@Configuration
public class JavaMelodyConfig {
    /**
     * 配置javamelody监控
     * spring boot会按照order值的大小,从小到大的顺序来依次过滤
     */
    @Bean
    @Order(Integer.MAX_VALUE-1)
    public FilterRegistrationBean<MonitoringFilter> monitoringFilter() {
        Map<String, String> initParameters = new HashMap<>();
        //设置账号密码
        initParameters.put("authorized-users", "admin:123456");
        //修改默认路径
        initParameters.put("monitoring-path", "/config/monitoring");
        FilterRegistrationBean<MonitoringFilter>  registration = new FilterRegistrationBean<>();
        registration.setFilter(new MonitoringFilter());
        registration.addUrlPatterns("/*");
        registration.setName("monitoring");
        registration.setInitParameters(initParameters);
        return registration;
    }

    /**
     *  配置javamelody监听器sessionListener
     */
    @Bean
    public ServletListenerRegistrationBean<SessionListener> servletListenerRegistrationBean() {
        ServletListenerRegistrationBean<SessionListener> slrBean = new ServletListenerRegistrationBean<>();
        slrBean.setListener(new SessionListener());
        return slrBean;
    }
}

 以方式二集成的结果为例,启动服务后访问http://localhost:8081/config/monitoring

端口是你当前项目的server.port端口,如果有配置servlet.context-path还需加上配置的路径

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值