Module bus.starter

Class StartupReporter

java.lang.Object
org.miaixz.bus.spring.boot.StartupReporter

public class StartupReporter extends Object
收集和启动报告成本的基本组件。

该类负责收集应用程序启动过程中的各项性能指标,包括JVM启动时间、环境准备时间、 上下文刷新时间等,并提供统计和报告功能。它能够从Spring的启动事件中提取信息, 转换为结构化的统计模型,并支持自定义Bean指标的定制化处理。

Since:
Java 17+
Author:
Kimi Liu
  • Field Details

    • SPRING_BEAN_INSTANTIATE_TYPES

      public static final Collection<String> SPRING_BEAN_INSTANTIATE_TYPES
      Spring Bean实例化类型集合
    • SPRING_CONTEXT_POST_PROCESSOR_TYPES

      public static final Collection<String> SPRING_CONTEXT_POST_PROCESSOR_TYPES
      Spring上下文后处理器类型集合
    • SPRING_CONFIG_CLASSES_ENHANCE_TYPES

      public static final Collection<String> SPRING_CONFIG_CLASSES_ENHANCE_TYPES
      Spring配置类增强类型集合
    • statics

      public final StartupMetrics statics
      启动统计信息
    • beanMetricsCustomizers

      public final List<BeanMetricsCustomizer> beanMetricsCustomizers
      Bean指标自定义器列表
    • bufferSize

      public int bufferSize
      缓冲区大小,用于BufferingApplicationStartup
    • costThreshold

      public int costThreshold
      成本阈值,用于过滤Bean初始化统计
  • Constructor Details

    • StartupReporter

      public StartupReporter()
      构造函数,初始化StartupReporter
  • Method Details

    • bindToStartupReporter

      public void bindToStartupReporter(org.springframework.core.env.ConfigurableEnvironment environment)
      将环境绑定到StartupReporter

      通过Spring的Binder机制,将环境配置中以"bus.startup"为前缀的属性绑定到当前实例

      Parameters:
      environment - 要绑定的环境
      Throws:
      IllegalStateException - 如果绑定过程中发生异常
    • setAppName

      public void setAppName(String appName)
      设置应用程序名称
      Parameters:
      appName - 应用程序名称
    • applicationBootFinish

      public void applicationBootFinish()
      结束应用程序启动

      设置应用程序启动耗时,并对所有阶段统计信息按开始时间进行排序

    • addCommonStartupStat

      public void addCommonStartupStat(BaseMetrics stat)
      添加要报告的普通启动状态
      Parameters:
      stat - 增加的启动状态
    • getStageNyName

      public BaseMetrics getStageNyName(String stageName)
      按名称查找启动统计中报告的阶段
      Parameters:
      stageName - 阶段名称
      Returns:
      报告的对象,当找不到对象时返回null
    • drainStartupStatics

      public StartupMetrics drainStartupStatics()
      从模型中提取阶段并返回StartupMetrics

      创建一个新的StartupMetrics实例,复制当前实例的数据,并清空当前实例的阶段统计列表

      Returns:
      包含所有启动统计信息的新实例
    • generateBeanStats

      public List<BeanMetrics> generateBeanStats(org.springframework.context.ConfigurableApplicationContext context)
      转换 BufferingApplicationStartupBeanMetrics 列表

      从应用程序上下文中获取BufferingApplicationStartup,并将其中的启动事件转换为BeanMetrics列表。 转换过程中会构建Bean的层级关系,并根据成本阈值过滤掉部分统计信息。

      Parameters:
      context - 可配置的应用程序上下文
      Returns:
      Bean指标列表