25 lines
642 B
Go
25 lines
642 B
Go
package rpc
|
||
|
||
import "time"
|
||
|
||
// Metrics 接收 RPC 业务层指标。默认 NopMetrics,后续可对接 Prometheus。
|
||
type Metrics interface {
|
||
MessageSend(d time.Duration, duplicate bool, err error)
|
||
MessageRateLimited(retryAfterSeconds int)
|
||
OutboxClaimed(count int)
|
||
OutboxDelivered(d time.Duration)
|
||
OutboxFailed(err error)
|
||
}
|
||
|
||
// NopMetrics 是 Metrics 的空实现。
|
||
type NopMetrics struct{}
|
||
|
||
func (NopMetrics) MessageSend(time.Duration, bool, error) {}
|
||
|
||
func (NopMetrics) MessageRateLimited(int) {}
|
||
|
||
func (NopMetrics) OutboxClaimed(int) {}
|
||
|
||
func (NopMetrics) OutboxDelivered(time.Duration) {}
|
||
|
||
func (NopMetrics) OutboxFailed(error) {}
|