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 支持页面与类文件的热部署 ...
随机推荐
- Oracle 数据库中查看表空间的2种方法
在Oracle数据库中查看表空间使用状况是我们在实际应用中经常涉及到的,以下的内容就就是对Oracle 数据库中查看表空间使用状况时所要用到的SQL的描述,希望你能从中获得自己想要的东西. Oracl ...
- weblogic创建domain教程
1.创建domain [ls@ls ~]$ cd /weblogic/wlserver_10.3/common/bin/ #进入创建文件所在目录 [ls@ls bin]$ ./config.sh #执 ...
- [转]java nio解决半包 粘包问题
java nio解决半包 粘包问题 NIO socket是非阻塞的通讯模式,与IO阻塞式的通讯不同点在于NIO的数据要通过channel放到一个缓存池ByteBuffer中,然后再从这个缓存池中读出数 ...
- JavaScript应用于asp开发场景
JavaScript应用于asp开发场景 演示代码示例: <%Path="../"%> <!--#include file="../../Inc/Con ...
- Spring boot异常统一处理方法:@ControllerAdvice注解的使用、全局异常捕获、自定义异常捕获
一.全局异常 1.首先创建异常处理包和类 2.使用@ControllerAdvice注解,全局捕获异常类,只要作用在@RequestMapping上,所有的异常都会被捕获 package com.ex ...
- django_rq无法监听两个队列问题
django_rq是为django集成redis队列,这个用的少,一般会选择celery,没办法项目中用到了.用起来很简单,配置可以参考官方文档:https://pypi.org/project/dj ...
- OOP⑶
/** * 学生类 * ctrl+o 查询本类的所有属性 和方法 */ public class Student { int age; // 年龄 String name; // 姓名 // 自己创建 ...
- oo作业总结报告2
第五次作业 多线程电梯 多线程同步和控制的设计策略 明确类和对象,以及是否区分对象实例.具体类可以从类图中看出: 明确线程的类型和数量.输入作为一个线程,调度作为一个线程,三个电梯独立工作,互不影响, ...
- 【资料搜集】Python学习
python学习手册 | 演道网 http://dev.go2live.cn/python/python%e5%ad%a6%e4%b9%a0%e6%89%8b%e5%86%8c.html
- Linux系统命令行中vim编辑器取消高亮显示
由于在使用vim编辑代码的时候不小心忘记首先输入i(insert)模式,导致写的代码出现了棕黄色的阴影显示 摸索了很久终于找到了解决方法: 1.退出vim编译器 2.在在命令行下输入:nohl,回车 ...