spring boot actuator监控详细介绍一(超级详细)
spring boot actuator介绍
Spring Boot包含许多其他功能,可帮助您在将应用程序推送到生产环境时监视和管理应用程序。
您可以选择使用HTTP端点或JMX来管理和监视应用程序。
审核,运行状况和指标收集也可以自动应用于您的应用程序。
总之Spring Boot Actuator就是一款可以帮助你监控系统数据的框架,其可以监控很多很多的系统数据,它有对应用系统的自省和监控的集成功能,可以查看应用配置的详细信息,如:
显示应用程序员的Health健康信息
显示Info应用信息
显示HTTP Request跟踪信息
显示当前应用程序的“Metrics”信息
显示所有的@RequestMapping的路径信息
显示应用程序的各种配置信息
显示你的程序请求的次数 时间 等各种信息
等等等等…总之很成熟,很强大.
使用介绍:
1. 先在pom.xml中添加依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
对于Gradle,请使用以下声明:
dependencies {compile("org.springframework.boot:spring-boot-starter-actuator")}
2. 所有的监控端点endpoints介绍:
ID | 描述 |
---|---|
auditevents | 公开当前应用程序的审核事件信息。 |
beans | 显示应用程序中所有Spring bean的完整列表。 |
caches | 暴露可用的缓存。 |
conditions | 显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。 |
configprops | 显示所有的整理列表@ConfigurationProperties,查看配置属性,包括默认配置 |
env | 露出Spring的属性的各种环境变量,后面可跟/{name}查看具体的值 |
flyway | 显示已应用的任何Flyway数据库迁移。 |
health | 显示应用健康信息,在spring boot2.0以后需要在配置里show-details打开所有健康信息 |
httptrace | 显示HTTP跟踪信息(默认情况下,最后100个HTTP请求 - 响应交换),2.0以后需要手动打开 |
info | 显示任意应用信息,是在配置文件里自己定义的 |
integrationgraph | 显示Spring Integration图。 |
loggers | 显示和修改应用程序中记录器的配置。 |
liquibase | 显示已应用的任何Liquibase数据库迁移。 |
metrics | 显示当前应用程序的“指标”信息,比如内存用量和HTTP请求计数,后可跟/{name}查看具体值 |
mappings | 显示所有@RequestMapping路径的整理列表。 |
scheduledtasks | 显示应用程序中的计划任务。 |
sessions | 允许从Spring Session支持的会话存储中检索和删除用户会话。使用Spring Session对响应式Web应用程序的支持时不可用 |
shutdown | 允许应用程序正常关闭。 |
threaddump | 执行线程转储。 |
如果您的应用程序是Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:
ID | 描述 |
---|---|
heapdump | 返回hprof堆转储文件。 |
jolokia | 通过HTTP公开JMX bean(当Jolokia在类路径上时,不适用于WebFlux)。 |
logfile | 返回日志文件的内容(如果已设置logging.file或logging.path属性)。支持使用HTTP Range标头检索部分日志文件的内容。 |
prometheus | 以可以由Prometheus服务器抓取的格式公开指标。 |
注意事项:
- 在spring boot 2.0以后,actuator默认只开启了info和health两个端点,要想使用其他的端点,需要在application.yml中打开:
management:endpoints:web:exposure:include:"*"
注意:
在这里include: “*” ,这个"“双引号是必须要,在application.properties是不需要”"双引号的,application.properties中是这样的:management.endpoints.web.exposure.include=*
而且所有的端点都以默认的路径http://localhost:8080/actuator 开始;
如我们查看info端点的信息就是访问:http://localhost:8080/actuator/info
Timestamps时间戳: 端点消耗的所有时间戳(作为查询参数或在请求正文中)必须格式化为ISO 8601中指定的偏移日期和时间 。 默认的时间戳是跟我们中国的时区不符合的.
actuator的大部分监控请求都是以get请求的.只有少数是post请求.
如果想更改默认的actuator启动路径,可以在application.yml中更改,如我们改成 http://localhost:8080/
#调整端点的前缀路径为/management:endpoints:web:base-path: /
并且health端点的信息默认也是显示的不具体的,请看默认的health是显示的什么:
"UP"就是安全健康的,"DOWN"就是有问题了.
- 在application.yml中开启所有的Heanth监控数据:
management:endpoint:health:show-details:always #显示健康具体信息 默认不会显示详细信息
我的application.yml是这样的:
现在你可以开启服务,试试这些端点的监控数据,因为我已经把监控的路径改成了 http://localhost:8088 了.所以可以直接在后面跟端点的名称,如果你没有更改路径,默认的启动路径是 http://localhost:8088/actuator/ ,然后后面才跟你要监控的端点名称:
http://localhost:8088/metrics
http://localhost:8088/mappings
端点Metrics监控的数据结果如下
这些数据都是可以监控到的,“磁盘使用率”,这个是我自定义的metrics端点信息,在下面的文章中我会教大家怎么自定义你想要的端点,如果你想看更具体的请在路径后面加上你要看的数据,/{name},如:
http://localhost:8088/metrics/jvm.memory.used
自定义info信息:
在pom.xml中添加依赖,可以访问到pom.xml的信息,如果不加这个,你在application.yml中定义的info信息是不会获取到的:
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.6</version><configuration><delimiters><delimiter>@</delimiter></delimiters><useDefaultDelimiters>false</useDefaultDelimiters></configuration></plugin>
在application.yml中这样配置:
#自定义info端点查看应用相关的信息info:encoding:@project.build.sourceEncoding@traget:@java.version@name:@project.name@description:@project.description@
访问 http://localhost:8088/info ,运行结果为:
但是如果你只想打开某个端点,我们是这样的配置的,同样式在application.yml中:
management:endpoint:端点名称:enabled: true
使用Spring Security来保证Actuator Endpoints安全:
在pom.xml中添加依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>
在application.yml中这样配置:这里是在spring boot2.0以后的版本中,在2.0之前不是这样的,稍微有差别:
# http安全机制security:user:name: lipassword: 123roles: ADMIN
然后启动你的服务,你会发现有个登录页面,需要你输入我们配置的账号密码:
需要注意,spring boot2.0以后和之前的Security配置有所不同,我有一篇文章提到了!!!
自定义端点:
首先自定义健康监测的端点Health:
自定义健康监测的端点有两种方式:
- 继承AbstractHealthIndicator类 2. 实现HealthIndicator接口。
自定义端点的文章 请看第二章节 谢谢支持
spring boot actuator监控详细介绍一(超级详细)相关推荐
- Spring Boot Actuator监控页面报错解决
今天在访问Spring Boot Actuator监控页面的时候报错了,之前都没遇到这种情况,大概的意思就是无权限访问 <html><body><h1>Whitel ...
- (转)Spring Boot (十九):使用 Spring Boot Actuator 监控应用
http://www.ityouknow.com/springboot/2018/02/06/spring-boot-actuator.html 微服务的特点决定了功能模块的部署是分布式的,大部分功能 ...
- 使⽤用 Spring Boot Actuator 监控应⽤
1.美图 2.概述 微服务的特点决定了功能模块的部署是分布式的,⼤部分功能模块都是运行在不同的机器上,彼此通过服务调⽤进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现异常如何快速定位便成为 ...
- Spring Boot Actuator [监控与管理]
1. 如何添加 2. actuator 的原生端点(API) 2.1 应用类配置 2.1.1 http://localhost:8080/actuator/conditions 2.1.2 http: ...
- SpringBoot 集成Spring Boot Actuator 监控管理
spring-boot-starter-actuator功能简介 根据应用依赖和配置自动创建出来的监控和管理端点.通过这些端点,我们可以实时获取系统应用的各项监控指标. spring-boot-sta ...
- Spring Boot Actuator监控关闭
可以使用如下属性:management.endpoints.enabled-by-default=false * 在YAML中有特殊的含义,所以如果想使用include或者exclude包含所有的端点 ...
- 服务监控 Spring Boot Actuator 介绍
服务监控 Spring Boot Actuator 介绍 1. 概述 在本文中,我们将介绍Spring Boot Actuator.首先介绍一些Actuator的基础知识,然后详细讨论Spring B ...
- 如何将 Spring Boot Actuator 的指标信息输出到 InfluxDB 和 Prometheus
来源:SpringForAll社区 Spring Boot Actuator是Spring Boot 2发布后修改最多的项目之一.它经过了主要的改进,旨在简化定制,并包括一些新功能,如支持其他Web技 ...
- 高级版的 jvisualvm :Spring Boot Admin 监控 Spring Boot 微服务项目
前奏:先说一下 Java VisualVM Java VisualVM 是一个能够监控 JVM 的 jdk 自带的图形化工具: 在 $JAVA_HOME/bin 目录下,可直接运行它. 要想监控远程服 ...
最新文章
- CVPR2020论文解读:3D Object Detection三维目标检测
- 10Prototype(原型)模式
- html5 postMessage解决跨域、跨窗口消息传递
- 如何让Ubuntu系统支持WebP图片格式
- 架构师成长系列 | 从 2019 到 2020,Apache Dubbo 年度回顾与总结
- java 编程题_最新JAVA编程题全集(50题及答案)92862
- [hbase]Hbase 在HDFS上的目录树结构
- 读书笔记_量化交易如何建立自己的算法交易04
- 工控补丁星期二:西门子、施耐德电气修复40个漏洞
- 事务(进程 ID )与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务...
- js动态填充select
- MongoDB for MAC 下载及安装
- 如何压缩ppt文件,这个方法你该知道
- 百练_3709:2进制转化为3进制
- 产品读书《科技想要什么》KK
- wstmart知识记录
- pytorch dataset自定义_PyTorch 系列 | 数据加载和预处理教程
- Elasticsearch 中的骚操作你确定不看看?
- uniapp引入dcloud中的组件
- Springcloud之OAuth2
热门文章
- 利用在线HTTP接口测试工具ApiPost,模拟移动端请求API接口
- java datarow_将通用列表/可枚举DataRow添加到DataTable?
- 什么是全栈测试工程师?
- 事后控制不如事中控制,事中控制不如事前控制 。
- 大疆新品:DJI MAVIC MINI
- 优漫动游B端UI设计师的交互文档应该怎么写?
- 西门子s7-400闭环控制模块_西门子S7-1200plc怎么样?具体功能如何?
- JavaScript实现曼德勃罗(Mandelbrot)集合
- C++ OpenCV 自带颜色表操作
- UR机械臂学习(5-1):驱动真实机械臂准备工作——示教器配置