SpringBoot之Actuator基本使用
SpringBoot之Actuator基本使用
- 引入
- 分类
- 常用接口含义
- health
- beans
- conditions
- heapdump
- mappings
- threaddump
- loggers
- metrics
引入
<!-- actuator start-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- actuator end-->
启动SpringBoot项目,浏览器访问
actuator
好了,完事,恭喜你已经完成了actuator的基本启动配置,但是这里面的url点开除了health里面是UP,其他基本没啥用啊!!! 就这?
好,下面开启完整版,在application.yml加入配置
management:endpoints:web:exposure:include: "*"
如果只需要部分的话,只开启beans,trace,后面出于安全考虑可以设置拦截器,只在线下环境开启,校验用户信息等
management:endpoints:web:exposure:exclude: beans,trace
如果想更换url,可以加上下面配置
management:endpoints:web:base-path: /healthcheck #记得要加上/
重新启动
下面详细介绍各个页面配置
分类
Actuator 监控分成两类:原生端点和用户自定义端点;自定义端点主要是指扩展性,用户可以根据自己的实际应用,定义一些比较关心的指标,在运行期进行监控。
原生端点是在应用程序里提供众多 Web 接口,通过它们了解应用程序运行时的内部状况。原生端点又可以分成三类:
- 应用配置类 :可以查看应用在运行期的静态信息:例如自动配置信息、加载的 springbean 信息、yml 文件配置信息、环境信息、请求映射信息;
- 度量指标类 :主要是运行期的动态信息,例如堆栈、请求连、一些健康指标、metrics 信息等;
- 操作控制类 :主要是指 shutdown,用户可以发送一个请求将应用的监控功能关闭。
常用接口含义
GET | /auditevents | 显示应用暴露的审计事件 (比如认证进入、订单失败) |
---|---|---|
GET | /beans | 描述应用程序上下文里全部的 Bean,以及它们的关系 |
GET | /conditions | 就是 /autoconfig ,提供一份自动配置生效的条件情况,记录哪些自动配置条件通过了,哪些没通过 |
GET | /configprops | 描述配置属性(包含默认值)如何注入Bean |
GET | /env | 获取全部环境属性 |
GET | /env/{name} | 根据名称获取特定的环境属性值 |
GET | /flyway | 提供一份 Flyway 数据库迁移信息 |
GET | /liquidbase | 显示Liquibase 数据库迁移的纤细信息 |
GET | /health | 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供 |
GET | /heapdump | dump 一份应用的 JVM 堆信息 |
GET | /httptrace | 显示HTTP足迹,最近100个HTTP request/repsponse |
GET | /info | 获取应用程序的定制信息,这些信息由info打头的属性提供 |
GET | /logfile | 返回log file中的内容(如果 logging.file 或者 logging.path 被设置) |
GET | /loggers | 显示和修改配置的loggers |
GET | /metrics | 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 |
GET | /metrics/{name} | 报告指定名称的应用程序度量值 |
GET | /scheduledtasks | 展示应用中的定时任务信息 |
GET | /sessions | 如果我们使用了 Spring Session 展示应用中的 HTTP sessions 信息 |
POST | /shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为true |
GET | /mappings | 描述全部的 URI路径,以及它们和控制器(包含Actuator端点)的映射关系 |
GET | /threaddump | 获取线程活动的快照 |
health
health 主要用来检查应用的运行状态,这是我们使用最高频的一个监控点。通常使用此接口提醒我们应用实例的运行状态,以及应用不”健康“的原因,比如数据库连接、磁盘空间不够等。
但是这个只比较笼统的显示服务的状态,详细的信息需要配置
management:endpoint:health:show-details: always
beans
根据示例就可以看出,展示了 bean 的别名、类型、是否单例、类的地址、依赖等信息。
访问:http://localhost:8080/actuator/beans返回部分信息如下:
conditions
Spring Boot 的自动配置功能非常便利,但有时候也意味着出问题比较难找出具体的原因。使用 conditions 可以在应用运行时查看代码了某个配置在什么条件下生效,或者某个自动配置为什么没有生效。
访问:http://localhost:8080/actuator/conditions返回部分信息如下:
heapdump
访问:http://localhost:8080/actuator/heapdump会自动生成一个 Jvm 的堆文件 heapdump,我们可以使用 JDK 自带的 Jvm 监控工具 VisualVM 打开此文件查看内存快照。类似如下图:
mappings
描述全部的 URI 路径,以及它们和控制器的映射关系
访问:http://localhost:8080/actuator/mappings返回部分信息如下:
threaddump
/threaddump 接口会生成当前线程活动的快照。这个功能非常好,方便我们在日常定位问题的时候查看线程的情况。 主要展示了线程名、线程ID、线程的状态、是否等待锁资源等信息。
访问:http://localhost:8080/actuator/threaddump返回部分信息如下:
loggers
访问 http://localhost:8080/actuator/loggers 可以查看当前应用的日志级别等信息:
metrics
metrics 是一个非常重要的监控端点,其监控内容覆盖了 JVM 内存、堆、类加载、处理器和 tomcat 容器等一些重要指标:
可以看到这里面包含了非常多的指标,任意访问一个指标就可以查看对应的指标信息:
相关文章:

