Prometheus Go 客户端库的 ExponentialBuckets API 的最低粒度是多少?



我正在尝试Prometheus GO客户库。ExponentialBuckets API是否接受参数start小于1.0(例如0.001)?

包裹Prometheus

import "github.com/prometheus/client_golang/prometheus"

func enderentialbuckets

func ExponentialBuckets(start, factor float64, count int) []float64

指数buckets创建"计数"存储桶,其中最低的存储桶 具有"启动"的上限,每个以下都有水桶的上限 是上一个水桶上限的"因子"次。最终 INF 水桶未计数,也未包含在返回的切片中。这 返回的切片旨在用于桶字段 直方图。

函数恐慌如果"计数"为0或负数,则'start'是0或 负数,或者"因子"小于或等于1。


尝试start等于最小正常正 float64

package main
import (
    "fmt"
    "math"
)
func main() {
    // Minimum normal positive float64
    // 0 00000000001 0000000000000000000000000000000000000000000000000000
    // 2.2250738585072014e−308
    start := math.Float64frombits(uint64(1 << (63 - 11)))
    fmt.Println(start)
}

输出:

2.2250738585072014e-308

最新更新