SpringBoot JMX 实现监控业务数据

一、JMX介绍

1、简介

JMX的全称为Java Management Extensions,是管理Java的一种扩展。这种机制可以方便的管理正在运行中的Java程序。常用于管理线程,内存,日志Level,服务重启,系统环境等。

2、架构图

Jmx架构
Instrumentation层:
该层定义了如何实现JMX管理资源的规范。一个JMX管理资源可以是一个Java应用、一个服务或一个设备,它们可以用Java开发,或者至少能用Java进行包装,并且能被置入JMX框架中,从而成为JMX的一个管理构件(Managed Bean),简称MBean。管理构件可以是标准的,也可以是动态的,标准的管理构件遵从JavaBeans构件的设计模式;动态的管理构件遵从特定的接口,提供了更大的灵活性。
Standard MBean是最简单的MBean,它管理的资源必须定义在接口中,然后MBean必须实现这个接口。

二、创建一个简单的MBean

1、创建JmxHelloWorldBean
package com.ssm.TaskManagementServer.domain.model.JMXBean;
import org.springframework.jmx.export.annotation.ManagedAttribute;
import org.springframework.jmx.export.annotation.ManagedResource;
import org.springframework.stereotype.Component;
/**
 * @author wang_meng
 * 简单JMX样例
 */
@Component
@ManagedResource(
        objectName = "com.xxx.jmx:type=JmxHelloWorldBean",
        description = "简单JMX样例"
)
public class JmxHelloWorldBean {
    private long count;
    public JmxHelloWorldBean() {
        this.count = 0;
    }
    public void add() {
        this.count++;
    }
    /**
     * 暴露属性
     */
    @ManagedAttribute(description = "count")
    public long getCount() {
        return count;
    }
}

2、写一个测试函数

@Autowired
private JmxHelloWorldBean jmxHelloWorldBean;
@RequestMapping(value = "/testAddJmxHelloWorldBeam",method = RequestMethod.POST)
public void testAddJmxHelloWorldBeam(){
    this.jmxHelloWorldBean.add();
}

三、检测效果

1、打开JConsole

使用Win+R,打开运行,执行cmd命令,打开cmd命令窗口,输入JConsole。打开如下窗口。
JConsole窗口

选择刚在本地启动的进程,执行连接。(若安全连接失败可使用非安全连接)
连接成功后如下图
JConsole连接成功图
点击MBean栏目,在左侧展开中选择com.xxx.jmx(前文中设置的),即可看到该Bean的属性值。
查看JmxHelloWorldBean

2、使用Postman调用该接口,并刷新JConsole。

实现JMXBean计数
到此,以实现了监控计数的功能。

四、后续

实现了JMX监控之后,可使用jmx-exporter来获取JMX监控数据。
再通过jmx-exporter+Prometheus+Grafana来实现面板监控。得到下图所示效果。
Grafana监控效果示意图
可参考该文章
https://blog.csdn.net/qq_36109069/article/details/104746297

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值