概述

spring-boot-starter-actuator:是一个用于暴露自身信息的模块,主要用于监控与管理。

为了保证actuator暴露的监控接口的安全性,需要添加安全控制的依赖spring-boot-start-security依赖,访问应用监控端点时,都需要输入验证信息。

关键配置:

//敏感信息访问限制(单个接口)
endpoints.mappings.sensitive=true //安全限制
management.security.enabled=false //启用和禁用接口(单个接口)
//默认情况下,所有接口(除了/shutdown)都启用。
endpoints.metrics.enabled = false
//禁用全部接口
endpoints.enabled = false

Actuator监控分类

  • 原生端点:在应用程序中提供众多Web接口,通过它们了解应用程序运行时的内部状况。主要分三类:

    • 应用配置类:可以查看应用运行期的静态信息,例如自动配置信息、加载的Springbean信息、yml文件配置信息、环境变量、请求映射信息。
    • 度量指标类:主要是运行期的动态信息,例如堆栈、请求链、内存信息、线程池信息、HTTP请求统计等。
    • 操作控制类:主要是指shutdown,用户可以发送一个请求将应用的监控功能关闭。
  • 用户自定义端点:扩展性

Actuator的REST接口

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头等)

命令详解

  • autoconfig:用于程序运行时查看某个配置什么条件下生效、或者为什么没有生效。
  • configprops:查看配置文件中设置的属性内容、以及一些配置属性的默认值。关注配置信息。
  • beans:展示了bean的别名、类型、是否单例、类的地址、依赖等信息。
  • dump:生成当前线程活动的快照,包括线程名、线程ID、线程的状态、是否等待锁资源等信息。
  • env:展示了系统环境变量的配置信息,包括使用的环境变量、JVM属性、命令行参数、项目使用的jar包等信息。关注运行环境信息。
    • 为了敏感信息暴露,所有名为password、secret、key(或者名字最后一段是这些)的属性会展示为*。
  • /env/{name}:获取指定配置信息
  • health:可以查看HealthEndPoint给我们提供默认的监控结果,包含磁盘检测、数据库检测。
  • info:就是我们自己配置在配置文件中以Info开头的配置信息。
  • mappings:描述全部的URI路径,已经它们和控制器的映射关系。
  • metrics:最重要的监控内容之一,主要监控了JVM使用、GC情况、类加载信息等。

    metrics提供信息分类:
分类 前缀 报告内容
垃圾收集器 gc.* GC次数、GC耗费的时间,适用于标记-清理垃圾收集器和并行收集器(数据来源于java.lang.management.GarbageCollectorMXBean)
内存 mem.* 分配给应用程序的内存数量和空闲的内存数量(数据源自java.lang.Runtim)
heap.* 当前堆内存用量,数据源自java.lang.management.MemoryUsage
类加载器 classes.* JVM类加载器加载与卸载的类的数量,数据源自java.lang. management.ClassLoadingMXBean
系统 processors、instance.uptime、uptime、systemload.average 系统信息,例如处理器数量(数据源自java.lang.Runtime)、运行时间(数据源自java.lang.management.RuntimeMXBean)、平均负载(数据源自java.lang.management.OperatingSystemMXBean)
线程池 thread.* 线程、守护线程的数量、JVM启动后的线程数量峰值(数据源自java.lang .management.ThreadMXBean)
数据源 datasource.* 数据源链接的数量(DataSource Bean)
Tomcat会话 httpsessions.* Tomcat的会话数和最大会话数(疏数据源自嵌入式Tomcat的Bean)
HTTP counter.status.*、gauge.reponse. 多种应用程序HTTP请求的度量值与计数器
  • shutdown:优雅关闭Sprint Boot应用。
  • trace:能报告所有Web请求的详细信息,包括请求方法、路径、时间戳以及请求和响应的header信息。

