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容器支持的三种依赖注入的方式以及具体配置方法:• 属性注入方法• ...
随机推荐
- 添加到web.config文件里的用户自定义翻页控件
<pages> <controls> <add tagPrefix="ucl" tagName="Pager_Backstage" ...
- 《Offer一箩筐》2W字总结面试套路14问——不给例子的教程都是耍流氓!!
「MoreThanJava」 宣扬的是 「学习,不止 CODE」. 如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! Hi~ 这里是 ...
- 常用的Websocket技术一览
1. 前言 Websocket是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议.WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据 ...
- 第3章 02 python字符串类型及操作
字符串切片 取字符串从结尾到开头,相当于字符串逆序 转义符 转义符表达特定字符的本意 转义符 \“ ----> ” 字符串操作符 例子: 获取星期字符串 定义星期 获取用户 ...
- 分布式文件系统之FastDFS安装部署
前面我们了解了分布式文件系统mogilefs的框架以及安装部署和简单使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/tag/MogileFS/:今天我们来了解下 ...
- Flutter学习四之实现一个支持刷新加载的列表
上一篇文章用Scaffold widget搭建了一个带底部导航栏的的项目架构,这篇文章就来介绍一下在flutter中怎么实现一个带下拉刷新和上拉加载更多的一个列表,这里用到了pull_to_refre ...
- 空间向量变换,以及OpenGL的glm库简单应用
测试项目请查看GitHub库 GLBIproject2/GLBIProject2_2
- 数据库图形表Navicat Premium
1.什么是数据库? 存储数据,为了方便查询和使用 web时代使用最广泛的关系型数据库 2.历史: 瑞典公司开发,卖给SUN,SUN又卖给ORACLE 开源,免费,支持多平台 3.数据库图形表Navic ...
- IdentityServer4系列 | 初识基础知识点
前言 我们现在日常生活中,会使用各式各样的应用程序,层出不穷,其中有基于网页浏览方式的应用,有基于手机端的App,甚至有基于流行的公众号和小程序等等,这些应用,我们不仅要实现各个应用的功能之外,还要考 ...
- Java知识系统回顾整理01基础07类和对象01引用
一.引用的定义 引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用. 二.引用和指向 new Hero(); 代表创建了一个Hero对象 但是也仅仅是创建了一个对象,没有办法 ...