prometheus.NewHistogram() 用于直方图度量类型的 api

Posted

技术标签:

【中文标题】prometheus.NewHistogram() 用于直方图度量类型的 api【英文标题】:prometheus.NewHistogram() api for histogram metric type 【发布时间】:2021-12-11 11:06:32 【问题描述】:

使用 github.com/prometheus/client_golang/prometheus 库来检测 GO 应用程序,用于指标:

在下面的代码中:

requestDurations := prometheus.NewHistogram(prometheus.HistogramOpts
     Name: "http_request_duration_seconds"
     Help: "A Histogram of the http request duration in secconds"

     // Cumulative bucket upper bounds
     Buckets: []float640.05, 0.1, 0.25, 0.5, 1, 2,5, 5, 10
)

requestDurations.Observe(0.42)

    Buckets: []float640.05, 0.1, 0.25, 0.5, 1, 2,5, 5, 10 是什么意思?

    requestDurations.Observe(0.42) 是什么意思?

【问题讨论】:

【参考方案1】:

正如包装文档所述:

Buckets 定义了将观测值计入其中的存储桶。每个 切片中的元素是存储桶的上界。这 值必须严格按递增顺序排序。没有必要 添加一个带有 +Inf 约束的最高存储桶,它将被添加 含蓄地。默认值为 DefBuckets。

直方图统计桶中的观察值。使用此声明,您可以声明上限为 0.05、0.1、0.25、...、5、10、+inf 的存储桶。每个观察都将计入其中一个桶中。例如,Observe(0.42) 将增加上限 >=0.5 的存储桶。

【讨论】:

实际上是递增所有以上限为0.5的bucket开头的bucket。看起来这是累积的 是的,编辑了答案以反映这一点【参考方案2】:

我建议您阅读大量的在线文档,例如Histograms

直方图由值桶表示。

第一个命令通过其上限定义直方图的桶:值

第二个命令通过增加

【讨论】:

以上是关于prometheus.NewHistogram() 用于直方图度量类型的 api的主要内容,如果未能解决你的问题,请参考以下文章