1. 简介

未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。

2. 使用

2.1 引入场景依赖

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

2.2 访问网址

http://localhost:8080/actuator/**

2.3 暴露所有监控信息为HTTP

# management 是所有actuator的配置
# management.endpoint.端点名.xxxx  对某个端点的具体配置
management:endpoints:enabled-by-default: true  #暴露所有断电信息web:exposure:include: '*'  #以web方式暴露endpoint:health:show-details: always  #显示某一个端点的详细信息

测试:
http://localhost:8080/actuator/beans
http://localhost:8080/actuator/configprops
http://localhost:8080/actuator/metrics/application.ready.time
http://localhost:8080/actuator/endpointName/detailPath

3.Actuator EndPoint

3.1最常使用的端点:

ID 描述
auditevents 暴露当前应用程序的审核事件信息。需要一个AuditEventRepository组件。
beans 显示应用程序中所有Spring Bean的完整列表。
caches 暴露可用的缓存。
conditions 显示自动配置的所有条件信息,包括匹配或不匹配的原因。
configprops 显示所有@ConfigurationProperties。
env 暴露Spring的属性ConfigurableEnvironment
flyway 显示已应用的所有Flyway数据库迁移。需要一个或多个Flyway组件。
health 显示应用程序运行状况信息。
httptrace 显示HTTP跟踪信息(默认情况下,最近100个HTTP请求-响应)。需要一个HttpTraceRepository组件。
info 显示应用程序信息。
integrationgraph 显示Spring integrationgraph 。需要依赖spring-integration-core。
loggers 显示和修改应用程序中日志的配置。
liquibase 显示已应用的所有Liquibase数据库迁移。需要一个或多个Liquibase组件。
metrics 显示当前应用程序的“指标”信息。
mappings 显示所有@RequestMapping路径列表。
scheduledtasks 显示应用程序中的计划任务。
sessions 允许从Spring Session支持的会话存储中检索和删除用户会话。需要使用Spring Session的基于Servlet的Web应用程序。
shutdown 使应用程序正常关闭。默认禁用。
startup 显示由ApplicationStartup收集的启动步骤数据。需要使用SpringApplication进行配置
threaddump 执行线程转储。

如果您的应用程序是Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:

ID 描述
heapdump 返回hprof堆转储文件。
jolokia 通过HTTP暴露JMX bean(需要引入Jolokia,不适用于WebFlux)。需要引入依赖jolokia-core。
logfile 返回日志文件的内容(如果已设置logging.file.name或logging.file.path属性)。支持使用HTTPRange标头来检索部分日志文件的内容。
prometheus 以Prometheus服务器可以抓取的格式公开指标。需要依赖micrometer-registry-prometheus。

最常用的Endpoint
● Health:监控状况
● Metrics:运行时指标
● Loggers:日志记录

3.2 Health Endpoint

健康检查端点,我们一般用于在云平台,平台会定时的检查应用的健康状况,我们就需要Health Endpoint可以为平台返回当前应用的一系列组件健康状况的集合。
重要的几点:
● health endpoint返回的结果,应该是一系列健康检查后的一个汇总报告
● 很多的健康检查默认已经自动配置好了,比如:数据库、redis等
● 可以很容易的添加自定义的健康检查机制

3.3 Metrics Endpoint

提供详细的、层级的、空间指标信息,这些信息可以被pull(主动推送)或者push(被动获取)方式得到;
● 通过Metrics对接多种监控系统
● 简化核心Metrics开发
● 添加自定义Metrics或者扩展已有Metrics

3.4管理Endpoints

3.4.1开启与禁用Endpoints

● 默认所有的Endpoint除过shutdown都是开启的。
● 需要开启或者禁用某个Endpoint。配置模式为 management.endpoint..enabled = true

management:endpoint:beans:enabled: true

或者禁用所有的Endpoint然后手动开启指定的Endpoint

management:endpoints:enabled-by-default: falseendpoint:beans:enabled: truehealth:enabled: true

4.定制 Endpoint

4.1定制Health信息

@Component
//点点名为截取前半部分 MyCom
public class MyComHealthIndicator extends AbstractHealthIndicator {/*** 真实的检查方法* @param builder* @throws Exception*/@Overrideprotected void doHealthCheck(Health.Builder builder) throws Exception {//mongodb。  获取连接进行测试Map<String,Object> map = new HashMap<>();// 检查完成if(1 == 2){//            builder.up(); //健康builder.status(Status.UP);map.put("count",1);map.put("ms",100);}else {//            builder.down();builder.status(Status.OUT_OF_SERVICE);map.put("err","连接超时");map.put("ms",3000);}builder.withDetail("code",100).withDetails(map);}
}

4.2 定制info信息

import java.util.Collections;import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;
import org.springframework.stereotype.Component;@Component
public class ExampleInfoContributor implements InfoContributor {@Overridepublic void contribute(Info.Builder builder) {builder.withDetail("example",Collections.singletonMap("key", "value"));}}

4.3 定制Metrics信息

4.3.1 SpringBoot支持自动适配的Metrics

● JVM metrics, report utilization of:
○ Various memory and buffer pools
○ Statistics related to garbage collection
○ Threads utilization
○ Number of classes loaded/unloaded
● CPU metrics
● File descriptor metrics
● Kafka consumer and producer metrics
● Log4j2 metrics: record the number of events logged to Log4j2 at each level
● Logback metrics: record the number of events logged to Logback at each level
● Uptime metrics: report a gauge for uptime and a fixed gauge representing the application’s absolute start time
● Tomcat metrics (server.tomcat.mbeanregistry.enabled must be set to true for all Tomcat metrics to be registered)
● Spring Integration metrics

4.3.2 增加定制Metrics

@Service
public class CityServiceImpl implements CityService {@AutowiredCityMapper cityMapper;Counter counter;public CityServiceImpl(MeterRegistry meterRegistry){counter = meterRegistry.counter("cityService.saveCity.count");}public void saveCity(City city) {counter.increment();cityMapper.insert(city);}
}

4.4 定制Endpoint

@Component
@Endpoint(id = "container")
public class DockerEndpoint {@ReadOperationpublic Map getDockerInfo(){return Collections.singletonMap("info","docker started...");}@WriteOperationprivate void restartDocker(){System.out.println("docker restarted....");}}

5. 指标监控可视化

可视化
视频教程

SpringBoot 指标监控相关推荐

