Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 应用监控
文章目录
Spring Boot 提供运行时的应用监控和管理功能。本文,我们通过 HTTP 实现对应用的监控和管理。
快速开始
Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控、类加载、健康监控等。
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
如果,使用 HTTP 调用的方式,还需要 spring-boot-starter-web 依赖。
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
监控和管理端点
以最新的 Spring Boot 的版本 1.4.3 为准,列出目前支持的监控。
| HTTP方法 | 路径 | 描述 |
|---|---|---|
| GET | /actuator | 查看所有EndPoint的列表,需要加入 Spring HATEOAS 支持 |
| GET | /autoconfig | 查看应用的自动配置的使用情况 |
| GET | /beans | 查看应用的所有Bean的信息 |
| GET | /configprops | 查看应用的所有配置属性 |
| GET | /dump | 查看应用的线程状态信息 |
| GET | /env | 查看应用的所有环境信息 |
| GET | /flyway | 查看已经有迁徙路线数据库迁移 |
| GET | /health | 查看应用健康指标 |
| GET | /info | 查看应用信息 |
| GET | /liquibase | 查看已经有liquibase数据库迁移应用 |
| GET | /mappings | 查看所有url映射 |
| GET | /metrics | 查看应用基本指标 |
| POST | /shutdown | 允许优雅关闭当前应用(默认情况下不启用) |
| GET | /trace | 查看基本的HTTP跟踪信息 |
| GET | /docs | 查看文档,需要依赖 spring-boot-actuator-docs |
| GET | /heapdump | 返回一个gzip压缩 hprof 堆转储文件 |
| GET | /jolokia | 暴露JMX bean(当jolokia路径) |
| GET | /logfile | 查看日志文件的内容(如果logging.file或logging.path属性已设置)。支持使用对HTTP范围标头到日志文件的部分恢复内容。 |
health 应用健康指标
我们可以通过 http://localhost:8080/health , 统计系统的状况,默认里面目前只有系统状况和磁盘状况。这些检测器都通过 HealthIndicator 接口实现,下篇文章,我会讲解到通过 HealthIndicator 接口实现自定义健康检测。
info 查看应用信息
默认情况下,只会返回一个空的 json 内容。我们可以在 application.properties 配置文件中通过 info 前缀来设置一些属性。
- info.author.realname=梁桂钊
- info.author.nickname=LiangGzone
我们也可以在 application.yml 配置文件中设置一些属性。
- info.author:
- email: lianggzone@163.com
- blog: http://blog.720ui.com
metrics 应用基本指标
我们可以通过 http://localhost:8080/metrics, 获取当前应用的各类重要度量指标,比如:内存信息、线程信息、垃圾回收信息等。
我们还可以通过 /metrics/{name} 接口来更细粒度的获取度量信息,比如我们可以通过访问 /metrics/mem.free 来获取当前可用内存数量。
trace 基本的HTTP跟踪信息
查看基本的 HTTP 跟踪信息。默认情况下,跟踪信息的存储采用 org.springframework.boot.actuate.trace.InMemoryTraceRepository 实现的内存方式,始终保留最近的 100 条请求记录。
shutdown关闭当前应用
shutdown 端点默认是不启用的,我们可以在 application.properties 中开启。此外,shutdown 端点不支持 GET 请求,我们需要通过 POST 方法访问。
- endpoints.shutdown.enabled=true
定制端点
端点可以在 Spring Boot 配置文件中进行定制。例如,上面,我们开启 shutdown 端点。
- endpoints.shutdown.enabled=true
端点的前缀是,endpoints + “.”+ 端点名。
默认的端点访问路径是根目录下,我们可以通过修改配置,进行定制。
- management.context-path=/manage
此时,我们的访问地址就变成: http://localhost:8080/manage/info
此外,默认监控的接口端口和业务的端口是一致的,我们出于安全性考虑,可以改变端点的访问的端口。
- management.port=9090
我们甚至可以关闭 http 端点。
- management.port=-1
源代码
相关示例完整代码: springboot-action
(完)
如果觉得我的文章对你有帮助,请随意打赏。

