Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 应用监控

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

博客地址:blog.720ui.com/

快速开始

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

(完)

更多精彩文章,尽在「服务端思维」微信公众号!

《Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 应用监控》

    原文作者:HTTP
    原文地址: https://juejin.im/post/587d5f225c497d0058b09eee
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