Springboot添加jvm监控实现数据可视化

Spring Boot提供了一个Actuator模块,可以用来实现JVM监控并将监控数据可视化展示。下面是实现的完整攻略:

1. 添加JVM监控依赖

在项目的pom.xml文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
 </dependency>

2. 配置监控端点

打开application.properties文件,添加以下配置:

management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*

配置含义:

  • management.endpoint.health.show-details=always:显示健康检查的详细信息。
  • management.endpoints.web.exposure.include=*:将所有的端点都暴露出来。

3. 启动应用程序

启动应用程序后,在浏览器中输入http://localhost:8080/actuator可以看到所有的可用端点。其中包括/jvm、/health、/metrics等。

例如,要查看JVM信息,可以在浏览器中输入http://localhost:8080/actuator/jvm,会看到以下JSON格式的信息:

{
    "name": "jvm",
    "measurements": [
        {
            "statistic": "uptime",
            "value": 2349614
        },
        {
            "statistic": "systemload.average",
            "value": 0.2
        },
        {
            "statistic": "processors",
            "value": 4
        },
        {
            "statistic": "heap.usage",
            "value": 0.31407905295110347
        },
        {
            "statistic": "heap.committed",
            "value": 263192576
        },
        {
            "statistic": "heap.init",
            "value": 268435456
        },
        {
            "statistic": "heap.max",
            "value": 3817865216
        },
        ...
    ],
    "availableTags": [
        {
            "tag": "buffer_pool",
            "values": [
                "direct",
                "mapped"
            ]
        },
        {
            "tag": "gc",
            "values": [
                "G1 Old Generation",
                "G1 Young Generation",
                "PS MarkSweep",
                "PS Scavenge"
            ]
        },
        {
            "tag": "memory.pool",
            "values": [
                "Code Cache",
                "Compressed Class Space",
                "G1 Eden Space",
                "G1 Old Gen",
                "G1 Survivor Space",
                "Metaspace",
                "PS Eden Space",
                "PS Old Gen",
                "PS Survivor Space"
            ]
        },
        {
            "tag": "memory.type",
            "values": [
                "Heap",
                "Non Heap"
            ]
        }
    ]
}

示例1 - 监控JVM内存

我们可以使用JConsole来查看应用程序的内存使用情况。启动应用程序,并打开JConsole,选择“localhost:8080”进程,进入“MBeans”标签,展开“java.lang”节点,我们就可以看到与内存有关的监控项。

示例2 - 监控JVM垃圾回收

在控制台中启动应用程序的时候,可以添加如下命令行参数,来开启垃圾回收监控:

java -Xloggc:/tmp/gc.log -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -jar my-application.jar

启动应用程序后,会生成一个gc.log文件。我们可以使用GC日志分析工具分析日志文件,来查看垃圾回收的情况。

以上就是Spring Boot添加JVM监控实现数据可视化的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot添加jvm监控实现数据可视化 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java对称加密算法DES实例详解

    Java对称加密算法DES实例详解 什么是对称加密算法 对称加密算法:使用相同的密钥进行加密和解密。对称加密算法的加密速度快,但密钥的管理和分配比较困难。 什么是DES加密算法 DES(Data Encryption Standard)是一种数据加密的标准,它是一种对称加密算法,使用密钥对数据进行加密和解密。DES算法已广泛应用于各种安全领域,如金融、电子政…

    Java 2023年5月19日
    00
  • java如何获取两个日期的时间差

    获取两个日期的时间差,可以使用Java中的时间处理类,例如java.util.Date和java.time.LocalDateTime类。下面分别介绍这两种方式的具体实现方法: 使用java.util.Date类实现时间差: 代码示例: import java.text.SimpleDateFormat; import java.util.Date; pub…

    Java 2023年5月20日
    00
  • 鼠标焦点离开文本框时验证的js代码

    当用户在网页中填写表单时,我们常常需要验证用户输入的数据是否合法。而当用户在输入框输入完内容后,离开这个输入框,我们需要验证这个输入框中的内容是否符合我们的要求,这时候我们就需要使用JavaScript代码来验证用户的输入。以下是实现鼠标焦点离开文本框时验证的js代码的完整攻略。 1. 绑定事件 我们需要先为输入框绑定一个事件,当输入框失去焦点时触发这个事件…

    Java 2023年6月15日
    00
  • springBoot项目常用目录解读

    下面是对“springBoot项目常用目录解读”的详细讲解: 1. 项目结构概述 在理解Spring Boot项目的目录结构之前,需要首先理解Spring Boot的项目结构。Spring Boot的项目结构与标准的Maven或Gradle项目结构类似,区别在于一个主要目录——src/main,这个目录中分别包含了几个子目录,如下: src/main/jav…

    Java 2023年5月19日
    00
  • c#深拷贝文件夹示例

    当我们需要复制文件夹时,常见的方法是使用递归方式逐一复制文件夹下的所有文件和子文件夹。但是,这种简单的复制方式只是浅拷贝,也就是说,它只是复制了指向文件和文件夹的引用,并没有复制实际的数据。也就是说,如果原始文件夹中的文件被更改或删除,那么复制后的文件夹也会受到影响。这时,我们需要使用深拷贝的方式,即真正地复制文件和文件夹的数据,使得复制后的文件夹与原始文件…

    Java 2023年5月19日
    00
  • 消息推送平台终于要发布啦!

    我的开源项目消息推送平台Austin终于要上线了,迎来在线演示的第一版! ?项目在线演示地址:http://139.9.73.20:3000/ 消息推送平台?推送下发【邮件】【短信】【微信服务号】【微信小程序】【企业微信】【钉钉】等消息类型。 https://gitee.com/zhongfucheng/austin/ https://github.com/…

    Java 2023年5月4日
    00
  • JVM中四种GC算法案例详解

    详细讲解JVM中四种GC算法案例详解 首先需要介绍的是JVM的垃圾回收机制,JVM中的垃圾回收是基于GC算法实现的,GC算法按照实现机制可以分为如下四种: 标记-清除算法(Mark-Sweep Algorithm) 复制算法(Copying Algorithm) 标记-整理算法(Mark-Compact Algorithm) 分代回收算法(Generatio…

    Java 2023年5月19日
    00
  • Java下Struts框架中的ActionForm类详解

    Java下Struts框架中的ActionForm类是用于从客户端浏览器向服务器端传递数据的载体。这个类作为中介,把客户端提交的数据(如表单数据)封装为一个JavaBean对象,然后该Bean就可以在服务器端通过Struts框架进行处理。 下面是ActionForm的使用步骤: 1. 定义ActionForm类 ActionForm类需要继承org.apac…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部