- 版权声明:本文由 梁桂钊 发表于 梁桂钊的博客
- 转载声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证),非商业转载请注明作者及出处,商业转载请联系作者本人。
- 文章标题:Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 应用监控
- 文章链接:http://blog.720ui.com/2017/springboot_09_actuator_http/
Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 应用监控的更多相关文章
- Spring Boot 揭秘与实战(九) 应用监控篇 - 自定义监控端点
文章目录 1. 继承 AbstractEndpoint 抽象类 2. 创建端点配置类 3. 运行 4. 源代码 Spring Boot 提供的端点不能满足我们的业务需求时,我们可以自定义一个端点. 本 ...
- Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 健康监控
文章目录 1. 内置 HealthIndicator 监控检测 2. 自定义 HealthIndicator 监控检测 3. 源代码 Health 信息是从 ApplicationContext 中所 ...
- Spring Boot 揭秘与实战(一) 快速上手
文章目录 1. 简介 1.1. 什么是Spring Boot 1.2. 为什么选择Spring Boot 2. 相关知识 2.1. Spring Boot的spring-boot-starter 2. ...
- Spring Boot 揭秘与实战 附录 - Spring Boot 公共配置
Spring Boot 公共配置,配置 application.properties/application.yml 文件中. 摘自:http://docs.spring.io/spring-boot ...
- Spring Boot 揭秘与实战 自己实现一个简单的自动配置模块
文章目录 1. 实战的开端 – Maven搭建 2. 参数的配置 - 属性参数类 3. 真的很简单 - 简单的服务类 4. 自动配置的核心 - 自动配置类 5. spring.factories 不要 ...
- Spring Boot 揭秘与实战 源码分析 - 工作原理剖析
文章目录 1. EnableAutoConfiguration 帮助我们做了什么 2. 配置参数类 – FreeMarkerProperties 3. 自动配置类 – FreeMarkerAutoCo ...
- Spring Boot 揭秘与实战 源码分析 - 开箱即用,内藏玄机
文章目录 1. 开箱即用,内藏玄机 2. 总结 3. 源代码 Spring Boot提供了很多”开箱即用“的依赖模块,那么,Spring Boot 如何巧妙的做到开箱即用,自动配置的呢? 开箱即用,内 ...
- Spring Boot 揭秘与实战(八) 发布与部署 - 远程调试
文章目录 1. 依赖 2. 部署 3. 调试 4. 源代码 设置远程调试,可以在正式环境上随时跟踪与调试生产故障. 依赖 在 pom.xml 中增加远程调试依赖. <plugins> &l ...
- Spring Boot 揭秘与实战(八) 发布与部署 - 开发热部署
文章目录 1. spring-boot-devtools 实现热部署 2. Spring Loaded 实现热部署 3. 模板文件热部署 4. 源代码 Spring Boot 支持页面与类文件的热部署 ...
随机推荐
- 11204RAC-dbca建库脚本
SET VERIFY OFFconnect "SYS"/"&&sysPassword" as SYSDBAset echo onspool /u ...
- laravel响应的发送和程序终止
响应的发送是通过index.php中的$response->send();实现的 vendor\symfony\http-foundation\Response.php public funct ...
- Oracle 11.2.0.4.0 Dataguard部署和日常维护(4)-Datauard Gap事件解决篇
Oracle dataguard主库删除备库需要的归档时,会导致gap事情的产生,或者备库由于网络或物理故障原因,倒是备库远远落后于主库,都会产生gap事件,本例模拟gap事件的产生以及处理. 1. ...
- 使用AdminLTE 在content区,打开相应网页
参考:https://bbs.csdn.net/topics/391846671 问: 比如打开starter.html,然后点击其左边栏的链接(如user.html)的时候,怎么实现在右边的cont ...
- 【LeetCode】数值运算(除法、乘方)
C/C++数字范围(32位系统) ~ // 1 字节 char // 1 字节 ~ // 2 字节 - // 4 字节 unsigned: - // 4 字节 size_t: ~ // 4 字节 - ...
- linux服务器磁盘扩容的方法
1.系统环境如下图: 2.为该系统添加一块新的虚拟硬盘,添加后需重启虚拟机,否则系统不识别:如下图,/dev/sdc 是新添加的硬盘: 3.fdisk /dev/sdc为新硬盘创建分区: 4.Linu ...
- Python3组播通信编程实现教程(发送者+接收者)
一.说明 1.1 标准组播解释 通信分为单播.多播(即组播).广播三种方式 单播指发送者发送之后,IP数据包被路由器发往目的IP指定的唯一一台设备的通信形式,比如你现在与web服务器通信就是单播形式 ...
- python中的包
- webpack+typescript
1. npm install --save typescript 2. npm install --save ts-loader webpack.config.js module.exports = ...
- day05 数据类型
一.整形int 基本使用: 1,用途:记录年龄\等级\各种号码 2定义方式: age=18 age =int(18) x =int(‘123’)#只能将纯数字的字符串转换成整形 print(t ...