zoukankan      html  css  js  c++  java
  • Spring Boot Actuator认识

    概述

    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信息。
  • 相关阅读:
    常用排序算法及java语言实现
    机器学习实战笔记(python3实现)01--概述
    笔试错题--(字符串常量池和JVM运行时数据区)
    笔试错题(典型题)
    java进阶--java网络编程
    01_Java基础_第1天(Java概述、环境变量、注释、关键字、标识符、常量)
    数据库3(DBUtils)
    数据库2(JDBC、DBUtils)
    数据库1(数据库、表及表数据、SQL语句)
    Linux的基本命令
  • 原文地址:https://www.cnblogs.com/amyzhu/p/10056364.html
Copyright © 2011-2022 走看看