Springboot快速上手- 第八篇 Actuator

1 概述

Spring Boot Actuator的关键特性是在应用程序里提供众多Web端点,通过它们了解应用程序运行时的内部状况,比如:

Spring应用程序上下文里配置的Bean

Bean在Spring应用程序上下文里是如何组装在一 起的

Spring Boot的自动配置做的决策

应用程序取到的环境变量、系统属性、配置属性和命令行参数

应用程序里线程的当前状态

应用程序最近处理过的HTTP请求的追踪情况

各种和内存用量、垃圾回收、Web请求以及数据源用量相关的指标……

Spring Boot Actuator提供的端点,可以查看官方文档:

https://docs.spring.io/spring…

2 启用Actuator

Springboot快速上手- 第八篇 Actuator

要启用Actuator的端点,只需在项目中引入Actuator的起步依赖即可

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

同时在properties里面设置management.security.enabled=false

Springboot快速上手- 第八篇 Actuator

3 autoconfig

该端点用来获取应用的自动化配置报告,其中包括所有自动化配置的候选项。同时还列出了每个候选项自动化配置应用或未应用的原因。该报告内容将自动化配置内容分为两部分:

  • positiveMatches中返回的是条件匹配成功的自动化配置
  • negativeMatches中返回的是条件匹配不成功的自动化配置

4 beans

该端点用来获取应用上下文中创建的所有Bean

5 configprops

该端点用来获取应用中配置的属性信息报告

6 env

用来获取应用所有可用的环境属性报告。包括:环境变量、JVM属性、应用的配置配置、命令行中的参数。

7 health

用来获取应用的各类健康指标信息。springboot自带了一些常用资源的健康指标检测器,都通过HealthIndicator接口实现,并且会实现自动化装配,可以查看官方目前提供的HealthIndicators。

8 自定义health检测器

1:写一个类实现HealthIndicator接口,并注册为bean

2:在实现方法中使用Health类

9 info

用来返回一些应用自定义的信息。默认返回一个空的json串。可以在配置文件中通过info前缀来设置一些属性,如:info.app.author=cc

10 metrics

Springboot快速上手- 第八篇 Actuator

用来返回当前应用的各类重要度量指标,比如:

1:系统信息:包括处理器数量processors、运行时间uptime和instance.uptime、系统平均负载systemload.average

2:mem.*:内存概要信息,包括分配给应用的总内存数量以及当前空闲的内存数量

3:heap.*:堆内存使用情况

4:nonheap.*:非堆内存使用情况

5:threads.*:线程使用情况,包括线程数、守护线程数(daemon)、线程峰值(peak)等

6:classes.*:应用加载和卸载的类统计

7:gc.*:垃圾收集器的详细信息,包括垃圾回收次数gc.ps_scavenge.count、垃圾回收消耗时间gc.ps_scavenge.time、标记-清除算法的次数gc.ps_marksweep.count、标记-清除算法的消耗时间gc.ps_marksweep.time

8:httpsessions.*:Web容器的会话使用情况。包括最大会话数httpsessions.max和活跃会话数httpsessions.active。该度量指标信息仅在引入了嵌入式Tomcat作为应用容器的时候才会提供。

9:gauge.*:表示一个绝对数值的指标

10:counter.*:主要作为计数器来使用,记录了增加量和减少量

11 自定义Counter

1:需要注入计数服务:

@Autowired

private CounterService counterService;

@Autowired

private GaugeService gaugeService;

2:直接使用计数服务来计数

counterService.increment("abc.call.count");

gaugeService.submit("cc.redis.hit", 79);

12 mappings

用来返回所有Spring MVC的控制器映射关系

13 dump

用来暴露程序运行中的线程信息

14 trace

用来返回基本的HTTP跟踪信息。默认情况下,跟踪信息的存储采用org.springframework.boot.actuate.trace.InMemoryTraceRepository实现的内存方式,始终保留最近的100条请求记录

15 shutdown

用来提供远程关闭应用的功能,比较危险,建议不要打开。

16 常见配置

Springboot快速上手- 第八篇 Actuator

1:修改端点名称

直接配置endpoints.endpoint-id.id ,例如:endpoints.beans.id=bs

这么设置过后,访问就不是: http://localhost:8080/beans ,而是:

http://localhost :8080/bs

2:启用和禁用端点

设置endpoints.endpoint-id.enabled

3:设置管理端口

management.port ,-1表示关闭Http访问端口

4:设置管理地址

management.address=127.0.0.1

5:设置指定的根路径

management.context-path=/admin

原文 

https://segmentfault.com/a/1190000023090408

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Springboot快速上手- 第八篇 Actuator

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址