学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator
前言
主要是完成微服务的监控,完成监控治理。可以查看微服务间的数据处理和调用,当它们之间出现了异常,就可以快速定位到出现问题的地方。
- springboot - version: 2.0
正文
依赖
maven 项目 在 pom.xml 文件中加入 actuator 的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
使用 Gradle 构建:
dependencies {
compile("org.springframework.boot:spring-boot-starter-actuator")
}
配置
需要注意的是 Spring Boot 2.0 相对于上个版本, Actuator 发生很多变化,
keys 的配置改变
| 旧的属性 | 新的属性 |
|---|---|
endpoints.<id>.* |
management.endpoint.<id>.* |
endpoints.cors.* |
management.endpoints.web.cors.* |
endpoints.jmx.* |
management.endpoints.jmx.* |
management.address |
management.server.address |
management.context-path |
management.server.servlet.context-path |
management.ssl.* |
management.server.ssl.* |
management.port |
management.server.port |
基本路径
所有 endpoints 默认情况下都已移至
/actuator。就是多了跟路径actuator;上个版本中的
management/context-path:和management/port:改为 :management:
server:
port: 8004
servlet:
context-path: /xxx # 只有在设置了 management.server.port 时才有效另外,您还可以使用新的单独属性
management.endpoints.web.base-path为管理端点设置基本路径。例如,如果你设置
management.server.servlet.context-path=/management和management.endpoints.web.base-path=/application,你就可以在下面的路径到达终点健康:/management/application/health。如果你想恢复 1.x 的行为(即具有
/health代替/actuator/health),设置以下属性:management.endpoints.web.base-path=/
ENDPOINTS
1.X 的时候属性:
| HTTP 方法 | 路径 | 描述 |
|---|---|---|
| GET | /autoconfig | 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 |
| GET | /configprops | 描述配置属性(包含默认值)如何注入Bean |
| GET | /beans | 描述应用程序上下文里全部的Bean,以及它们的关系 |
| GET | /dump | 获取线程活动的快照 |
| GET | /env | 获取全部环境属性 |
| GET | /env/{name} | 根据名称获取特定的环境属性值 |
| GET | /health | 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供 |
| GET | /info | 获取应用程序的定制信息,这些信息由info打头的属性提供 |
| GET | /mappings | 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系 |
| GET | /metrics | 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 |
| GET | /metrics/{name} | 报告指定名称的应用程序度量值 |
| POST | /shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为true |
| GET | /trace | 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等) |
2.0 部分更改:
| 1.x 端点 | 2.0 端点(改变) |
|---|---|
/actuator |
不再可用。 但是,在 management.endpoints.web.base-path 的根目录中有一个映射,它提供了到所有暴露端点的链接。 |
/auditevents |
该after参数不再需要 |
/autoconfig |
重命名为 /conditions |
/docs |
不再可用 |
/health |
现在有一个 management.endpoint.health.show-details 选项 never, always, when-authenticated,而不是依靠 sensitive 标志来确定 health 端点是否必须显示全部细节。 默认情况下,/actuator/health公开并且不显示细节。 |
/trace |
重命名为 /httptrace |
默认端点 path 前面多了一级 /actuator 。
同时注意只有端点/health和/info端点是暴露的。
| Property | Default |
|---|---|
management.endpoints.jmx.exposure.exclude |
|
management.endpoints.jmx.exposure.include |
* |
management.endpoints.web.exposure.exclude |
|
management.endpoints.web.exposure.include |
info, health |
1. 您可以按如下方式公开所有端点:management.endpoints.web.exposure.include=*
2. 您可以通过以下方式显式启用/shutdown端点:management.endpoint.shutdown.enabled=true
3. 要公开所有(已启用)网络端点除env端点之外:
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env
例如:
我现在开启所有的端点:
management:
endpoints:
web:
exposure:
include: "*" # * 在yaml 文件属于关键字
执行 localhost:${port}/actuator,可以看到所有可以执行查看的端点监控的 Url,然后我们尝试执行关闭应用进程的指令:shutdown:

