springboot监控服务器信息,面试官:聊一聊SpringBoot服务监控机制
目录
前言
任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服务来说,监控都是必不可少的。
就目前而言,大部分微服务应用都是基于 SpringBoot 来构建,所以了解 SpringBoot 的监控特性是非常有必要的,而 SpringBoot 也提供了一些特性来帮助我们监控应用。
本文基于 SpringBoot 2.3.1.RELEASE 版本演示。
SpringBoot 监控
SpringBoot 中的监控可以分为 HTTP 端点和 JMX 两种方式来监控当前应用的运行状况和指标收集
HTTP Endpoints 监控
执行器端点允许您监视应用程序并与之交互。SpringBoot 包括许多内置的端点,并允许我们添加自己的端点。可以通过 HTTP 或 JMX 启用或禁用每个端点,并公开(使其可以远程访问)。每个端点都有一个唯一的 id,访问时可以通过如下地址进行访问:http:ip:port/{id}(SpringBoot 1.x ),而在 SpringBoot 2.x 版本中,默认新增了一个 /actuator 作为基本路,访问地址则对应为 :http:ip:port/actuator/{id}。
使用 HTTP 监控非常简单,在 SpringBoot 项目中,引入如下依赖:
org.springframework.boot
spring-boot-starter-actuator
默认就可以通过地址 http:localhost:8080/actuator/health,访问之后得到如下结果:
SpringBoot 中提供了非常多的默认端点监控,但是出于安全考虑,默认情况下有些端点并不是开启状态,如 shutdown 端点就是默认关闭的。
内置端点
SpringBoot 中默认提供的常用内置端点如下:
端点 id
描述
auditevents
公开当前应用程序的审计事件信息,需要 AuditEventRepository Bean。
beans
展示程序中所有的 Bean。
caches
公开可用的缓存。
conditions
展示配置类或者自动装配类中的条件,以及它们匹配或者不匹配的原因。
configprops
显示所有 @ConfigurationProperties 中的配置属性。
env
显示 ConfigurableEnvironment 中的所有环境。
health
显示应用程序运行状况信息。
httptrace
显示 HTTP 跟踪信息(默认情况下统计最近 100 次请求),需要 HttpTraceRepository Bean。
info
显示任意程序信息。
integrationgraph
显示 Spring 集成图,需要依赖 spring-integration-core。
loggers
展示和修改应用中的 loggers 配置。
metrics
展示当前应用监控指标的度量。
mappings
展示所有 @RequestMapping 路径。
scheduledtasks
展示应用中的所有定时任务信息。
sessions
允许从 Spring 会话支持的会话存储中检索和删除用户会话。需要使用基于 Spring Session web应用程序。
shutdown
优雅的关闭程序,默认禁止了该端点的访问。
虽然说这里的大部分端点都是默认开启的,但是默认暴露(允许对外访问)的只有 health 和 info 端点,所以如果需要允许端点对外暴露,可以通过如下配置(如果想要暴露所有的端点,则可以直接配置 "*" ):
management:
endpoints:
web:
exposure:
include: [health,info,mappings] //或者直接配置 "*"
另外,开启或禁用某一个端点,也可以通过通过如下配置进行动态控制:
management.endpoint..enabled=true
接下来我们挑选几个重点的端点来介绍一下。
health 端点
health 断点默认只是展示当前应用健康信息,但是我
springboot监控服务器信息,面试官:聊一聊SpringBoot服务监控机制相关推荐
- 面试官:聊一聊SpringBoot服务监控机制
面试官:聊一聊SpringBoot服务监控机制 前言 SpringBoot 监控 HTTP Endpoints 监控 内置端点 health 端点 loggers 端点 metrics 端点 自定义监 ...
- 面试官:聊一聊 Spring Boot 服务监控机制
欢迎关注方志朋的博客,回复"666"获面试宝典 任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服 ...
- SpringBoot监控服务器信息以及SpringBoot自带Health Indicator
SpringBoot监控服务器内存信息简介 /** * 定时任务监控服务器内存信息 */ @Component public class OsMonitorScheduleTask implement ...
- SpringBoot 服务监控机制,你了解多少?
点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/zwx900102/article/ details/115446997 前言 任何一个服务如果没有监控,那就是两眼一抹黑,无法 ...
- 虐哭java面试官--聊一聊hashmap
Java hashmap的数据结构,开发的时候从来用不到那么深,MD,每个面试官都要问一遍. 别人恶心我的时候,我要比他更恶心才行. 放心,技术一般的面试官不可能看到我这个深度的.跟他聊聊 loadF ...
- java 委托_面试官:java双亲委派机制及作用
什么是双亲委派机制 当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类. 类加载器的类别 Bootst ...
- springboot整合rocketmq_面试官:简单说一下RocketMQ整合SpringBoot吧
前言 在使用SpringBoot的starter集成包时,要特别注意版本.因为SpringBoot集成RocketMQ的starter依赖是由Spring社区提供的,目前正在快速迭代的过程当中,不同版 ...
- java监测服务器信息(cpu,内存,运行时间等),springboot监控服务器信息
目录 1.添加工程依赖 2. 依赖工具类 3. 使用 PS:工具类代码 model Cpu.java Jvm.java Mem.java Sys.java SysFile.java utils Ari ...
- 面试官问:服务的心跳机制与断线重连,Netty底层是怎么实现的?懵了
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 心跳机制 何为心跳 所谓心跳, 即在 TCP 长连接中, ...
最新文章
- 对称加密和非对称加密
- linux shell 实现自增版本号
- WinForm 窗体圆角、平角(不规则窗体)实现的几种方法
- 机器人学习--视觉定位数据集介绍
- c语言巩固,巩固一下C语言中的指针
- 【操作系统】多线程与多任务的比较
- APUE 学习笔记(三) 文件和目录
- (1)鼠标单独移动两个actor
- python列表所有元素平均值_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...
- playwright之贴吧签到
- 基于SSM框架的狼途汽车门店管理系统的设计与实现
- oracle官网一体机,沃趣科技-最新活动-oracle一体机|沃趣oracle一体机QData
- 十年•杭研大咖说 | 邱似峰:从应届生到网易视频云CTO的蜕变
- Linux安装unrar
- 什么叫句柄(Handle)?
- 会议通知html页面,【会议通知H5】送你最新会议邀请函H5教程,请点击查收!
- Avoid object allocations during draw/layout operations
- 空间面板回归模型(stata操作)
- PHP中奇葩的 ?:,??,isset,empty
- 反三角函数在matlab中怎样定义
热门文章
- HDU-4793 Collision 计算几何 解方程
- php 存储html 内容,HTML 本地存储
- python enumerate_Python中enumerate用法详解
- java parseexception_Java ParseException类代码示例
- 可以直接考甲级吗_成人高考可以考本科吗?成人高考可以考研究生吗?
- 嵌入式linux 时间同步,解决嵌入式Linux中的时区问题
- pytorch卷积神经网络_资源|卷积神经网络迁移学习pytorch实战推荐
- logback日志pattern_@Slf4j 实现日志输入到外部文件
- Ubuntu10.10的网络配置
- Arm Linux交叉编译和连接过程分析(1)