Class APMEvent

java.lang.Object
java.util.EventObject
org.springframework.context.ApplicationEvent
tech.riemann.nif.apm.event.APMEvent
All Implemented Interfaces:
Serializable

public class APMEvent extends org.springframework.context.ApplicationEvent
APM事件类

继承自Spring的ApplicationEvent,用于在APM监控中传递事件信息

主要功能: 1. 封装APM日志信息 2. 携带被监控方法的Class和Method信息 3. 携带User-Agent头信息 4. 携带TraceId用于链路追踪

使用场景: - APMInterceptor拦截方法后发布此事件 - 各种APMEventListener监听此事件并处理 - 可以自定义监听器实现不同的处理逻辑(如写日志、发送告警等)

Author:
Kerbores(kerbores@riemann.tech)
See Also:
  • Constructor Details

    • APMEvent

      public APMEvent(Map<String,String> uaHeaders, boolean parse, APMLog source, @NonNull Class<?> clazz, @NonNull Method method, String traceId)
      构造APM事件
      Parameters:
      uaHeaders - User-Agent头信息
      parse - 是否解析User-Agent
      source - APM日志信息
      clazz - 被监控的类
      method - 被监控的方法
      traceId - 链路追踪ID
  • Method Details

    • build

      public static APMEvent build(APMLog source, boolean parse, Map<String,String> uaHeaders, @NonNull Class<?> clazz, @NonNull Method method, String traceId)
      构建APM事件
      Parameters:
      source - APM日志信息
      parse - 是否解析User-Agent
      uaHeaders - User-Agent头信息
      clazz - 被监控的类
      method - 被监控的方法
      traceId - 链路追踪ID
      Returns:
      APMEvent实例
    • getApmLog

      public APMLog getApmLog()
      获取APM日志信息
      Returns:
      APM日志
    • getClazz

      public Class<?> getClazz()
      获取被监控的类
      Returns:
      类对象
    • getMethod

      public Method getMethod()
      获取被监控的方法
      Returns:
      方法对象
    • getUaHeaders

      public Map<String,String> getUaHeaders()
      获取User-Agent头信息
      Returns:
      User-Agent头信息Map
    • isParse

      public boolean isParse()
      是否需要解析User-Agent
      Returns:
      true表示需要解析
    • getTraceId

      public String getTraceId()
      获取链路追踪ID
      Returns:
      TraceId