介绍

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

查看:

java框架之SpringBoot(17)-监控管理的更多相关文章

  1. SpringBoot集成监控管理

    (1).添加starter依赖 <dependency> <groupId>org.springframework.boot</groupId> <artif ...

  2. java框架之SpringBoot(1)-入门

    简介 Spring Boot 用来简化 Spring 应用开发,约定大于配置,去繁从简,just run 就能创建一个独立的.产品级别的应用. 背景: J2EE 笨重的开发.繁多的配置.低下的开发效率 ...

  3. java框架之SpringBoot(3)-日志

    市面上的日志框架 日志抽象层 日志实现 JCL(Jakarta Commons Logging).SLF4J(Simple Logging Facade For Java).JBoss-Logging ...

  4. java框架之SpringBoot(9)-数据访问及整合MyBatis

    简介 对于数据访问层,无论是 SQL 还是 NOSQL,SpringBoot 默认采用整合 SpringData 的方式进行统一处理,添加了大量的自动配置,引入了各种 Template.Reposit ...

  5. java框架之SpringBoot(14)-任务

    使用 maven 创建 SpringBoot 项目,引入 Web 场景启动器. 异步任务 1.编写异步服务类,注册到 IoC 容器: package zze.springboot.task.servi ...

  6. 【java框架】SpringBoot(5)--SpringBoot整合分布式Dubbo+Zookeeper

    1.理论概述 1.1.分布式 分布式系统是若干独立计算机的集合,这些计算机对于用户来讲就像单个系统. 由多个系统集成成一个整体,提供多个功能,组合成一个板块,用户在使用上看起来是一个服务.(比如淘宝网 ...

  7. java框架之SpringBoot(2)-配置

    规范 SpringBoot 使用一个全局的配置文件,配置文件名固定为 application.properties 或 application.yml .比如我们要配置程序启动使用的端口号,如下: s ...

  8. java框架之SpringBoot(4)-资源映射&thymeleaf

    资源映射 静态资源映射 查看 SpringMVC 的自动配置类,里面有一个配置静态资源映射的方法: @Override public void addResourceHandlers(Resource ...

  9. java框架之SpringBoot(5)-SpringMVC的自动配置

    本篇文章内容详细可参考官方文档第 29 节. SpringMVC介绍 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty,Undertow 或 Netty ...

随机推荐

  1. uni-app hbuilderX ios离线打包,启动图修改没反应

    最后还是没反应 删除app从新安装, 可参考https://www.jianshu.com/p/47c1377c61d6

  2. windows10 php7安装mongodb 扩展及其他扩展的思路

    1. 打开phpinfo 查看 nts(非线程) 还是 ts (线程),然后查看操作位数 注: 86 等于 32 位 ,和你的windows系统64 or 32位无关.比如我的: 2. 下载对应的版本 ...

  3. redis数据备份与恢复

    1.启动redis 进入redis目录 redis-cli 2.数据备份 redis 127.0.0.1:6379> SAVE 该命令将在 redis 备份目录中创建dump.rdb文件. 3. ...

  4. Jmeter性能测试之关联(三)

    介绍下性能测试很重要的一个知识点---关联, 很多时候程序会在上一个请求随机生成一串字符串, 作为下一个请求的入参验证点, 其实就是动态的入参, 这个时候就需要用到关联, 常用的关联技术就是正则表达式 ...

  5. vs2017 winform打包

    如果没有Visual Studio Installer 说明没有安装打包插件 安装打包插件:Microsoft Visual Studio 2017 Installer Projects 工具 --& ...

  6. vue在jsx中使用for循环

    return <div domPropsInnerHTML="titles" style={{ color: 'red', fontSize: '14px' }}> { ...

  7. maya cmds pymel undoInfo chunk 撤销束

    maya cmds pymel undoInfo chunk 撤销束 cmds.undoInfo(openChunk = 1) # your code cmds.undoInfo(closeChunk ...

  8. POJ 1515 Street Directions (边双连通)

    <题目链接> 题目大意: 有m条无向边,现在把一些边改成有向边,使得所有的点还可以互相到达.输出改变后的图的所有边(无向边当成双向的有向边输出). 解题分析: 因为修改边后,所有点仍然需要 ...

  9. 【软件工程】分布式版本控制系统Git的安装与使用

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2097 远端库地址:https://github.com/Richa ...

  10. 《团队作业第一周》五小福团队作业——UNO

    <团队作业第一周>团队作业--UNO 一.团队展示 队员学号 队名:五小福 (真是个红红火火恍恍惚惚的队名)> 拟作的团队项目描述 基于安卓开发的有趣味性的UNO纸牌小游戏 队员风采 ...