java框架之SpringBoot(17)-监控管理
介绍
SpringBoot 提供了监控管理功能的场景启动器,它可以为我们提供准生产环境下的应用监控和管理功能。我们可以通过HTTP、JMX、SSH协议来进行操作,自动得到审计、健康及指标信息等。
使用
简单测试
1、使用 maven 创建 SpringBoot 项目,选中如下场景启动器:
2、修改配置,关闭安全管理:
# 关闭安全管理 management.security.enabled=false
application.properties
3、测试:
启动项目,访问 localhost:8080/beans,可以看到应用中 IoC 容器的实例信息:
test
更多
除了上面示例的 bean 端点信息,SpringBoot 监控管理还提供了以下端点供我们查看使用:
端点名 | 描述 |
---|---|
autoconfig | 所有自动配置信息 |
auditevents | 审计事件 |
beans | 所有 bean 信息 |
configprops | 所有配置信息 |
dump | 线程状态信息 |
env | 当前环境信息 |
health | 应用健康状况 |
info | 当前应用信息 |
metrics | 应用的各项指标 |
mappings | 应用 @RequestMapping 映射路径 |
shutdown | 关闭当前应用 |
trace | 追踪信息(最新的 http 请求) |
补充
info
可以配置当前的应用信息:
info.appName=myApp info.appVerson=1.0.0
application.properties
还可以配置 git 相关信息:
git.branch=master git.commit.id=eraqedfaed git.commit.time=2018-2-4 12:23:34
git.properties
configprops
该端点可以查看当前所有配置信息:
如果想要关闭或开启某个端点,只需要在该配置信息中找到对应端点属性配置即可,比如要关闭 info 端点,先找到 info 端点配置:
修改配置文件添加如下配置:
endpoints.info.enabled=false
shutdown
该端点可以让我们远程关闭应用,不过它默认是关闭的,我们需要启用它,添加如下配置:
endpoints.shutdown.enabled=true
以 POST 方式请求该端点应用就会被远程关闭:
定制端点信息
比如我们要定制 info 端点名称,可以添加如下配置:
endpoints.info.id=appInfo
还可以定制它的访问路径:
endpoints.info.path=/path/info
如果只想开启指定端点,可以添加如下配置:
# 关闭所有端点 endpoints.enabled=false # 仅开启后续配置端点 endpoints.info.enabled=true
还可以定制所有端点的访问根路径,如:
management.context-path=/myapp
定制监控管理端口:
# 为 -1 时表示禁用管理端点 management.port=8801
健康状态检查
默认健康状态指示器
监控管理默认给我们提供了查看当期应用健康状态的功能,查看:
除了能查看默认的磁盘信息,还可以配置查看其它第三方组件的健康状态信息,比如 Redis、RabbitMQ 等,默认提供的健康状态指示器类在 org.springframework.boot.actuate 包下:
这些类在引入相应组件依赖后就会自动生效,比如引入 redis 依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
自定义健康状态指示器
编写一个监控状态指示器,注册到 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; @Component public class MyAppHealthIndicator implements HealthIndicator { @Override public Health health() { // 自定义响应信息 // return Health.up().build(); // 返回健康状态 return Health.down().withDetail("msg","服务异常").build(); } }
zze.springboot.actuatortest.health.MyAppHealthIndicator
查看:
最新文章
- UIDatePicker日期选取器
- vue.js2.0的独立构建和运行时构建
- python 模块加载
- phpcms图片模型调用组图的问题
- centos安装后iptables基本设置
- iTunesConnect进行App转移2-官方说明
- AngularJS中的http拦截
- 5. Android框架和工具之 ZXing(二维码)
- GO实例3 Slice append打印
- T - stl 的mapⅡ
- app间互相启动及传参数
- nsq源码阅读笔记之nsqd(一)——nsqd的配置解析和初始化
- c#使用资源文件完成国际化
- leetcode:Roman to Integer and Integer to Roman
- tcping 与 telnet命令粗略使用
- python --github 刷题
- python字符串str和字节数组bytes相互转化
- [Mac入门]如何在Mac下显示Finder中的所有文件
- Python图形界面开发—wxPython库的布局管理及页面切换
- 用户管理_组管理_权限管理.ziw