当前位置: 首页 > article >正文

SpringBoot开发——整合Actuator监控和管理Spring Boot 应用

文章目录

  • 1、Spring Boot Actuator
  • 2、启用Spring Boot Actuator
    • 2.1项目中添加Spring Boot Actuator依赖
    • 2.2 启动项目,查看监控信息
  • 3、Spring Boot Actuator提供的端点(Endpoints)
    • 3.1 端点列表
    • 3.2 启用终端节点
    • 3.3 暴露端点
    • 3.4 常用端点详解

1、Spring Boot Actuator

Spring Boot Actuator 是一个用于监控和管理你 Spring Boot 应用的框架。可以选择使用 HTTP 终端节点JMX 来管理和监控您的应用程序。Spring Boot Actuator提供了许多内置的端点Endpoints),允许你访问应用程序的运行时信息,如健康检查、环境属性、日志、指标、线程转储等。

Spring Boot Actuator的官方网站是:
https://docs.spring.io/spring-boot/docs/2.4.5/reference/htmlsingle/#production-ready

2、启用Spring Boot Actuator

2.1项目中添加Spring Boot Actuator依赖

项目的pom.xml文件中添加Spring Boot Actuator相关依赖:

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

2.2 启动项目,查看监控信息

启动项目,在浏览器中输入:http://localhost:8000/actuator,显示:
在这里插入图片描述
这里显示的三个接口是Spring Boot Actuator默认提供的三个暴露的可以让我们使用的端点(Endpoints)。比如,访问http://localhost:8000/actuator/health,显示:
在这里插入图片描述

3、Spring Boot Actuator提供的端点(Endpoints)

Spring Boot Actuator提供了很多端点,只需要我们进行配置便可使用。

3.1 端点列表

Spring Boot Actuator提供的端点(Endpoints)包括:
在这里插入图片描述
如果您的应用程序是 Web 应用程序Spring MVCSpring WebFluxJersey),则可以使用以下附加端点:

终端节点 描述
heapdump 返回堆转储文件。hprof
jolokia 通过 HTTP 公开 JMX bean(当 Jolokia 位于 Classpath 上时,不可用于 WebFlux)。 需要依赖 。jolokia-core
logfile 返回日志文件的内容(如果已设置 或 属性)。 支持使用 HTTP 标头检索日志文件的部分内容。logging.file.namelogging.file.pathRange
prometheus 以 Prometheus 服务器可抓取的格式公开指标。 需要依赖 。micrometer-registry-prometheus

3.2 启用终端节点

默认情况下,除shutdown之外的所有端点都处于启用状态。 要配置端点的启用,可以在application.yml文件中进行设置。 比如要启用shutdown端点

management:
  endpoint:
    shutdown:
      enabled: true

如果只想启用某个端点,比如:info,而其它端点都不启用,可以通过下面的方式实现:

management:
  endpoints:
    enabled-by-default: false
  endpoint:
    info:
      enabled: true

3.3 暴露端点

由于 Endpoints 可能包含敏感信息,因此应仔细考虑项目中是否暴露端点。
下面的表中展示了内置端点默认是否暴露 :

端点 JMX Web
auditevents Yes No
beans Yes No
caches Yes No
conditions Yes No
configprops Yes No
env Yes No
flyway Yes No
health Yes Yes
heapdump N/A No
httptrace Yes No
info Yes Yes
integrationgraph Yes No
jolokia N/A No
logfile N/A No
loggers Yes No
liquibase Yes No
metrics Yes No
mappings Yes No
prometheus N/A No
scheduledtasks Yes No
sessions Yes No
shutdown Yes No
startup Yes No
threaddump Yes No

如果想要更改某个端点是否暴露,可以使用特定的includeexclude 属性进行设置::

属性 默认值
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include *
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.include info, health

例如,想要停止通过JMX 公开所有端点,而只公开healthinfo端点,进行如下设置:

management:
  endpoints:
    jmx:
      exposure:
        include: "health,info"

*可用于选择所有端点。 比如,想要通过 HTTP 公开除envbeans 之外的所有内容,进行如下设置:

management:
  endpoints:
    web:
      exposure:
        include: 

http://www.kler.cn/news/343165.html

相关文章:

  • vuex安装报错
  • v-html里面的标签设置样式没有用怎么办?
  • 尚硅谷rabbitmq 2024第30-33节 死信队列 答疑
  • Linux:进程调度算法和进程地址空间
  • No.9 笔记 | PHP学习指南:从入门到精通的要点总结
  • 关于Integer和int的拆箱和装箱
  • HiRT | 异步控制策略,告别VLA时延问题
  • 【RPC】—Thrift协议 VS Protobuf
  • StringEntity 用于将字符串内容作为 HTTP 请求实体(请求体)
  • docker+mysql创建用户名密码_docker里面的mysql 更换密码
  • Linux与RTOS的区别
  • SQL第13课——创建高级联结
  • Spring Security之RememberMe
  • 美发店管理革新:SpringBoot系统的应用
  • 【低代码】前端低代码开发日记2_遇到的问题(2)变量绑定
  • python 实现BFS判断是否是二分图Bipartite算法
  • 机器学习和深度学习的差别
  • Elasticsearch 入门
  • 数字马力ai面试题
  • 推荐一个边缘物联网平台