监控接口

接口实现

Kratos 暴露了三种监控接口,分别是 Counter, Gauge, Observer。

Counter

  1. type Counter interface {
  2. With(lvs ...string) Counter
  3. Inc()
  4. Add(delta float64)
  5. }

Counter 是最简单的计数器,对外提供了Inc, Add两个方法。只能用于计数的增加。通常用于统计服务的错误数,请求qps。

Gauge

  1. type Gauge interface {
  2. With(lvs ...string) Gauge
  3. Set(value float64)
  4. Add(delta float64)
  5. Sub(delta float64)
  6. }

Guage是个状态指示器,用于记录服务当前的状态,状态值可以随着时间增加或减少。通常用于监控服务当前的cpu使用率,内存使用量等。

Observer

  1. type Observer interface {
  2. With(lvs ...string) Observer
  3. Observe(float64)
  4. }

Observer属于比较复杂的监控指标,对比以上两个提供了更多额外的信息,可以用于观察统计总值,数量以及分位百分比。在Prometheus中,对应了HistogramSummary的实现。其中Histogram 直方图用于记录不同分桶的数量。比如不同请求耗时区间的请求数,用于指示将指标保存到了多个分桶,因此Histogram几乎无开销。Summary则记录了不同分位的值,基于概率采样计算,比如90% 99% 分位耗时,由于需要进行额外的计算,因此对于服务有一定的开销。

References