我刚开始做公制监控。
如果我们想记录请求的持续时间,我认为我们应该使用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
}
谢谢~
发布于 2022-04-06 21:39:44
我对此并不熟悉,但请允许我回答你的问题。所以,以我的答案为例,或者是那些在使用度量来观察他们的系统方面有经验的人。
如https://prometheus.io/docs/concepts/metric_types/中所述
规是一种度量,它表示一个可以任意上升和下降的数值。
因此,如果您的目标是显示当前值(请求的持续时间),您可以使用一个量规。但我认为,使用度量的目标是在系统中发现问题,或者在系统中某些值不在预定义的范围内或获得性能值(如Apdex评分)时生成警报。
来自https://prometheus.io/docs/concepts/metric_types/#histogram
使用histogram_quantile()函数从直方图甚至直方图聚合中计算分位数。直方图也适用于计算Apdex评分。
来自https://en.wikipedia.org/wiki/Apdex
应用性能指数(
Apdex,)是一种由企业联盟开发的用于衡量计算软件应用性能的开放标准。它的目的是通过指定一种统一的方法来分析和报告所测量的性能满足用户期望的程度,从而将度量转化为对用户满意度的洞察力。
阅读分位数以及直方图和https://prometheus.io/docs/practices/histograms/#quantiles摘要中的计算
有两条经验法则:
如果您需要聚合,如果您知道要观察的值的范围和分布,请选择histograms.
或者就像亚当·伍德贝克( Adam )在他的“网络编程与围棋”(Go)一书中所说的:
一般的建议是在不知道期望值的范围时使用摘要,但我建议您尽可能使用直方图,以便可以在度量服务器上聚合直方图。
https://stackoverflow.com/questions/71768510
复制相似问题