SpringBoot之Actuator基本使用
SpringBoot之Actuator基本使用 引入分类常用接口含义healthbeansconditionsheapdumpmappingsthreaddumploggersmetrics 引入 <!-- actuator start--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…...
排序算法(一)
1.冒泡排序-Bubble Sort 1.算法原理 依次比较相邻的两个元素,若按照从小到大的顺序,则将相邻元素中较大的一个放在后面;然后对每一对相邻元素都做这种比较,序列的最后一个元素就是最大的数; 2.算法复杂度 时间复杂度…...

Centos虚拟机忘记密码-修改密码
1.重启系统 2.在这个选择界面,按e建 3.找到如下位置,插入init/bin/sh 4.填写完成后按Ctrlx引导启动 5.输入mount -o remount, rw / (注意空格) 6.重置密码 出现以下为重置成功 7.执行touch /.autorelabel 8.退出exec /sbin/init 9.输入你的新密…...
Shell 分析服务器日志常用命令
1、查看有多少个IP访问: 日志文件的第一列是IP地址 awk {print $1} log_file|sort|uniq|wc -l2、查看某一个页面被访问的次数: grep "/index.php" log_file | wc -l3、查看每一个IP访问了多少个页面: awk {S[$1]} END {for (a i…...

mysql8配置binlog日志skip-log-bin,开启、关闭binlog,清理binlog日志文件
1.概要说明 binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但是对于运维或者架…...

机器学习:训练集与测试集分割train_test_split
1 引言 在使用机器学习训练模型算法的过程中,为提高模型的泛化能力、防止过拟合等目的,需要将整体数据划分为训练集和测试集两部分,训练集用于模型训练,测试集用于模型的验证。此时,使用train_test_split函数可便捷高…...
淘宝API开发(一)简单介绍淘宝API功能接口作用
前一阵子按照上级指示,根据淘宝API开发符合自已应用的系统,比如批量上传,批量修改名称,价格等功能什么的,在此就将我的开发历程写一写,为自己前段时间的工作做个总结。 淘宝开发平台(淘宝网 - 淘ÿ…...
Redis相关面试题
Redis的使用场景 根据自己简历上的业务进行回答 缓存 穿透、击穿、雪崩、双写一致、持久化、数据过期、淘汰策略 分布式锁 setnx redisson 缓存穿透:查询一个不存在的数据,数据库查不到数据也不会直接写入缓存,就会导致每次请求都查询数据库…...
数据库简介
1、数据库安装: rpm (redhat package manager) 也是个包管理工具: rpm -ivh 安装 rpm -e 表示卸载,卸载的时候有可能出现依赖的问题,可以用 --nodeps 忽略依赖卸载。 rpm -qa 搜索系统中安装的rpm的应用。 如果使用离线包,安装顺序不要乱。 m…...
腾讯云国际轻量应用服务器怎么使用呢?
腾讯云国际轻量应用服务器怎么使用呢?下面一起来了解一下: 1. 熟悉轻量应用服务器基础知识 ①什么是轻量应用服务器 TencentCloud Lighthouse? ②轻量应用服务器与云服务器 CVM 的区别是什么? ③为什么选择轻量应用服务器…...
arm环境cloudstack在vpc下创建虚拟机失败
一、环境说明 操作系统:openEuler 22.03CPU:Kunpeng-920,arm v8cloudstack:4.18libvirtd:6.2.0 二、问题描述 在UI上创建VPC后,平台会同时创建一个virtual router,此时virtual router有两个网…...

Linux上安装Keepalived,多台Nginx配置Keepalived(保姆级教程)
目录 一、yum安装 第一步:下载 第二步:编辑Keepalived配置文件(第一台) 第三步:编辑Keepalived配置文件(第二台) 第四步:我们在本机利用cmd ping一下 一、yum安装 第一步&…...

centos7 ‘xxx‘ is not in the sudoers file...
如题 执行命令输入密码后时报错: [sudo] password for admin (我的账户)原因,当前用户还没有加入到root的配置文件中。 解决 vim打开配置文件,如下: #切换到root用户 su #编辑配置文件 vim /etc/sudoe…...

Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域
“Zebec Protocol 生态旨以 Web3 的方式建立全新的公平秩序,基于其流支付体系构建的薪酬支付板块,就是解决问题的一把利刃”...
【2023】字节跳动 10 日心动计划——第三关
目录 1. 最长有效括号2. 有序数组的平方 1. 最长有效括号 🔗 原题链接:32. 最长有效括号 类似于有效的括号,考虑用栈来解决。 具体来讲,我们始终保持栈底元素为当前已经遍历过的元素中「最后一个没有被匹配的右括号的下标」&…...

【无网络】win10更新后无法联网,有线无线都无法连接,且打开网络与Internet闪退
win10更新后无法联网,有线无线都无法连接,且打开网络与Internet闪退 法1 重新配置网络法2 更新驱动法3 修改注册表编辑器法4 重装系统 自从昨晚点了更新与重启后,今天电脑就再也不听话了,变着花样地连不上网。 检查路由器…...
HTML <script> 标签
实例 在 HTML 页面中插入一段 JavaScript: <script type="text/javascript"> document.write("Hello World!") </script>(在本页底部可以找到更多实例) 定义和用法 <script> 标签用于定义客户端脚本,比如 JavaScript。 script …...

FPGA----UltraScale+系列的PS侧与PL侧通过AXI-HP交互(全网唯一最详)附带AXI4协议校验IP使用方法
1、之前写过一篇关于ZYNQ系列通用的PS侧与PL侧通过AXI-HP通道的文档,下面是链接。 FPGA----ZCU106基于axi-hp通道的pl与ps数据交互(全网唯一最详)_zcu106调试_发光的沙子的博客-CSDN博客大家好,今天给大家带来的内容是࿰…...
Unity小游戏——迷你拼图
游戏展示 拼图演示 资源: 链接:https://pan.baidu.com/s/1BGeSmRCO_WZRUyl3MxefGw 提取码:0n4a 一、玩法介绍 排列拼图碎片,拼出最后的图案。可以点住碎片的任意位置拖动;点击"重来"按钮,可以…...

三 动手学深度学习v2 —— Softmax回归+损失函数+图片分类数据集
三 动手学深度学习v2 —— Softmax回归损失函数图片分类数据集 目录: softmax回归损失函数 1. softmax回归 回归vs分类: 回归估计一个连续值分类预测一个离散类别 从回归到多类分类 回归 单连续数值输出自然区间R跟真实值的误差作为损失 分类 通常多个输出输出i是预测为第…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...