熟悉 Spring Boot 的 Actuator 的 使用方法 (5)

本文介绍了一个应用程序的各种监控指标,包括垃圾收集、内存使用、线程池状态等,并提供了如何访问这些信息的方法。此外还介绍了如何检查应用健康状况及进行安全关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测量运行时的度量情况也可以做一个快照,这对评估应用程序的健康情况很有帮助

  1. /metrics

查看应用程序的度量值

/metrics 端点报告的度量值和计数器

分类

前缀

报告内容

垃圾收集器

gc.*

已经发生过的垃圾收集次数(gc.ps_marksweep.count
),以及垃圾收集所耗费的时间(gc.ps_marksweep.time

),适用于标记-清理垃圾收集器和并行垃圾收集器(数据源自 java.lang.management.GarbageCollectorMXBean)

内存

mem.*

分配给应用程序的内存数量和空闲的内存数量(数据源自java.lang.Runtime)

Heap.*

当前内存用量(数据源自java.lang.management.MemoryUsage)

类加载器

classes.*

JVM类加载器加载与卸载的类的数量(数据源自java.lang.management.ClassLoadingMXBean)

系统

processors、uptimeinstance、uptime、systemload.averagethreads.*

系统信息,例如处理器数量(数据源自java.lang.Runtime)、运行时间(数据源自java.lang.management.RuntimeMXBean)、平均负载(数据源自java.lang.management.OperatingSystemMXBean)

线程池

threads.*

线程、守护线程的数量,以及JVM 启动后的线程数量峰值(数据源自java.lang.manager.ThreadMXBean)

数据源

datasource.*

数据源连接的数量(源自数据源的元数据,仅当Spring 应用程序上下文里存在DataSource Bean 的时候才会有这个信息)

Tomcat会话

httpsessions.*

Tomcat 的活跃会话数和最大会话数(数据源自嵌入式Tomcat 的Bean,仅在使用嵌入式Tomcat 服务器运行应用程序时才会有这个信息)

HTTP

counter.status.*

gaugu.response.*

多种应用程序服务HTTP 请求的度量值与计数器

 

也可以只返回某个度量值如:/metrics/mem.free

 

/trace 端点能报告所有 Web 请求的详细信息,包括请求方法、路径、时间戳、以及请求和响应的头信息。能显示最近 100 个请求的信息。

/dump 在确认应用程序的运行情况时,除了跟踪请求,了解线程活动也会很有帮助。/dump端点会生成当前线程活动的快照。

我这里给大家截个图分享出来吧:

其中的部分

 

如果想知道自己的应用程序是否在运行,可以直接访问/health 端点。

关闭应用程序 需要往/shutdown发送一个 post 请求。这个端点默认是关闭的。

可以做出如下配置

endpoints.shutdown.enabled = true

这是我发送请求后的截图:

但是为确保安全,我把这个配置给关掉了。。。以后我会和大家分享怎么样授权给特定的用户关闭应用程序。

 

获取应用信息 /info,可以展示各种你希望发布的应用信息:如下:

Spring Boot Actuator是一组可插拔的管理端点,它提供了有关应用程序运行状况的信息,例如健康状况、内存使用情况、日志记录等。下面是Spring Boot Actuator使用方法和案例。 1. 添加Spring Boot Actuator依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> ``` 2. 配置Spring Boot Actuator 在application.properties文件中添加以下配置: ```properties # 启用所有端点 management.endpoints.web.exposure.include=* # 启用health和info端点 management.endpoints.web.exposure.include=health,info # 配置端点访问路径 management.endpoints.web.base-path=/actuator ``` 3. 访问Spring Boot Actuator端点 启动Spring Boot应用程序后,可以通过以下URL访问Actuator端点: - /actuator/health:应用程序的健康状况。 - /actuator/info:应用程序的信息。 - /actuator/metrics:应用程序的度量指标。 - /actuator/loggers:应用程序的日志记录器。 - /actuator/httptrace:应用程序的HTTP跟踪信息。 - /actuator/env:应用程序的环境变量。 例如,访问/actuator/health端点可以得到应用程序的健康状况: ```json { "status": "UP" } ``` 访问/actuator/metrics端点可以得到应用程序的度量指标: ```json { "counter.status.200.root": 1, "gauge.response.root": 50, "gauge.response.sample": 50 } ``` 访问/actuator/loggers端点可以得到应用程序的日志记录器: ```json { "configuredLevel": "INFO", "effectiveLevel": "INFO", "name": "root" } ``` 访问/actuator/env端点可以得到应用程序的环境变量: ```json { "profiles": [ "default" ], "systemProperties": { "java.runtime.name": "Java(TM) SE Runtime Environment", "user.timezone": "Asia/Shanghai", "java.version": "1.8.0_241", "os.name": "Mac OS X", "user.country": "CN", "user.language": "zh", "java.vm.specification.version": "1.8", "user.home": "/Users/username", "java.awt.headless": "true", "file.separator": "/", "java.specification.vendor": "Oracle Corporation", "java.library.path": "/Users/username/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.", "java.vm.name": "Java HotSpot(TM) 64-Bit Server VM", "user.dir": "/Users/username/workspace/demo", "java.runtime.version": "1.8.0_241-b07", "os.version": "10.15.6", "java.vendor.url": "http://java.oracle.com/", "java.vm.vendor": "Oracle Corporation", "spring.output.ansi.enabled": "ALWAYS", "file.encoding": "UTF-8", "java.vm.specification.vendor": "Oracle Corporation", "java.vendor": "Oracle Corporation", "java.vm.version": "25.241-b07", "line.separator": "\n", "user.name": "username", "java.class.version": "52.0", "java.vendor.url.bug": "http://bugreport.sun.com/bugreport/", "sun.cpu.endian": "little", "sun.io.unicode.encoding": "UnicodeBig", "spring.datasource.password": "******", "spring.datasource.url": "jdbc:mysql://localhost:3306/demo", "spring.datasource.username": "root", "spring.datasource.driver-class-name": "com.mysql.jdbc.Driver", "spring.jpa.database-platform": "org.hibernate.dialect.MySQL5InnoDBDialect", "spring.jpa.hibernate.ddl-auto": "create-drop", "spring.jpa.show-sql": "true", "spring.jpa.properties.hibernate.format_sql": "true" } } ``` 4. 自定义Spring Boot Actuator端点 除了使用默认的Actuator端点外,还可以自定义自己的端点。只需要实现Endpoint接口即可。 例如,以下是一个自定义的端点,它返回当前时间: ```java @Component public class TimeEndpoint implements Endpoint<Long> { @Override public String getId() { return "time"; } @Override public boolean isEnabled() { return true; } @Override public boolean isSensitive() { return false; } @Override public Long invoke() { return System.currentTimeMillis(); } } ``` 启动应用程序后,可以通过访问/actuator/time端点来获取当前时间。 以上就是Spring Boot Actuator使用方法和案例,它可以帮助我们更好地管理和监控Spring Boot应用程序的运行状况。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值