Vivid

指标

启用指标、自定义 Metrics 与指标更新通知

Actor 系统可选的指标能力用于采集与监控运行状态(如 Actor 数量、失败数、重启数、死信数等)。本文说明如何启用、如何注入自定义 Metrics 实现,以及如何将指标变更推送到事件流。入口配置见 Actor System 配置

启用指标

  • WithActorSystemEnableMetrics(true):启用指标采集。若未同时设置 WithActorSystemMetrics,框架会使用默认实现(内存统计)。
  • WithActorSystemMetrics(m):使用自定义 metrics.Metrics 实现,替代默认实现。可与 EnableMetrics 配合使用,用于将指标写入 Prometheus、日志或自有监控系统。

启用后,系统会创建并维护内部 Metrics Actor,在 Actor 创建/终止、失败、重启、死信等事件发生时更新指标。ctx.Metrics() 返回的即为当前系统配置的 Metrics 实例,可供业务打点(如自定义 Counter、Gauge)。

指标更新通知(EventStream)

WithActorSystemEnableMetricsUpdatedNotify(duration) 控制是否将指标快照推送到事件流,以及推送频率:

取值行为
< 0不推送(默认)
= 0每次指标变更后立即推送一次快照
> 0按该 duration 间隔定期推送快照,减少推送频率

订阅方通过 ctx.EventStream().Subscribe(ctx, metrics.MetricsSnapshot) 接收快照(类型来自 github.com/kercylan98/vivid/pkg/metrics),用于监控大盘、告警或日志。快照包含 Counters、Gauges、Histograms 等字段,详见 pkg.go.dev - metrics

On this page