Springboot:Actuator监控

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、Actuator介绍

二、集成步骤

三、重要端点介绍

1、/actuator

2、/actuator/env

3、/actuator/heapdump

4、/actuator/metrics

5、/actuator/shutdown

6、/loggers

7、/threaddump

8、自定义端点

总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、Actuator介绍

Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用

二、集成步骤

1、添加依赖

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

application.yml文件添加配置

management:
  endpoint:
    shutdown:
      enabled: true
  endpoints:
    web:
      exposure:
        include: "*"
    health:
      show-details: always

注意:配置文件配置不当,启动服务的时候,会报连接失败,这个错误对应的场景有很多,网上的帖子也特别多,但是对于原有服务集成Actuator这个场景来说,就是配置文件的问题,可以逐个屏蔽配置项来进行排查。

不同于Actuator 1.x,Actuator 2.x 的大多数端点默认被禁掉。 Actuator 2.x 中的默认端点增加了/actuator前缀。默认暴露的两个端点为/actuator/health和 /actuator/info

三、重要端点介绍

1、/actuator

查看哪些端点是开放的,通过get请求来访问

例如:http://localhost:8080/actuator

2、/actuator/env

查看当前环境属性,尤其是多个springboot环境,可以通过get请求来获取加载的所有配置属性

例如:http://localhost:8080/actuator/env

3、/actuator/heapdump

生成当前JVM的堆文件,我们可以使用 JDK 自带的 Jvm 监控工具 VisualVM 打开此文件查看内存快照,进行相关的内存分析。文件直接通过浏览器进行下载。

实用,实用,实用,重要的事情说三遍!

通常我们要访问生产的服务器,并生成heapdump文件,需要运维的配合,而且文件也很大,下载也是个问题,那么通过监控来达成我们的目的,就非常的便捷了。

此功能占用IO和带宽,避免频繁使用。

4、/actuator/metrics

查看所有可追踪的度量,这个get请求会返回所有可以查看的细项,通过在链接后拼接细项名称,可以查看细项的明细。

例如:http://localhost:8080/actuator/metrics/jvm.memory.used

这个例子查的就是JVM已用内存,在这个基础上,我们还可以查看当前已用内存中某一块区域使用了多少内存,http://localhost:8080/actuator/metrics/jvm.memory.used?tag=id:Metaspace

常见的一些JVM指标参照上图 

5、/actuator/shutdown

关闭服务,通常使用场景:优雅停机

需要POST访问,生产慎用!

6、/loggers

查看当前日志级别,通常请求返回的信息过多,我们可以通过精简链接进行筛选

例如:http://localhost:8080/actuator/loggers/root

这个端点的强大之处在于:可以实时修改系统的日志级别

通过POST请求该地址,参数:{"configuredLevel": "ERROR"}

修改过后,再次查看日志级别,发现这时候日志级别已经发生了变化,这个特性很实用,生产上日志不敢过度开启,一般以ERROR为主,如果要配合查问题,那自然要调整日志级别,在不重启服务的情况下就能达成我们的目的,自然是最好的。

7、/threaddump

查看当前线程情况,主要展示了线程名、线程ID、线程的状态、是否等待锁资源、线程堆栈等信息

8、自定义端点

自定义端点,可以实现我们想要的功能,比如对某一个、某几个请求做统计,我们通过metrics去访问这些细项。

Actuator提供的各get接口,返回的数据都是JSON串,不太美观,有的返回的信息量很大,需要我们自己去筛选出来我们关心的常用指标。例如JVM的信息、线程的信息、内存的使用情况等等。

对于经典的CPU飙升、内存飙升场景,快速拿到快照信息进行分析。


总结

每天进步一点点!

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot项目中,可以使用Actuator提供的监控功能来监控应用程序的运行状态。为了实现Vue的监控配置,可以按照以下步骤操作: 1. 配置Actuator:在Spring Boot项目中添加Actuator依赖,并在application.properties或application.yml文件中配置Actuator的端点和安全性等相关参数。 2. 配置CORS:由于Vue应用程序是通过浏览器访问的,因此需要在Spring Boot项目中配置CORS允许跨域访问。 3. 编写Vue组件:在Vue应用程序中编写一个组件,通过Axios等库调用Actuator的API获取监控数据,并将其展示在页面上。 4. 部署到同一服务器:为了避免CORS的问题,最好将Vue应用程序部署到与Spring Boot项目同一服务器上。 具体实现可以参考以下代码: 1. 配置Actuator: 在application.yml文件中添加如下配置: ```yaml management: endpoints: web: exposure: include: "*" endpoint: health: show-details: always security: enabled: false ``` 2. 配置CORS: 在Spring Boot项目中添加CORS配置类: ```java @Configuration public class CorsConfig { @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("*") .allowedHeaders("*"); } }; } } ``` 3. 编写Vue组件: ```vue <template> <div> <h2>Actuator监控信息</h2> <table> <thead> <tr> <th>指标</th> <th>值</th> </tr> </thead> <tbody> <tr v-for="(value, key) in metrics" :key="key"> <td>{{ key }}</td> <td>{{ value }}</td> </tr> </tbody> </table> </div> </template> <script> import axios from 'axios'; export default { data() { return { metrics: {}, }; }, created() { axios.get('/actuator/metrics').then((res) => { this.metrics = res.data; }).catch((err) => { console.error(err); }); }, }; </script> ``` 以上代码实现了一个简单的Vue组件,通过Axios库调用Actuator的/metrics端点获取监控数据,并将其展示在表格中。 4. 部署到同一服务器: 将Vue应用程序部署到与Spring Boot项目同一服务器上,并通过nginx等服务器软件配置反向代理,将Vue应用程序的请求转发到Spring Boot项目中。这样可以避免CORS的问题,同时提高了应用程序的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值