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

springboot系列教程(十六):配置Actuator组件,实现系统监控

一、Actuator简介

1、监控组件作用

在生产环境中,需要实时或定期监控服务的可用性。Spring Boot的actuator(健康监控)功能提供了很多监控所需的接口,可以对应用系统进行配置查看、相关功能统计等。

2、监控分类

Actuator 提供Rest接口,展示监控信息,接口分为三大类:

  • 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与SpringBoot应用相关的配置类信息。
  • 度量指标类:获取应用程序运行过程中用于监控的度量指标,比如:内存信息、线程池信息、HTTP请求统计等。
  • 操作控制类:提供了对应用的关闭等操作类功能。

二、SpringBoot2整合

1、核心依赖Jar包

<!-- 监控依赖 -->
<dependency><groupid>org.springframework.boot</groupid><artifactid>spring-boot-starter-actuator</artifactid>
</dependency>

2、Yml配置文件

# 端口
server:port: 8016
spring:application:# 应用名称name: node16-boot-actuator
management:endpoints:web:exposure:# 打开所有的监控点include: "*"# 自定义监控路径 monitor# 默认值:http://localhost:8016/actuator/*# 配置后:http://localhost:8016/monitor/*base-path: /monitorendpoint:health:show-details: alwaysshutdown:# 通过指定接口关闭 SpringBootenabled: true# 可以自定义端口# server:#   port: 8089# 描述项目基础信息
info:app:name: node16-boot-actuatorport: 8016version: 1.0.0author: cicada

三、监控接口详解

1、Info接口

Yml文件中配置的项目基础信息

路径:http://localhost:8016/monitor/info 输出

{"app": {"name": "node16-boot-actuator","port": 8016,"version": "1.0.0","author": "cicada"}
}

2、Health接口

health 主要用来检查应用的运行状态

路径:http://localhost:8016/monitor/health 输出:

{"status": "UP","details": {"diskSpace": {"status": "UP","details": {"total": 185496236032,"free": 140944084992,"threshold": 10485760}}}
}

3、Beans接口

展示了 bean 的类型、单例多例、别名、类的全路径、依赖Jar等内容。

路径:http://localhost:8016/monitor/beans 输出

{"contexts": {"node16-boot-actuator": {"beans": {"endpointCachingOperationInvokerAdvisor": {"aliases": [],"scope": "singleton","type": "org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor","resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]","dependencies": ["environment"]}}}
}

4、Conditions接口

查看配置在什么条件下有效,或者自动配置为什么无效。

路径:http://localhost:8016/monitor/conditions 输出

{"contexts": {"node16-boot-actuator": {"positiveMatches": {"AuditAutoConfiguration#auditListener": [{"condition": "OnBeanCondition","message": "@ConditionalOnMissingBean"}],}
}

5、HeapDump接口

自动生成Jvm的堆转储文件HeapDump,可以使用监控工具 VisualVM 打开此文件查看内存快照。

路径:http://localhost:8016/monitor/heapdump

6、Mappings接口

描述 URI 路径和控制器的映射关系

路径:http://localhost:8016/monitor/mappings 输出

{"contexts": {"node16-boot-actuator": {"mappings": {"dispatcherServlets": {"dispatcherServlet": [ {"handler": "Actuator web endpoint 'auditevents'","predicate": "{GET /monitor/auditevents || application/json]}","details": {"handlerMethod": {"className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.Operat"name": "handle","descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"},"requestMappingConditions": {"consumes": [],"headers": [],"methods": ["GET"],"params": [],"patterns": ["/monitor/auditevents"],"produces": [{"mediaType": "application/vnd.spring-boot.actuator.v2+json","negated": false}, {"mediaType": "application/json","negated": false}]}}}}}
}

7、ThreadDump接口

展示线程名、线程ID、是否等待锁、线程的状态、线程锁等相关信息。

路径:http://localhost:8016/monitor/threaddump 输出

{"threads": [{"threadName": "DestroyJavaVM","threadId": 34,"blockedTime": -1,"blockedCount": 0,"waitedTime": -1,"waitedCount": 0,"lockName": null,"lockOwnerId": -1,"lockOwnerName": null,"inNative": false,"suspended": false,"threadState": "RUNNABLE","stackTrace": [],"lockedMonitors": [],"lockedSynchronizers": [],"lockInfo": null}]
}

8、ShutDown接口

优雅关闭 Spring Boot 应用,默认只支持POST请求。

路径:http://localhost:8016/monitor/shutdown

http://www.lryc.cn/news/403692.html

相关文章:

  • 单臂路由组网实验,单臂路由的定义、适用情况、作用
  • 【数据结构初阶】顺序表三道经典算法题(详解+图例)
  • SpringBoot接入JPA连接数据库H2或MySQL例子
  • 持续集成05--Gogs的安装与使用
  • C++--fill
  • Java:对比一个对象更新前后具体被修改了哪些值
  • GO——GMP 好文整理
  • 园区AR导航系统构建详解:从三维地图构建到AR融合导航的实现
  • 接口测试总结(非标准)
  • 在Ubuntu 18.04上安装和使用Composer的方法
  • ssm 学习 ---(spring)
  • Jupyter Notebook安装及基本使用
  • Jenkins+Maven+Gitlab+Tomcat自动化构建打包+部署
  • Synchronized升级到重量级锁会发生什么?
  • 【Webpack】HMR 热更新
  • 【计算机视觉】siamfc论文复现
  • PotatoTool 蓝队版 V1.3 发布:增强功能和性能优化
  • pytest常用命令行参数解析
  • pgsql-使用dump命令制作数据库结构、数据快速备份bat脚本
  • 【3D编程技巧】如何用四元数旋转矢量在相机空间进行光照计算
  • ICMP 和 IGMP 的区别
  • 【Vue3】工程创建及目录说明
  • 算法学习2——排序算法(2)
  • 嵌入式人工智能(9-基于树莓派4B的PWM-LED呼吸灯)
  • python-NLP:1中文分词
  • iOS 开发包管理之CocoaPods
  • Windows搭建RTMP视频流服务器
  • VS2019安装MFC组件
  • Python学习—open函数,json与pickle知识点,Os模块详解
  • 基于SSM的高考志愿选择辅助系统