Spring Boot 提供运行时的应用监控和管理功能。本文,我们通过 HTTP 实现对应用的监控和管理。

快速开始

Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控、类加载、健康监控等。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-actuator</artifactId>
  4. </dependency>

如果,使用 HTTP 调用的方式,还需要 spring-boot-starter-web 依赖。

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </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 前缀来设置一些属性。

  1. info.author.realname=梁桂钊
  2. info.author.nickname=LiangGzone

我们也可以在 application.yml 配置文件中设置一些属性。

  1. info.author:
  2. email: lianggzone@163.com
  3. 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 方法访问。

  1. endpoints.shutdown.enabled=true

定制端点

端点可以在 Spring Boot 配置文件中进行定制。例如,上面,我们开启 shutdown 端点。

  1. endpoints.shutdown.enabled=true

端点的前缀是,endpoints + “.”+ 端点名。

默认的端点访问路径是根目录下,我们可以通过修改配置,进行定制。

  1. management.context-path=/manage

此时,我们的访问地址就变成: http://localhost:8080/manage/info

此外,默认监控的接口端口和业务的端口是一致的,我们出于安全性考虑,可以改变端点的访问的端口。

  1. management.port=9090

我们甚至可以关闭 http 端点。

  1. management.port=-1

源代码

相关示例完整代码: springboot-action

(完)

如果觉得我的文章对你有帮助,请随意打赏。

最新文章

  1. Android InputStream接收 字符串乱码 问题
  2. SQL Server 通过重建方式还原 master 数据库
  3. Java 9终于要包含Jigsaw项目了
  4. Apache配置文件httpd.conf内容翻译
  5. BEvent_客制化BusinessEvent通过Workflow Event接受消息传递(案例)
  6. Composer -- PHP依赖管理的用法
  7. Linux下去掉^M的方法
  8. VM虚拟机下CentOS 6.5配置IP地址的三种方法
  9. Boost Thread学习笔记五
  10. As3.0 类的【枚举】
  11. PHP初体验
  12. vs2015未安装 Style 的 Visual Studio 语言支持
  13. Java十二周总结
  14. java多线程的几种状态
  15. python之定义参数模块argparse(一)基本使用
  16. .net Core 调用微信Jsapi接口,H5解析二维码
  17. Codeforces Round #485 (Div. 2) A. Infinity Gauntlet
  18. (stripTrailingZeros)A == B hdu2054
  19. 即时通信系统中实现聊天消息加密,让通信更安全【低调赠送:C#开源即时通讯系统(支持广域网)——GGTalk4.5 最新源码】
  20. Hadoop HBase概念学习系列之HFile(二十)

热门文章

  1. 非常不错的地区三级联动,js简单易懂。封装起来了
  2. 【转】vs IIS破除文件上传限制最全版
  3. stund客户端使用结果说明
  4. python3+pyshark读取wireshark数据包并追踪telnet数据流
  5. SecureCRT修改显示行数
  6. Redis入门第一课
  7. ci框架url去掉index.php
  8. MyBatis 为什么需要通用 Mapper ?
  9. python 学习 模块
  10. Python Oracle连接与操作封装