首页 技术 正文
技术 2022年11月18日
0 收藏 558 点赞 3,913 浏览 1976 个字

介绍

SpringBoot 提供了监控管理功能的场景启动器,它可以为我们提供准生产环境下的应用监控和管理功能。我们可以通过HTTP、JMX、SSH协议来进行操作,自动得到审计、健康及指标信息等。

使用

简单测试

1、使用 maven 创建 SpringBoot 项目,选中如下场景启动器:

java框架之SpringBoot(17)-监控管理

2、修改配置,关闭安全管理:

# 关闭安全管理management.security.enabled=false 

application.properties

3、测试:

启动项目,访问 localhost:8080/beans,可以看到应用中 IoC 容器的实例信息:

java框架之SpringBoot(17)-监控管理

test

更多

除了上面示例的 bean 端点信息,SpringBoot 监控管理还提供了以下端点供我们查看使用:

端点名 描述
autoconfig 所有自动配置信息
auditevents 审计事件
beans 所有 bean 信息
configprops 所有配置信息
dump 线程状态信息
env 当前环境信息
health 应用健康状况
info 当前应用信息
metrics 应用的各项指标
mappings 应用 @RequestMapping 映射路径
shutdown 关闭当前应用
trace 追踪信息(最新的 http 请求)

补充

info

可以配置当前的应用信息:

info.appName=myAppinfo.appVerson=1.0.0

application.properties

java框架之SpringBoot(17)-监控管理

还可以配置 git 相关信息:

git.branch=mastergit.commit.id=eraqedfaedgit.commit.time=2018-2-4 12:23:34

git.properties

java框架之SpringBoot(17)-监控管理

configprops

该端点可以查看当前所有配置信息:

java框架之SpringBoot(17)-监控管理

如果想要关闭或开启某个端点,只需要在该配置信息中找到对应端点属性配置即可,比如要关闭 info 端点,先找到 info 端点配置:

java框架之SpringBoot(17)-监控管理

修改配置文件添加如下配置:

endpoints.info.enabled=false

shutdown

该端点可以让我们远程关闭应用,不过它默认是关闭的,我们需要启用它,添加如下配置:

endpoints.shutdown.enabled=true

以 POST 方式请求该端点应用就会被远程关闭:

java框架之SpringBoot(17)-监控管理

定制端点信息

比如我们要定制 info 端点名称,可以添加如下配置:

endpoints.info.id=appInfo

java框架之SpringBoot(17)-监控管理

还可以定制它的访问路径:

endpoints.info.path=/path/info

java框架之SpringBoot(17)-监控管理

如果只想开启指定端点,可以添加如下配置:

# 关闭所有端点endpoints.enabled=false# 仅开启后续配置端点endpoints.info.enabled=true

还可以定制所有端点的访问根路径,如:

management.context-path=/myapp

java框架之SpringBoot(17)-监控管理

定制监控管理端口:

# 为 -1 时表示禁用管理端点management.port=8801

java框架之SpringBoot(17)-监控管理

健康状态检查

默认健康状态指示器

监控管理默认给我们提供了查看当期应用健康状态的功能,查看:

java框架之SpringBoot(17)-监控管理

除了能查看默认的磁盘信息,还可以配置查看其它第三方组件的健康状态信息,比如 Redis、RabbitMQ 等,默认提供的健康状态指示器类在 org.springframework.boot.actuate 包下:

java框架之SpringBoot(17)-监控管理

这些类在引入相应组件依赖后就会自动生效,比如引入 redis 依赖:

<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-data-redis</artifactId></dependency>

java框架之SpringBoot(17)-监控管理

自定义健康状态指示器

编写一个监控状态指示器,注册到 IoC 容器:

package zze.springboot.actuatortest.health;import org.springframework.boot.actuate.health.Health;import org.springframework.boot.actuate.health.HealthIndicator;import org.springframework.stereotype.Component;@Componentpublic class MyAppHealthIndicator implements HealthIndicator {    @Override    public Health health() {        // 自定义响应信息        // return Health.up().build(); // 返回健康状态        return Health.down().withDetail("msg","服务异常").build();    }}

zze.springboot.actuatortest.health.MyAppHealthIndicator

查看:

java框架之SpringBoot(17)-监控管理

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731