首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >普罗米修斯直方图向量:所有桶都同样填充?

普罗米修斯直方图向量:所有桶都同样填充?
EN

Stack Overflow用户
提问于 2018-06-06 12:45:03
回答 2查看 1.8K关注 0票数 2

我打算使用Prometheus直方图向量来监视Go中请求处理程序的执行时间。

我是这样登记的:

代码语言:javascript
复制
var RequestTimeHistogramVec = prometheus.NewHistogramVec(
    prometheus.HistogramOpts{
        Name:    "request_duration_seconds",
        Help:    "Request duration distribution",
        Buckets: []float64{0.125, 0.25, 0.5, 1, 1.5, 2, 3, 4, 5, 7.5, 10, 20},
    },
    []string{"endpoint"},
)

func init() {
    prometheus.MustRegister(RequestTimeHistogramVec)
}

我用它是为了:

代码语言:javascript
复制
startTime := time.Now()
// handle request here
metrics.RequestTimeHistogramVec.WithLabelValues("get:" + endpointName).Observe(time.Since(startTime).Seconds())

当我在使用了我的端点几次之后执行HTTP到/metrics端点时,除其他外,我得到了以下内容:

代码语言:javascript
复制
# HELP request_duration_seconds Request duration distribution
# TYPE request_duration_seconds histogram
request_duration_seconds_bucket{endpoint="get:/position",le="0.125"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="0.25"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="0.5"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="1"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="1.5"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="2"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="3"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="4"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="5"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="7.5"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="10"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="20"} 6
request_duration_seconds_bucket{endpoint="get:/position",le="+Inf"} 6
request_duration_seconds_sum{endpoint="get:/position"} 0.022002387
request_duration_seconds_count{endpoint="get:/position"} 6

从外观上看,所有桶的填充量是相同的,等于我使用端点的总次数(6次)。

为什么会发生这种情况,我该如何解决呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-06 12:59:38

Prometheus直方图桶是累积的,因此在这种情况下,所有请求所用的时间都小于或等于125 to。

在这种情况下,您选择的水桶可能不是最好的,您可能希望使一些水桶更小。

票数 3
EN

Stack Overflow用户

发布于 2018-06-06 12:59:45

这不是一个错误。注意,填充桶的规则是le=...,意思是“少”或“等于”。由于所有6个请求都很快成功,所有的桶都被填满了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50720747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档