端点格式
/actuator/mappings端点大改变
JSON 格式已经更改为现在正确地包含有关上下文层次结构,多个DispatcherServlets,部署的 Servlet 和 Servlet 过滤器的信息。详情请参阅#9979。
Actuator API 文档的相关部分提供了一个示例文档。/actuator/httptrace端点大改变
响应的结构已经过改进,以反映端点关注跟踪 HTTP 请求 - 响应交换的情况。
总结
主要是 Spring Boot 2.0 版本升级在 Actuator 上面有许多改动,需要记录下。
参考文章
学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator的更多相关文章
- VMware vSphere 服务器虚拟化之二十七桌面虚拟化之View中使用Thinapp软件虚拟化
VMware vSphere 服务器虚拟化之二十七桌面虚拟化之View中使用Thinapp软件虚拟化 VMware ThinApp 应用程序虚拟化软件是无代理解决方案,通过将应用程序隔离并封装为EXE ...
- Spring Boot(二):Spring Boot中的配置参数
Spring Boot 配置参数 Spring Boot 帮助我们完成了许许多多的自动化配置 如果我们需要根据自己的需求修改配置 也是可以的 可以使用.properties 和 .yml 格式配置 这 ...
- Spring学习进阶(二)Spring IoC
在使用Spring所提供的各种丰富而神奇的功能之前,必须在Spring IoC容器中装配好Bean,并建立Bean与Bean之间的关联关系.控制反转(Inverser of Control ioc)是 ...
- spring学习笔记(二)spring中的事件及多线程
我们知道,在实际开发中为了解耦,或者提高用户体验,都会采用到异步的方式.这里举个简单的例子,在用户注册的sh时候,一般我们都会要求手机验证码验证,邮箱验证,而这都依赖于第三方.这种情况下,我们一般会通 ...
- Spring Cloud(二):Spring Cloud Eureka Server高可用注册服务中心的配置
前言 Eureka 作为一个云端负载均衡,本身是一个基于REST的服务,在 Spring Cloud 中用于发现和注册服务. 那么当成千上万个微服务注册到Eureka Server中的时候,Eurek ...
- Dynamic CRM 2013学习笔记(二十七)无代码 复制/克隆方法
前面介绍过二种复制/克隆方法:<Dynamic CRM 2013学习笔记(十四)复制/克隆记录> 和<Dynamic CRM 2013学习笔记(二十五)JS调用web service ...
- Spring(十二)使用Spring的xml文件配置方式实现AOP
配置文件与注解方式的有非常大不同,多了非常多配置项. beans2.xml <?xml version="1.0" encoding="UTF-8"? & ...
- Spring(二)--Spring入门案例
Spring入门案例 1.需要的实体类 2.需要的接口和实现类 3.需要的service和实现类 /** * service层的作用 * 在不改变dao层代码的前提下,增加业务逻辑操作 */ publ ...
- Spring学习笔记(二)Spring基础AOP、IOC
Spring AOP 1. 代理模式 1.1. 静态代理 程序中经常需要为某些动作或事件作下记录,以便在事后检测或作为排错的依据,先看一个简单的例子: import java.util.logging ...
随机推荐
- 学习Key与Value的集合hashtable
你可以创建一个hashtable: 你可以使用foreach方法,把hashtable的key与value循环写出来: 在控制台屏幕输出: 如果只需把key输出: 如果只想把值循环输出: 测试输出结果 ...
- echarts 响应式布局
<body> <!-- 为ECharts准备一个具备大小(宽高)的Dom --> <div id="main" style="width: ...
- HDU3062&&HDU1814
Preface 两道2-SAT模板题. HDU3062 看题目就一眼2-SAT.一对夫妻看成一个变量,之间的矛盾可以看成限制. 考虑不同席的限制,相当于选了\(i\)就不选\(j\),即必选\(j'\ ...
- [Oracle]OWI学习笔记--001
[Oracle]OWI学习笔记--001 在 OWI 的概念里面,最为重要的是 等待事件 和 等待时间. 等待事件发生时,需要通过 P1,P2,P3 查看具体的资源. 可以通过 v$session_w ...
- [Oracle]ORA-600[kdBlkCheckError]LOB坏块处理
[Oracle]ORA-600[kdBlkCheckError]LOB坏块处理 客户环境报如下错误: ORA - 00600: Internal error code, arguments: [kdB ...
- Zabbix监控系统部署:配置详解
1. 全局配置 ListenPort ,监听端口 ,取值范围为1024-32767,默认端口10051 SourceIP,外发连接源地址 LogType,日志类型:单独日志文件,系统文件,控制台输出 ...
- Ionic 入门与实战之第二章第一节:Ionic 环境搭建之开发环境配置
原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第一节,主要对 Ionic 的开发环境配置做了简要的介绍,本文介绍的开发环境为 Mac 系统,Windows 系统基本类似,少许 ...
- 写入mssql出现乱码
1.出现乱码的场景如下: --------------------------------------------------------------------------------------- ...
- Unity接入Steamworks
一.将scrpts/Steamworks.net/SteamManager组件添加到游戏物体上 二.修改SteamManager的代码为游戏的id如图所示 三.Unity,打开项目根目录,修改stea ...
- 《Linux内核设计与实现》 第十八章学习笔记
调 试 一.准备开始 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 知道这个bug最早出现在哪个内核版本中. 1.想要成功进行调试: 让这些错误重现 抽象出问题 从代码中搜索 二. ...