目录

前言

任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服务来说,监控都是必不可少的。

就目前而言,大部分微服务应用都是基于 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服务监控机制相关推荐

  1. 面试官:聊一聊SpringBoot服务监控机制

    面试官:聊一聊SpringBoot服务监控机制 前言 SpringBoot 监控 HTTP Endpoints 监控 内置端点 health 端点 loggers 端点 metrics 端点 自定义监 ...

  2. 面试官:聊一聊 Spring Boot 服务监控机制

    欢迎关注方志朋的博客,回复"666"获面试宝典 任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服 ...

  3. SpringBoot监控服务器信息以及SpringBoot自带Health Indicator

    SpringBoot监控服务器内存信息简介 /** * 定时任务监控服务器内存信息 */ @Component public class OsMonitorScheduleTask implement ...

  4. SpringBoot 服务监控机制,你了解多少?

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/zwx900102/article/ details/115446997 前言 任何一个服务如果没有监控,那就是两眼一抹黑,无法 ...

  5. 虐哭java面试官--聊一聊hashmap

    Java hashmap的数据结构,开发的时候从来用不到那么深,MD,每个面试官都要问一遍. 别人恶心我的时候,我要比他更恶心才行. 放心,技术一般的面试官不可能看到我这个深度的.跟他聊聊 loadF ...

  6. java 委托_面试官:java双亲委派机制及作用

    什么是双亲委派机制 当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类. 类加载器的类别 Bootst ...

  7. springboot整合rocketmq_面试官:简单说一下RocketMQ整合SpringBoot吧

    前言 在使用SpringBoot的starter集成包时,要特别注意版本.因为SpringBoot集成RocketMQ的starter依赖是由Spring社区提供的,目前正在快速迭代的过程当中,不同版 ...

  8. java监测服务器信息(cpu,内存,运行时间等),springboot监控服务器信息

    目录 1.添加工程依赖 2. 依赖工具类 3. 使用 PS:工具类代码 model Cpu.java Jvm.java Mem.java Sys.java SysFile.java utils Ari ...

  9. 面试官问:服务的心跳机制与断线重连,Netty底层是怎么实现的?懵了

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 心跳机制 何为心跳 所谓心跳, 即在 TCP 长连接中, ...

最新文章

  1. 对称加密和非对称加密
  2. linux shell 实现自增版本号
  3. WinForm 窗体圆角、平角(不规则窗体)实现的几种方法
  4. 机器人学习--视觉定位数据集介绍
  5. c语言巩固,巩固一下C语言中的指针
  6. 【操作系统】多线程与多任务的比较
  7. APUE 学习笔记(三) 文件和目录
  8. (1)鼠标单独移动两个actor
  9. python列表所有元素平均值_【全网最简单Python教程】--10.列表元素的索引和返回索引值(Index函数使用)...
  10. playwright之贴吧签到
  11. 基于SSM框架的狼途汽车门店管理系统的设计与实现
  12. oracle官网一体机,沃趣科技-最新活动-oracle一体机|沃趣oracle一体机QData
  13. 十年•杭研大咖说 | 邱似峰:从应届生到网易视频云CTO的蜕变
  14. Linux安装unrar
  15. 什么叫句柄(Handle)?
  16. 会议通知html页面,【会议通知H5】送你最新会议邀请函H5教程,请点击查收!
  17. Avoid object allocations during draw/layout operations
  18. 空间面板回归模型(stata操作)
  19. PHP中奇葩的 ?:,??,isset,empty
  20. 反三角函数在matlab中怎样定义

热门文章

  1. HDU-4793 Collision 计算几何 解方程
  2. php 存储html 内容,HTML 本地存储
  3. python enumerate_Python中enumerate用法详解
  4. java parseexception_Java ParseException类代码示例
  5. 可以直接考甲级吗_成人高考可以考本科吗?成人高考可以考研究生吗?
  6. 嵌入式linux 时间同步,解决嵌入式Linux中的时区问题
  7. pytorch卷积神经网络_资源|卷积神经网络迁移学习pytorch实战推荐
  8. logback日志pattern_@Slf4j 实现日志输入到外部文件
  9. Ubuntu10.10的网络配置
  10. Arm Linux交叉编译和连接过程分析(1)