spring-boot-route(十八)spring-boot-adtuator监控应用
Spring Boot提供了良好的服务监控模块,只需要通过简单的配置便可以完成服务监控和管理。但是服务监控这块内容往往是最容易被忽略的一块内容,今天我们一起来学习一下使用spring-boot-actuator
进行服务监控。spring-boot-actuator
提供了监控端点,这些端点直接返回JSON字符串
,通过这些端点可以查询服务运行状况,为了防止端点直接暴露,一般情况下会使用安全框架,如Spring Security来管理这些端点的安全性。
一 常用的端点
端点地址 | 描述 | 默认启用 |
---|---|---|
auditevents | 获取当前应用暴露的审计事件信息 | 是 |
beans | 获取应用中所有的bean的完整关系列表 | 是 |
caches | 获取公开可以用的缓存 | 是 |
conditions | 获取自动配置条件信息,记录哪些自动配置条件通过和没通过的原因 | 是 |
configprops | 获取所有配置属性,包括默认配置,显示一个所有 @ConfigurationProperties 的整理列版本 | 是 |
env | 获取所有环境变量 | 是 |
flyway | 获取已应用的所有Flyway数据库迁移信息,需要一个或多个 Flyway Bean | 是 |
health | 获取应用程序健康指标(运行状况信息) | 是 |
httptrace | 获取HTTP跟踪信息(默认情况下,最近100个HTTP请求-响应交换)。需要 HttpTraceRepository Bean | 是 |
info | 获取应用程序信息 | 是 |
integrationgraph | 显示 Spring Integration 图。需要依赖 spring-integration-core | 是 |
loggers | 显示和修改应用程序中日志的配置 | 是 |
liquibase | 获取应用的所有Liquibase数据库迁移。需要一个或多个 Liquibase Bean | 是 |
metrics | 获取系统度量指标信息 | 是 |
mappings | 显示所有@RequestMapping路径的整理列表 | 是 |
scheduledtasks | 显示应用程序中的计划任务 | 是 |
sessions | 允许从Spring Session支持的会话存储中检索和删除用户会话。需要使用Spring Session的基于Servlet的Web应用程序 | 是 |
shutdown | 关闭应用 | 否 |
threaddump | 获取系统线程转储信息 | 是 |
默认情况下,除了shutdown
,其他端点都是启动状态。
1.1 如何使用
在项目中引入spring-boot-actuator
的依赖,就可以正常使用了
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
1.2 如何访问
/actuator+端点地址
例如想要访问health端点,则访问http://ip:port/actuator/health;
1.3 端点开启/关闭
management:
endpoint:
# 开启shutdown端点
shutdown:
enabled: true
启用/禁用所有端点
management:
endpoints:
enabled-by-default: true
1.4 端点暴露
默认情况下,只有health
和info
暴露了http端口,这些端点支持通过http
和JMX
访问,如果需要访问具体的端点则需要配置暴露。
暴露http
端点
management:
endpoints:
web:
exposure:
include: health,info
暴露JMX
端点
management:
endpoints:
jmx:
exposure:
include: health,info
二 常用端点解析
2.1 health
health
包含的健康检查项有DataSourceHealthIndicator
,DiskSpaceHealthIndicator
,MongoHealthIndicator
,ReidsHealthIndicator
,CassandraHealthIndicator
。
关闭特定的检查项配置如下,关闭redis检查项:
management:
health:
redis:
enabled: false
默认情况下health只是简单的展示了UP
和DOWN
两种状态,如果想要看详细信息,则需要配置
management:
endpoint:
health:
show-details: always
2.2 metrics
metrics
可以使用带PathVariable参数,参数为具体的度量值,如查看cpu大小,http://localhost:8080/actuator/metrics/system.cpu.count;
2.3 info
info
使用的时候需要在配置文件中自定义信息,自定义信息以info
开头。
例如在配置文件中增加如下内容:
info:
person:
name: Java旅途
age: 18
访问info
端点显示的是去掉info的一个JSON串:
person:
name: Java旅途
age: 18
Spring-Boot-acturator
使用起来很方便,但是缺点也很明显,就是没有图形化界面。使用起来也不是很友好,下一章中,我们将使用有图形化的Spring-Boot-Admin
来进行服务监控。
此是spring-boot-route系列的第十八篇文章,这个系列的文章都比较简单,主要目的就是为了帮助初次接触Spring Boot 的同学有一个系统的认识。本文已收录至我的github,欢迎各位小伙伴star
!
github:https://github.com/binzh303/spring-boot-route
点关注、不迷路
如果觉得文章不错,欢迎关注、点赞、收藏,你们的支持是我创作的动力,感谢大家。
如果文章写的有问题,请不要吝啬,欢迎留言指出,我会及时核查修改。
如果你还想更加深入的了解我,可以微信搜索「Java旅途」进行关注。回复「1024」即可获得学习视频及精美电子书。每天7:30准时推送技术文章,让你的上班路不在孤独,而且每月还有送书活动,助你提升硬实力!
spring-boot-route(十八)spring-boot-adtuator监控应用的更多相关文章
- spring boot / cloud (十八) 使用docker快速搭建本地环境
spring boot / cloud (十八) 使用docker快速搭建本地环境 在平时的开发中工作中,环境的搭建其实一直都是一个很麻烦的事情 特别是现在,系统越来越复杂,所需要连接的一些中间件也越 ...
- Spring学习(十)Spring知识点汇总
一.基础概念 Q:Spring是什么? 定义:Spring是一个轻量级的IoC(控制反转)和AOP容器框架. 目的:用于简化企业应用程序的开发,使得开发者只需要关心业务需求. 常见的配置方式: 基于X ...
- Spring实战(十)Spring AOP应用——为方法引入新功能、为对象引入新方法
切面最基本的元素是通知和切点,切点用于准确定位应该在什么地方应用切面的通知. 1.Spring借助AspectJ的切点表达式语言来定义Spring切面 在Spring中,要使用AspectJ的切点表达 ...
- Spring Boot2 系列教程(十八)Spring Boot 中自定义 SpringMVC 配置
用过 Spring Boot 的小伙伴都知道,我们只需要在项目中引入 spring-boot-starter-web 依赖,SpringMVC 的一整套东西就会自动给我们配置好,但是,真实的项目环境比 ...
- Spring Boot2 系列教程(二十八)Spring Boot 整合 Session 共享
这篇文章是松哥的原创,但是在第一次发布的时候,忘了标记原创,结果被好多号转发,导致我后来整理的时候自己没法标记原创了.写了几百篇原创技术干货了,有一两篇忘记标记原创进而造成的一点点小小损失也能接受,不 ...
- (转)Spring Boot 2 (十):Spring Boot 中的响应式编程和 WebFlux 入门
http://www.ityouknow.com/springboot/2019/02/12/spring-boot-webflux.html Spring 5.0 中发布了重量级组件 Webflux ...
- Spring Boot 2 (十):Spring Boot 中的响应式编程和 WebFlux 入门
Spring 5.0 中发布了重量级组件 Webflux,拉起了响应式编程的规模使用序幕. WebFlux 使用的场景是异步非阻塞的,使用 Webflux 作为系统解决方案,在大多数场景下可以提高系统 ...
- Spring Boot2 系列教程(八)Spring Boot 中配置 Https
https 现在已经越来越普及了,特别是做一些小程序或者公众号开发的时候,https 基本上都是刚需了. 不过一个 https 证书还是挺费钱的,个人开发者可以在各个云服务提供商那里申请一个免费的证书 ...
- Spring Security(十八):5.9 Post Processing Configured Objects
Spring Security’s Java Configuration does not expose every property of every object that it configur ...
- Spring学习(十八)Bean 的三种依赖注入方式介绍
依赖注入:让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖.接下来将详细的向大家介绍Spring容器支持的三种依赖注入的方式以及具体配置方法:• 属性注入方法• ...
随机推荐
- MVC中将枚举类型数据应用到下拉列表中的方法
例如: public enum ItemTypes { Movie = 1, Game = 2, Book = 3 } 在MVC2.0中如何将以上枚举类型使 ...
- oracle之分层查询
ORACLE分层查询start with&connect by 分层查询是select 语句的扩展,目的是迅速找出表中列-列的隶属关系. 19.1 树的遍历 ORACLE是一个关系数据库管理系 ...
- [IDEA]Java:“程序包XXX不存在”问题的三种解决方案
###三种方案 ####01 出现jar包找不到的问题,首先有可能是项目依赖中有些jar没有下载完整 而mvn idea:idea这个命令可以检查并继续下载未下载完整的依赖jar. 在命令行输入mvn ...
- 报错: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。'))
你没打开 1.双击打开 2.点击:
- pandas 使用技巧
多列展示 查看DataFrame时,列数较多会省略中间列的信息,可以设置最大展示列数,代码如下: 1 import pandas as pd 2 pd.set_option('display.max_ ...
- Java泛型中的类型参数和通配符类型
类型参数 泛型有三种实现方式,分别是泛型接口.泛型类.泛型方法,下面通过泛型方法来介绍什么是类型参数. 泛型方法声明方式:访问修饰符 <T,K,S...> 返回类型 方法名(方法参数){方 ...
- Centos-重定向方式打包、备份、还原、恢复工具-cpio
cpio 通过重定向方式将文件进行打包.备份.还原.恢复工具,扩展名为 .cpio 相关选项 -o 将文件复制.打包成文件或将将文件输出到标准输出 -i 将打包文件或者将设备上的备份还原到系统中 - ...
- Python-反向迭代和实现反向迭代
案例: 实现一个连续的浮点数发生器,FloatRange,根据给定范围(start, end) 和步进值,产生一些列的浮点数,例如:FloatRange(3,4,0.2),将产生下列序列: 正向:3. ...
- 1个LED灯闪烁的Arduino控制
控制任务和要求 让一个LED灯闪烁 接线 程序设计 1 int half_cycle=1000; // define the cycle time of LED blink 2 int LED_pin ...
- P4552 [Poetize6] IncDec Sequence
Link 题目描述 给定一个长度为 \(n\) 的数列 \({a_1,a_2,\cdots,a_n}\),每次可以选择一个区间 \([l,r]\),使这个区间内的数都加 \(1\) 或者都减 \(1\ ...