Spring Boot Actuator认识的更多相关文章

  1. Complete Guide for Spring Boot Actuator

    You are here to learn about Spring Boot Actuator for collecting metrics about your production grade ...

  2. springboot(十九):使用Spring Boot Actuator监控应用

    微服务的特点决定了功能模块的部署是分布式的,大部分功能模块都是运行在不同的机器上,彼此通过服务调用进行交互,前后台的业务流会经过很多个微服务的处理和传递,出现了异常如何快速定位是哪个环节出现了问题? ...

  3. spring boot admin + spring boot actuator + erueka 微服务监控

    关于spring boot actuator简单使用,请看 简单的spring boot actuator 使用,点击这里 spring boot admin 最新的正式版本是1.5.3 与 spri ...

  4. spring boot actuator 简单使用

    spring boot admin + spring boot actuator + erueka 微服务监控 简单的spring boot actuator 使用 POM <dependenc ...

  5. 使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控

    由于最近在做监控方面的工作,因此也读了不少相关的经验分享.其中有这样一篇文章总结了一些基于Spring Boot的监控方案,因此翻译了一下,希望可以对大家有所帮助. 原文:Near real-time ...

  6. spring boot actuator专题

    spring-boot-starter-actuator模块的实现对于实施微服务的中小团队来说,可以有效地减少监控系统在采集应用指标时的开发量.当然,它也并不是万能的,有时候我们也需要对其做一些简单的 ...

  7. 使用Spring Boot Actuator将指标导出到InfluxDB和Prometheus

    使用Spring Boot Actuator将指标导出到InfluxDB和Prometheus   Spring Boot Actuator是Spring Boot 2发布后修改最多的项目之一.它经过 ...

  8. (转)Spring Boot (十九):使用 Spring Boot Actuator 监控应用

    http://www.ityouknow.com/springboot/2018/02/06/spring-boot-actuator.html 微服务的特点决定了功能模块的部署是分布式的,大部分功能 ...

  9. 朱晔和你聊Spring系列S1E7:简单好用的Spring Boot Actuator

    阅读PDF版本 本文会来看一下Spring Boot Actuator提供给我们的监控端点Endpoint.健康检查Health和打点指标Metrics等所谓的Production-ready(生产环 ...

  10. Spring Boot Actuator 使用

    转载于:https://www.jianshu.com/p/af9738634a21 Spring Boot 的 Actuator 提供了很多生产级的特性,比如监控和度量Spring Boot 应用程 ...

随机推荐

  1. ELKstack简介及环境部署

    ELK工作流程图 环境准备 安装Logstash依赖包JDK Logstash的运行依赖于Java运行环境, Logstash 1.5以上不低于java 7推荐使用最新版本的Java.由于只是运行Ja ...

  2. appium安装完成后运行和执行python脚本的错误合集

    1.第一个错误如下: main.js: error: argument "--app": Expected one argument. null 这个一般是appium服务端安装的 ...

  3. 21天打造分布式爬虫-urllib库(一)

    1.1.urlopen函数的用法 #encoding:utf-8 from urllib import request res = request.urlopen("https://www. ...

  4. 安装和配置jBPM4,并举个hello.w

    至于网上很复杂,但又不懂的插件,我们先不鸟他. myeclipse8\dropins这里就是给我们放插件的,类似SVN之类的.所以小生也修改了下,共享了下.只有放在目录下,打开应该可以的.下面是链接. ...

  5. UML介绍--用例图

    用例图定义:由参与者(Actor).用例(Use Case)以及它们之间的关系构成的用于描述系统功能的静态视图称为用例图. 用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模 ...

  6. 从零开始学 Web 之 DOM(六)为元素绑定与解绑事件

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... +-------------------------------------------------------- ...

  7. 迁移基于Microsoft.DirectX的AudioRecoder类到SharpDX上

    最近迁移项目到x64上,要处理的东西还是蛮多的,所以我要在说一次,不到万不得已不要用COM组件,要用COM组件也得首先考虑不需要我们关心平台的做法,或者得有64位版本. 比如Office的COM组件调 ...

  8. Dubbo 源码分析系列之一环境搭建

    环境搭建的步骤有哪些 依赖外部的环境 使用的开发工具 源码的拉取 结构大致介绍 1 依赖的外部环境 安装JDK 安装Git 安装maven 这边我们就不介绍怎么安装这些外部环境了,大家自行从安装这些外 ...

  9. Python 判断文件/目录是否存在

    使用 os 模块 判断文件是否存在 os.path.isfile(path) 判断目录是否存在 os.path.isdir(path) 判断路径是否存在 # 使用 path 模块 os.path.ex ...

  10. [LeetCode解题报告] 502. IPO

    题目描述 假设 LeetCode 即将开始其 IPO.为了以更高的价格将股票卖给风险投资公司,LeetCode希望在 IPO 之前开展一些项目以增加其资本. 由于资源有限,它只能在 IPO 之前完成最 ...