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中对象的向上转型和向下转型

    什么是多态? 同一个类调用同一个方法会产生不同的影响/结果 这就是多态 public class Pet{ public void eat(){ System.out.println(“Pet eat…”) } } class Dog extends Pet{ public void eat(){ System.out.pringln(“Dog eat.…

    Java 2023年4月22日
    00
  • Java axios与spring前后端分离传参规范总结

    Java axios是一个基于Promise的HTTP客户端,可用于浏览器和node.js中。它的特点是易于使用和读取。以Spring前后端分离的场景中传参规范总结如下: API设计规范 RESTful 风格 API接口应该符合Restful风格,即资源(Resource)的URI应该有明确的含义,HTTP请求方法(GET, POST, PUT, DELET…

    Java 2023年5月20日
    00
  • 老生常谈Java反射机制(必看篇)

    老生常谈Java反射机制(必看篇) 什么是Java反射机制? Java反射机制是Java提供的一种能够在运行时获取对象的信息以及修改对象的内容的方法。通过反射机制,程序可以获取任意一个类的内部信息,并且可以操作类、构造器、方法、成员变量等。 反射机制的应用场景 通过配置文件来读取实例化的对象 对框架类进行扩展 调试时查看对象的属性信息 反射机制的基本用法 获…

    Java 2023年5月26日
    00
  • 使用maven实现有关Jsoup简单爬虫的步骤

    下面是使用maven实现有关Jsoup简单爬虫的步骤的完整攻略。 1. 添加依赖 首先,在你的maven项目中,需要添加Jsoup的依赖。在pom.xml文件中,加入以下代码: <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</art…

    Java 2023年6月15日
    00
  • MyBatis5中Spring集成MyBatis事物管理

    下面是关于MyBatis5中Spring集成MyBatis事物管理的完整攻略: 1、引入依赖 首先需要在pom.xml文件中引入MyBatis和Spring的依赖,具体如下: <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</…

    Java 2023年5月20日
    00
  • Java内部类原理、概述与用法实例详解

    Java内部类原理、概述与用法实例详解 Java中的内部类是指嵌套在另外一个类内部的类,它们提供了更好的封装和代码组织方式。本文将详细讲解Java内部类的原理、概述和用法实例,并提供两个示例来说明其使用和优势。 内部类原理 Java中的内部类实际上是一种成员类,它与其他成员变量和成员方法一样隶属于其外围类,并可以访问外围类的私有数据和方法,甚至可以访问到其外…

    Java 2023年5月23日
    00
  • Java项目之java+springboot+ssm实现理财管理系统设计

    Java项目之java+springboot+ssm实现理财管理系统设计 项目介绍 本项目是一个基于Java、Spring Boot、SSM框架的理财管理系统,可以帮助用户管理个人的理财信息,包括资产、收支情况、投资组合等,以及提供投资建议等功能。 技术栈 本项目的技术栈包括: Java SE Spring Boot Spring Framework MyB…

    Java 2023年5月19日
    00
  • Java操作FreeMarker模板引擎的基本用法示例小结

    要在Java中使用FreeMarker模板引擎进行模板渲染,需要经历以下几个步骤: 引入FreeMarker依赖 在Maven项目中,可以在pom.xml文件中添加以下依赖项: <dependency> <groupId>org.freemarker</groupId> <artifactId>freemark…

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