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 支持页面与类文件的热部署 ...
随机推荐
- PyCharm + PyQt4 环境搭建
一.准备工作 下载pycharm 和 pyqt4 (百度下就有) pyqt4安装好后,在C:\Python27\Lib\site-packages\PyQt4 路径下会有designer.exe ,这 ...
- HTTP的连接过程
一.HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1.域名解析 2.发起TCP的3次握手 3. Web浏览器向Web服务器发送http请求命令 ...
- Activiti手动执行的应用(UserTask)
工作流模拟某公司请假流程情景如下: 1.开发人员请假流程,如果开发人员请假,如果请假天数小于3天,组长批准,人事批准即可请假. 2.如果请假大约三天,需要项目经理或者产品经理批准,并且项目总监 ...
- H5新特性实现对class的增删改
直接撸代码 全靠死记硬背 没什么技术点 HTML部分 <!DOCTYPE html> <html lang="en"> <head> <m ...
- JavaScipt 中的事件循环(event loop),以及微任务 和宏任务的概念
说事件循环(event loop)之前先要搞清楚几个问题. 1. js为什么是单线程的? 试想一下,如果js不是单线程的,同时有两个方法作用dom,一个删除,一个修改,那么这时候浏览器该听谁的? ...
- TNetHTTPClient 使用
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...
- bluemix部署(二)构建kubernetes工作环境
本文接上篇.在bluemix中构建kubernetes容器. 1.创建集群 左上角的三横,选容器,然后创建集群. 注意区域,免费版,给个名字,创建集群吧. 继续正在部署,这个可能要15-30分钟,真不 ...
- VSTO:使用C#开发Excel、Word【8】
office加载项Office开发中使用的第二种模式是加载项模式.本书涵盖了几种Office加载项.其中包括Outlook的VSTO加载项,Excel和Word的COM加载项以及Excel的自动化加载 ...
- python笔记1-基础概念、python安装使用配置
Python 1.基础概念 一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学.在1989诞生,Guido(龟叔)开发.这里的python并不 ...
- Html.DropDownList()的用法
页面代码如下: <%= Html.DropDownList("Category", ViewData["Categories"] as SelectLis ...