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容器支持的三种依赖注入的方式以及具体配置方法:• 属性注入方法• ...
随机推荐
- 容器服务 TKE 上服务暴露的几种方式
预备知识 1. K8S 上 Service 类型 ClusterIP 通过集群的内部 IP 暴露服务,选择该值,服务只能够在集群内部可以访问,这也是默认的 ServiceType. NodePort ...
- Django总结(Django十一)
总结一下自己在完成毕设时写的Django博客: Django的初步启动 pycharm+Django启动我的第一个页面 Django+bootstrap启动登录模板页面 Django中 < a ...
- oracle之二实例与数据库
实例与数据库 1.Oracle 网络架构及应用环境 看PPT,Oracle结构的基本单元.术语 2.Oracle 体系结构 1)oracle server :database + instanc ...
- 如何使用 TDengine 2.0 最新开源的集群功能?
导读:8月3日,TDengine 发布了 v2.0 版本,这次更新最大的亮点是,我们将分布式集群功能开源.开源后,引起了很大反响,又连续几天在 GitHub 趋势榜排名第一.不少关注TDengine的 ...
- 必应API接口nodejs版
近期,在研究百度.必应.API等的url提交API时,发现有用Go语言做工具的大佬的分享 利用 API 自动向搜索引擎提交网址(Go语言版) - pyList. 其中提到bing API提交方法,并给 ...
- jenkins结合cygwin软件实现从centos发布代码rsync到windows server2019的过程
jenkins结合cygwin软件实现从centos发布代码rsync到windows server2019的过程 1.下载cygwin这个软件打开https://cygwin.com/install ...
- 一文带你熟悉JAVA IO这个看似很高冷的菇凉
Java IO 是一个庞大的知识体系,很多人学着学着就会学懵了,包括我在内也是如此,所以本文将会从 Java 的 BIO 开始,一步一步深入学习,引出 JDK1.4 之后出现的 NIO 技术,对比 N ...
- tkMybatis和Mybatis Generator的结合使用
tkMybatis配置 tkmybatis是基于Mybatis框架开发的一个工具,通过调用它提供的方法实现对单表的数据操作,以免写任何sql语句. tkMybatis通常与Mybatis以及Mybat ...
- 1.UiPath账密安全保存常见方法
今天在写流程的时候突然用到密码保存,看到同事不同项目中所用到的方法不同,就看了一下别的同学博客,总结的特别好,自己跟着实操了一遍,受益匪浅. RPA适合于登录不同的系统代替人工操作,而登录系统时难免要 ...
- TIDB 笔记
整体架构: