Interface IEventMetrics
public interface IEventMetrics
事件总线性能指标接口
提供事件总线的性能监控和统计功能,包括事件发布/处理统计、处理器性能分析、 错误追踪、热点分析等。所有指标数据可用于性能优化、问题诊断和监控告警。
- Since:
- 1.0.0
- Version:
- 1.0.0
- Author:
- Berry_so
- See Also:
-
Method Summary
Modifier and TypeMethodDescription获取错误统计Map<Class<?>, EventTypeMetrics> 获取按事件类型分组的性能指标获取按处理器分组的性能指标getHotspotEvents(int limit) 获取热点事件列表获取总体性能指标getSlowHandlers(int limit) 获取慢处理器列表获取时间窗口统计voidrecordError(String context, Exception error) 记录错误voidrecordEventFailed(Class<?> eventType, Exception error) 记录事件处理失败voidrecordEventProcessed(Class<?> eventType, long executionTimeMs) 记录事件处理完成voidrecordEventPublished(Class<?> eventType) 记录事件发布voidrecordHandlerInvocation(HandlerRegistration handler, long executionTimeMs, boolean success) 记录处理器调用voidreset()重置所有统计指标
-
Method Details
-
recordEventPublished
记录事件发布当事件通过
EventBus.publish()发布时调用,用于统计:- 特定事件类型的发布次数
- 总体事件发布频率(TPS)
- 事件类型分布
- Parameters:
eventType- 发布的事件类型
-
recordEventProcessed
记录事件处理完成当某个事件被处理器完整处理后调用,用于统计:
- 事件处理成功次数
- 处理耗时(平均值、最大值、最小值)
- 处理器吞吐量
- Parameters:
eventType- 处理的事件类型executionTimeMs- 处理耗时(毫秒)
-
recordEventFailed
记录事件处理失败当事件处理过程中抛出异常时调用,用于统计:
- 失败次数和失败率
- 异常类型分布
- 错误堆栈信息(用于诊断)
错误信息会被记录到
ErrorStats中,可通过getErrorStats()查询。- Parameters:
eventType- 处理失败的事件类型error- 发生的异常
-
recordHandlerInvocation
记录处理器调用每次调用事件处理器时记录,用于统计:
- 处理器调用次数
- 处理器执行时间统计
- 处理器成功率
- 识别慢处理器和热点处理器
- Parameters:
handler- 被调用的处理器注册信息executionTimeMs- 执行耗时(毫秒)success- 是否执行成功(true 表示成功,false 表示抛出异常)
-
recordError
-
getOverallMetrics
OverallMetrics getOverallMetrics()获取总体性能指标返回事件总线的全局统计信息,包括:
- 总事件发布数和处理数
- 平均处理时间和吞吐量
- 总体成功率和失败率
- 当前活跃处理器数量
- 系统运行时长
- Returns:
- 总体性能指标对象
-
getEventTypeMetrics
Map<Class<?>,EventTypeMetrics> getEventTypeMetrics()获取按事件类型分组的性能指标返回每个事件类型的详细统计信息,包括:
- 发布次数和处理次数
- 平均处理时间、最大/最小处理时间
- 成功率和失败次数
- 处理器数量
用于:
- 识别高频事件类型
- 找出性能瓶颈事件
- 分析事件处理分布
- Returns:
- 事件类型到其性能指标的映射,Key 为事件类型,Value 为该类型的统计信息
-
getHandlerMetrics
Map<String,HandlerMetrics> getHandlerMetrics()获取按处理器分组的性能指标返回每个处理器的详细统计信息,包括:
- 调用次数和成功次数
- 平均执行时间、最大/最小执行时间
- 失败次数和失败率
- 最后执行时间
用于:
- 识别慢处理器
- 找出频繁失败的处理器
- 优化处理器性能
- Returns:
- 处理器标识到其性能指标的映射,Key 为处理器唯一标识(通常是类名+方法名), Value 为该处理器的统计信息
-
getTimeWindowStats
TimeWindowStats getTimeWindowStats()获取时间窗口统计返回不同时间窗口(如最近 1 分钟、5 分钟、15 分钟)内的性能统计,包括:
- 每个时间窗口的事件处理数量
- 平均响应时间趋势
- 吞吐量变化
- 错误率趋势
用于:
- 监控系统负载变化
- 识别性能退化
- 生成性能趋势图表
- Returns:
- 时间窗口统计对象
-
getErrorStats
ErrorStats getErrorStats()获取错误统计返回详细的错误统计信息,包括:
- 总错误数和错误率
- 按错误类型分组的统计
- 最近的错误记录(含堆栈信息)
- 错误发生的时间分布
用于:
- 问题诊断和定位
- 监控系统稳定性
- 触发告警
- Returns:
- 错误统计对象
-
getHotspotEvents
获取热点事件列表返回发布频率最高的事件类型列表,按发布次数降序排列。
用于:
- 识别系统中最常用的事件
- 优化高频事件的处理性能
- 评估事件使用合理性
- Parameters:
limit- 返回的最大数量,必须大于 0- Returns:
- 热点事件列表,按发布频率从高到低排序
- Throws:
IllegalArgumentException- 如果 limit 小于等于 0
-
getSlowHandlers
获取慢处理器列表返回平均执行时间最长的处理器列表,按平均执行时间降序排列。
用于:
- 识别性能瓶颈处理器
- 指导性能优化方向
- 评估是否需要异步处理
- Parameters:
limit- 返回的最大数量,必须大于 0- Returns:
- 慢处理器列表,按平均执行时间从长到短排序
- Throws:
IllegalArgumentException- 如果 limit 小于等于 0
-
reset
void reset()重置所有统计指标清除所有已收集的性能指标数据,将计数器归零。 通常在以下情况使用:
- 系统维护后重新开始统计
- 定期归档历史数据后重置
- 测试前清理环境
注意:此操作不可逆,会丢失所有历史统计数据。 建议在重置前先导出或归档重要数据。
-