SpringBoot 之Actuator

Spring Actuator 与 Spring boot Admin 一.Springboot监控中心概述 1.什么是Springboot监控中心 针对于微服务的服务状态、Http请求资源监控 简述:针对微服务服务器监控,服务器内存变化(堆内存变化、线程变化、日志管理等),检测服务配置连接地址是否可用(比如MySQL等的连接可能是懒加载形式的,加载的时候没有报错,当访问的时候才会报错,实现的原理采用模拟访问)、统计现在有多少bean(是Spring容器中的bean... 阅读详情

一、Actuator 介绍

    Actuator 是 SpringBoot 项目中一个非常强大一个功能,有助于对应用程序进行监视和管理,通过 restful api 请求来监管、审计、收集应用的运行情况。

Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的 Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的 Endpoints。每个 Endpoint 都可以启用和禁用。要远程访问 Endpoint,还必须通过 JMX 或 HTTP 进行暴露,大部分应用选择HTTP,Endpoint 的ID默认映射到一个带 /actuator 前缀的URL。例如,health 端点默认映射到 /actuator/health。

二、Actuator 使用

启用 Actuator 最简单方式是添加spring-boot-starter-actuator‘Starter’依赖。

    1、pom.xml

<!-- 2、监控 —— Actuator插件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>

    2、application.yml

management:endpoints:# 暴露 EndPoint 以供访问,有jmx和web两种方式,exclude 的优先级高于 include    jmx:      exposure:        exclude:'*'        include: '*'    web:      exposure:# exclude: '*'include: ["health","info","beans","mappings","logfile","metrics","shutdown","env"]

      base-path: /actuator# 配置 Endpoint 的基础路径cors:# 配置跨域资源共享allowed-origins: http://example.com

        allowed-methods: GET,POST

    enabled-by-default: true# 修改全局 endpoint 默认设置  endpoint:auditevents:# 1、显示当前引用程序的审计事件信息,默认开启      enabled: true

      cache:

        time-to-live: 10s# 配置端点缓存响应的时间beans:# 2、显示一个应用中所有 Spring Beans 的完整列表,默认开启enabled: trueconditions:# 3、显示配置类和自动配置类的状态及它们被应用和未被应用的原因,默认开启enabled: trueconfigprops:# 4、显示一个所有@ConfigurationProperties的集合列表,默认开启enabled: trueenv:# 5、显示来自Spring的 ConfigurableEnvironment的属性,默认开启enabled: trueflyway:# 6、显示数据库迁移路径,如果有的话,默认开启enabled: truehealth:# 7、显示健康信息,默认开启      enabled: true

      show-details: alwaysinfo:# 8、显示任意的应用信息,默认开启enabled: trueliquibase:# 9、展示任何Liquibase数据库迁移路径,如果有的话,默认开启enabled: truemetrics:# 10、展示当前应用的metrics信息,默认开启enabled: truemappings:# 11、显示一个所有@RequestMapping路径的集合列表,默认开启enabled: truescheduledtasks:# 12、显示应用程序中的计划任务,默认开启enabled: truesessions:# 13、允许从Spring会话支持的会话存储中检索和删除(retrieval and deletion)用户会话。使用Spring Session对反应性Web应用程序的支持时不可用。默认开启。enabled: trueshutdown:# 14、允许应用以优雅的方式关闭,默认关闭enabled: truethreaddump:# 15、执行一个线程dump      enabled: true

    # web 应用时可以使用以下端点heapdump:# 16、    返回一个GZip压缩的hprof堆dump文件,默认开启enabled: truejolokia:# 17、通过HTTP暴露JMX beans(当Jolokia在类路径上时,WebFlux不可用),默认开启enabled: truelogfile:# 18、返回日志文件内容(如果设置了logging.file或logging.path属性的话),支持使用HTTP Range头接收日志文件内容的部分信息,默认开启enabled: trueprometheus:#19、以可以被Prometheus服务器抓取的格式显示metrics信息,默认开启enabled: true

    这大抵就是全部默认的 Endpoint 的配置了,怎么样?强大吧!之前做了一个网络监控的项目,就是能够实时查看服务器的 CPU、内存、磁盘、IO 这些(基于 sigar.jar 实现),然后现在发现 SpringBoot 就这样轻松支持了,还更强大,更简便......

默认的 Endpoint 映射前缀是/actuator,可以通过如上 base-path 自定义设置。

    每个 Endpoint 都可以配置开启或者禁用。但是仅仅开启 Endpoint 是不够的,还需要通过 jmx 或者 web 暴露他们,通过 exclude 和 include 属性配置。

    3、效果

做好了如上的配置,接下来我们只需要访问对应的 Endpoint 就可以啦,/actuator/[Endpoint ID](http://127.0.0.1:8080/actuator/health)。

三、自定义 Endpoint

自定义 Endpoint 端点,只需要在我们的新建Bean上使用@Endpoint 注解即可。则 Bean 中的方法就可以通过 JMX 或者 HTTP 公开。除此之外,你还可以使用 @JmxEndpoint 或 @WebEndpoint 编写 EndPoint。但是这些 EndPoint 仅限于各自的公开方式。例如,@WebEndpoint 仅通过HTTP公开,而不通过JMX公开。

    那么是不是类中所有的方法都支持对外公开呢?很明显不是的。这里又要提到三个注解,只有加三个注解的方法才支持对外公开,并且每个注解都有支持它的 HTTP method。如下:

OperationHTTP method

@ReadOperationGET

@WriteOperationPOST

@DeleteOperationDELETE

Endpoint 上的操作通过参数接收输入。 当通过网络公开时,这些参数的值取自URL的查询参数和JSON请求主体。 通过JMX公开时,参数将映射到MBean操作的参数。参数默认是必需的,可以通过使用 @Nullable 注释使其成为可选的。

可以通过使用 @Selector 注释操作方法的一个或多个参数来进一步定制路径。@Selector 会将路径上的参数作为变量传递给操作方法。这个注解有点诡异,且听我徐徐道来~~

    1、Endpoint Bean

@Component

@Endpoint(id = "my", enableByDefault =true)//设置 id,并选择是否默认开启publicclass MyEndPoint {

    @ReadOperation

    publicList getPaths() {

        List list =newArrayList<>();

        list.add("java");

        list.add("c++");

        list.add("python");

        return list;

    }

    @ReadOperation

    public String get(@Selector String arg0) {

        returnarg0;    }

@WriteOperation

public String post() {

        return"post";

    }

    @DeleteOperation

    public Integer delete() {

        return1;

    }

}

    2、暴露 Endpoint

设置好了上面的 Endpoint Bean,还不能真正的访问到它们,需要在 application.yml 中将它们暴露出来:

management:  endpoints:# 暴露 EndPoint 以供访问,有jmx和web两种方式,exclude 的优先级高于 include    jmx:      exposure:        exclude:'*'        include: '*'    web:      exposure:# exclude: '*'include: ["health","info","beans","mappings","logfile","metrics","shutdown","env","my"]

做好这些配置后,你就能访问到 Endpoint 了(http://127.0.0.1:8080/actuator/my)

    3、@Selector

注意到没有,上面的 Endpoint 有一个 @Selector 参数的方法,并且参数名是 arg0,这个参数名是有学问滴......

原来我给的参数名是 path,原来我设想我可以访问 /actuator/my/[任意字符] 的路径,但是会报 400 参数不匹配错误。但是嘞,/actuator/my/[任意字符]?path=[任意字符] 是正常访问的,真是奇了怪了!。

原来,为了使 @Selector 正常工作,必须使用嵌入的参数名称编译 Endpoint(-parameters),如下。或者将参数名改为 arg0 就能达到目的。这个是 stackoverflow 上的一个解释~

<plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><compilerArgs><arg>-parameters</arg></compilerArgs></configuration></plugin><!-- 或者:

    <plugin>

        <groupId>org.apache.maven.plugins</groupId>

        <artifactId>maven-compiler-plugin</artifactId>

        <version>3.7.0</version>

        <configuration>

            <parameters>true</parameters>

        </configuration>

    </plugin>

    --></plugins>

欢迎工作一到八年的Java工程师朋友们加入Java高级交流群:854630135

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有直播平台和讲师直接交流噢

哦对了,喜欢就别忘了关注一下哦~

SpringBoot 指标监控——Actuator 1、 访问:localhost:8000/actuator 设置健康监控显示具体情况 metrics http://localhost:8000/actuator/metrics/jvm.gc.live.data.size 定制化health信息 //利用构造器,在注册中心中添加cityService.saveCity.count指标 public CityServiceImpl(MeterRegistry meter... 阅读详情

相关推荐

SpringBoot—Actuator 详解

Spring Boot 提供了所谓的 endpoints (端点)给外部来与应用程序进行访问和交互。打比方来说,/health 端点 提供了关于应用健康情况的一些基础信息。metrics 端点提供了一些有用的应用程序指标(JVM 内存使用、系统CPU使用等)。这些 Actuator 模块本来就有的端点我们称之为原生端点。应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与Spring Boot应用密切相关的配置类信息。度量指标类。

Ally441的博客 4098

SpringBoot四大神器之一:Actuator

actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。

m0_64363449的博客 3691

Ubuntu虚拟机IP卡在127.0.0.1?别慌,试试这条万能命令 `sudo dhclient`

本文详细解析了Ubuntu虚拟机IP卡在127.0.0.1的常见原因及解决方案,重点介绍了`sudo dhclient`命令的使用方法及其变体,帮助用户快速恢复网络连接。同时提供了网络诊断工具和预防措施,适用于开发者和系统管理员应对网络故障。

weixin_29251131的博客 286

Spring Boot教程(十一)Spring Boot Actuator监控端点小结(1)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34378045的博客 405

医疗大模型实战——从零构建MedicalGPT全流程解析

本文详细解析了从零构建医疗大模型MedicalGPT的全流程实战。基于Qwen-7B模型与约195万条中文医疗数据,完整复现了增量预训练、监督微调与偏好对齐三大核心环节,并分享了如何在有限硬件资源下实现高效训练与部署,为开发者提供了可复现的医疗AI项目实战指南。

weixin_29193259的博客 556

unity pc运行包导入glb

本文介绍了在Unity中实现GLB/GLTF模型动态导入的方法。主要使用glTFast插件进行模型导入,配合StandaloneFileBrowser实现文件选择功能。文章提供了详细的插件安装方式(包括国内镜像源),并给出了核心导入脚本代码。脚本实现了模型加载、父对象设置、材质修复等功能,解决了常见的材质显示异常问题。该方法支持编辑器和PC平台,兼容不同版本的glTFastAPI,通过简易UI操作即可完成模型导入,适合需要运行时加载3D模型的Unity项目开发。

懒懒的蓝的博客 545

springboot 监控 Actuator和Admin

一、什么是Actuator Actuator是spring boot的一个附加功能,可帮助你在应用程序生产环境时监视和管理应用程序。可以使用HTTP的各种请求来监管,审计,收集应用的运行情况。Spring Boot Actuator提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生命周期。特别对于微...

江城宴的博客 4111

电子取证之服务器取证思路

服务器取证是一个技术性很强的领域,涉及到多个环节,包括网站重构、网站代码分析、容器分析等。数据库密码的获取通常通过查看配置文件、日志文件、备份等途径,同时可以通过一些绕过技术如禁用身份验证来获取权限。对于不同的数据库,需要根据其特性采取相应的应对方法和命令。

2401_84830066的博客 2492

Spring Boot Actuator 详解

详述Actuator使用方法

m0_46312862的博客 1万+

Windows-Anaconda3+TensorFlow安装教程

测试环境:win10-64位和win7-64位 (系统必须是64位,因为TensorFlow目前只支持64位) 一、安装Anaconda3 1.下载Anaconda3 Anaconda官网链接:link 这里我们选择Windows版本,python3.6-version-64位,如下图所示。 2.下载完成之后,点击安装Anaconda3 注意:安装过程中要选择添加环境变量,如图 待安装完成...

DoctorCuiLab的博客 3089

Linux PE vs WinPE:为何麒麟系统修复需要专属工具?

本文探讨了Linux PE与WinPE在修复国产麒麟系统时的关键差异,强调了专属工具的必要性。通过分析文件系统兼容性、引导修复、硬件适配和安全合规等方面,揭示了通用PE工具的局限性,并提供了构建专属修复工具链的实用方案,确保系统维护的高效与安全。

weixin_29290863的博客 1063

SpringBoot Actuator

SpringBoot Actuator一、简介二、入门1、依赖2、默认监控指标3、查询监控指标4、全量监控指标三、Spring Boot Admin1、主要功能2、Admin3、Client4、应用墙5、其他四、定制化1、定制Health端点2、定制Info端点3、定制Metrics端点4、定制Endpoint端点一、简介...

cnzzs的博客 1122

GNN(图神经网络)的 MATLAB 仿真

图神经网络(Graph Neural Network, GNN)是一种用于处理图结构数据的深度学习模型。GNN 通过聚合节点及其邻居的信息,能够有效捕捉图结构中的复杂关系,广泛应用于社交网络分析、推荐系统、化学分子分析等领域。GNN 通过消息传递机制聚合节点及其邻居的信息,能够有效处理图结构数据。MATLAB 仿真展示了 GNN 的基本流程和节点分类性能,适用于社交网络分析、推荐系统、化学分子分析和知识图谱等多种应用场景。

走向CTO的路上... 838

[Spring Boot]SpringBoot四大神器之Actuator

前言:本文翻译自Spring Boot 2.0.1.RELEASE官方文档,该Spring Boot版本是当前(2018年4月份)官方推荐版本,因Spring Boot 2.0的Actuator与之前版本有较大不同,而网上相关博文资料较旧,故建议阅读官方文档再做实践.转载需经本人同意,注明出处方可转载. 目录: 执行器(Actuator)的定义 1. 开启Actuator 2. 端点...

城北荆无命的博客 2516

node: /lib64/libstdc++.so.6: version `CXXABI_1.3.11‘ not found (required by node) 解决方案

本文主要介绍了node: /lib64/libstdc++.so.6: version `CXXABI_1.3.11’ not found (required by node) ,希望能对使用nodejs的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring boot——Actuator 详解

SpringBoot提供了所谓的endpoints(下文翻译为端点)给外部来与应用程序进行访问和交互。打比方来说,/health端点提供了关于应用健康情况的一些基础信息。metrics端点提供了一些有用的应用程序指标(JVM内存使用、系统CPU使用等)。这些Actuator模块本来就有的端点我们称之为原生端点。应用配置类获取应用程序中加载的应用配置、环境变量、自动化配置报告等与SpringBoot应用密切相关的配置类信息。度量指标类操作控制类提供了对应用的关闭等操作类功能。...

weixin_45985053的博客 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

springboot actuator_Spring Boot(八):Spring Boot的监控法宝:Actuator

在日常项目中,除了开发过程比较重要以外,实际上运维过程也尤为重要。而Spring Boot 也为我们考虑到了这一点,它为我们提供了Actuator这一组件,帮助我们监控、管理应用程序。正如官网中所说的那样,它可以通过很小的动作产生巨大的变化一起来探索一下~一 原理01. 什么是ActuatorSpring Boot Actuator,可在您将应用程序投入生产时帮助您监控和管理应用程序。分别支持HT...

weixin_39609573的博客 385

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

重学SpringBoot3-集成Spring Boot Actuator

Spring Boot Actuator 是一组能够帮助我们监控和管理 Spring Boot 应用的工具。它提供了很多有用的端点,用来查看应用的各种信息,如健康状况、Bean 信息、应用配置、日志级别等。Actuator 默认提供了一些内置的端点,但我们也可以根据需求自定义新的端点。通过 Spring Boot 3 中的 Actuator,我们可以非常方便地监控和管理应用程序的运行时状态。Actuator 提供了丰富的内置端点,帮助我们查看应用的健康状态、运行时指标、日志级别等。

CoderJia的学习之路 2771

SpringBoot中的Actuator应用

通过前面的介绍我们明白了SpringBoot为什么能够很方便快捷的构建Web应用,那么应用部署上线后的健康问题怎么发现呢?在SpringBoot中给我们提供了Actuator来解决这个问题。Spring Boot包括许多附加特性,可以帮助您在将应用程序投入生产时监视和管理应用程序。您可以选择使用HTTP端点或使用JMX来管理和监视应用程序。审计、运行状况和度量收集也可以自动应用于您的应用程序。使用Actuator我们需要添加依赖。

埃泽漫笔 1405

SpringBoot四大神器之Actuator

使用Actuator可以在SpringBoot程序运行时通过http请求的方式动态的监控和管理程序,官方对其功能的介绍如下: Spring Boot includes a number of additional features to help you monitor and manage your application when you push it to production. You can choose to manage and monitor your application by us

Nicholas_GUB的博客 1万+

SpringBoot之Actuator入门

SpringBoot提供了生产级的监控功能Actuator,可以对程序内部运行情况进行监控,比如线程信息,bean信息,配置,内存使用情况,健康状况等。Actuator的监控结果可以通过HTTP、远程shell和JMX获得,一般我们直接通过HTTP直接访问。在Actuator中,每个监控功能称为端点(endpoint)。 本文接下来介绍如何在SpringBoot中启用Actuator,以及如何简单配置Actuator。 准备工作: 本项目SpringBoot版本:2.3.10.RELEASE 一个可运行的s

TAaron666的博客 4805

springboot之Actuator

1、Actuator介绍 Actuator是Springboot提供的用来对应用系统进行自省和监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。 Actuator 的核心是端点 Endpoint,它用来监视应用程序及交互,spring-boot-actuator 中已经内置了非常多的 Endpoint(health、info、beans、metrics、httptrace、shutdown等等),同时也允许我们自己扩展自己的 Endpoints。每个 En.

weixin_40482816的博客 1万+

SpringBoot整合actuator

SpringBoot整合actuator SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等 配置Actuator pom.xml <!-- web start--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo

yunfeather的博客 5667

【Springboot】指标监控 SpringBoot Actuator

指标监控 SpringBoot Actuator

See_Star的博客 733
上一篇: java JDK动态代理
下一篇: bootstrap+Ajax+SSM(maven搭建)表单增删改查
javaQQ群 866865133
博客等级 码龄8年 59粉丝 309原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值