  1. SpringBoot指标监控

    SpringBoot Actuator可以帮助程序员监控和管理SpringBoot,比如健康检查.内存使用情况.线程使用情况统计.添加Actuator依赖,即可使用Actuator监控项目 1. #开 ...

  2. SpringBoot - 构建监控体系02_定义度量指标和 Actuator 端点

    文章目录 Pre Actuator 中的度量指标 Micrometer 度量库 Meter接口 计量器类型 如何创建这些计量器 扩展 Metrics 端点 自定义 Metrics 指标 使用 Mete ...

  3. SpringBoot——四大核心之指标监控(actuator)

    1.写在前面 首先肯定要说一下SpringBoot的四大核心了: 自动装配:简单配置甚至零配置即可运行项目 起步依赖:场景启动器 Actuator:指标监控 命令行界面 :命令行 这篇文章呢,我来和大 ...

  4. SpringBoot Actuator监控【转】

    springboot actuator 监控 springboot1.5和springboot2.0 的actuator在启动日志上的差异就很大了. springboot1.5在启动时会打印很多/XX ...

  5. springboot监控服务器信息,面试官:聊一聊SpringBoot服务监控机制

    目录 前言 任何一个服务如果没有监控,那就是两眼一抹黑,无法知道当前服务的运行情况,也就无法对可能出现的异常状况进行很好的处理,所以对任意一个服务来说,监控都是必不可少的. 就目前而言,大部分微服务应 ...

  6. SpringBoot 服务监控机制,你了解多少?

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/zwx900102/article/ details/115446997 前言 任何一个服务如果没有监控,那就是两眼一抹黑,无法 ...

  7. 面试官:聊一聊SpringBoot服务监控机制

    面试官:聊一聊SpringBoot服务监控机制 前言 SpringBoot 监控 HTTP Endpoints 监控 内置端点 health 端点 loggers 端点 metrics 端点 自定义监 ...

  8. SpringBoot应用监控SpringBoot+Prometheus+Grafana

    SpringBoot应用监控SpringBoot+Prometheus+Grafana 1. SpringBoot应用监控 1.1 SpringBoot应用监控 1.2 SpringBoot应用搭建 ...

  9. 002 第一季SpringBoot2核心技术-核心功能:配置文件、Web开发(原生组件)、数据访问、单元测试、指标监控、原理解析:@Value、命令行参数、手动获取bean、自定义starter

    三.核心技术之- ->核心功能 1. 配置文件 1.1 文件类型 1.1.1 properties 同以前的properties用法 优先级高于yml的方式. 1.1.2 yaml 1) 简介 ...

最新文章

  1. gradle工程环境搭建---从SVN上导出项目源码
  2. word经常用到的技巧
  3. 混合多云架构_使用混合多云每个人都应避免的3个陷阱(第2部分)
  4. c++中new的总结(动态管理,malloc存在的问题,malloc与new的区别)
  5. 《计算机应用基础》期末试卷.,《计算机应用基础》期末试卷(A卷)《计算机应用基础》期末试卷(A卷).doc...
  6. react.js基础
  7. html5 规定输入字段,HTML5 Input属性详解
  8. 【数值分析】顺序高斯消去法和列主元高斯消去法的三个主要不同点
  9. java获取泛型的值_java 反射之获取泛型对象的所有字段与对应的值(包括父类的)...
  10. Doule类型转成十六进制查看
  11. VB.NET工作笔记002---asp调用vb6编写的activex dll
  12. python大佬养成计划--协程实现TCP连接
  13. ubtunu开机黑屏无桌面解决方法
  14. 如何使用Java代码获取文件、文件流或字符串的编码方式
  15. android 盒子dns设置,电视盒修改DNS,让你的上网速度更快!
  16. ubuntu 14.04 32位设置1920x1080分辨率
  17. 分享软件测试人员必备的60个测试工具,赶紧收藏起来
  18. 微信小程序登录服务器失败,微信小程序后台登录一直失败
  19. codereview(codereview什么意思)
  20. 通过阿里云ECS服务器部署FRP实现Windows自带远程桌面

热门文章

  1. 练习:仿小米静态登录页面
  2. VC++画椭圆的例子
  3. UMNK星专用抽奖工具
  4. 【论文译文】Few Shot Vid-to-Vid
  5. 【论文译文】Generative Image Inpainting with Contextual Attention
  6. uniapp 原生安卓开发插件(module),以及android环境本地调试(一)
  7. 简单工厂模式,工厂方法模式,抽象工厂方法的具体实现
  8. 【人工智能算法】受大自然启发的算法之种群、计分和选择
  9. 排序算法——直接插入法(超详细)
  10. tensorflow 深度学习 前期准备之 1080Ti显卡驱动安装 及 CUDA CUDNN 安装