猿问

什么时候在记录请求保持时间在普罗米修斯中使用仪器表或直播图?

我是度量监控的新手。


如果我们要记录请求的持续时间,我认为我们应该使用gauge,但实际上,有人会使用histogram.


例如,在 中grpc-ecosystem/go-grpc-prometheus,他们更喜欢使用histogram来记录持续时间。是否有使用度量类型的公认最佳实践?或者这只是他们自己的喜好。


// ServerMetrics represents a collection of metrics to be registered on a

// Prometheus metrics registry for a gRPC server.

type ServerMetrics struct {

    serverStartedCounter          *prom.CounterVec

    serverHandledCounter          *prom.CounterVec

    serverStreamMsgReceived       *prom.CounterVec

    serverStreamMsgSent           *prom.CounterVec

    serverHandledHistogramEnabled bool

    serverHandledHistogramOpts    prom.HistogramOpts

    serverHandledHistogram        *prom.HistogramVec

}

谢谢~


一只甜甜圈
浏览 101回答 1
1回答

繁花如伊

我对此很陌生,但让我尝试回答您的问题。因此,请对我的回答持保留态度,或者可能有人在使用指标观察他们的系统方面有经验。如https://prometheus.io/docs/concepts/metric_types/中所述量规是表示可以任意上下变化的单个数值的指标。因此,如果您的目标是显示当前值(请求的持续时间),您可以使用仪表。但我认为使用指标的目的是发现系统中的问题,或者当某些值不在预定义范围内时生成警报,或者为您的系统获取性能值(如 Apdex 分数)。来自https://prometheus.io/docs/concepts/metric_types/#histogram使用 histogram_quantile() 函数从直方图甚至是直方图的聚合计算分位数。直方图也适用于计算 Apdex 分数。来自https://en.wikipedia.org/wiki/ApdexApdex(应用程序性能指数)是一个由公司联盟开发的开放标准,用于衡量软件应用程序在计算方面的性能。其目的是通过指定一种统一的方式来分析和报告衡量的性能满足用户期望的程度,从而将衡量结果转化为对用户满意度的洞察。阅读分位数以及直方图和摘要中的计算https://prometheus.io/docs/practices/histograms/#quantiles两条经验法则:如果需要聚合,请选择直方图。否则,如果您了解将观察到的值的范围和分布,请选择直方图。如果您需要准确的分位数,请选择摘要,无论值的范围和分布如何。或者像 Adam Woodbeck 在他的书《Network programming with Go》中说的:一般建议是在您不知道预期值的范围时使用摘要,但我建议您尽可能使用直方图,以便您可以在指标服务器上聚合直方图。
随时随地看视频慕课网APP

相关分类

Go
我要回答