Prometheus Go 客户端库的 ExponentialBuckets API 的最低粒度是多少?
What is the lowest granularity for Prometheus Go client library's ExponentialBuckets API?
我正在试验 Prometheus Go client library. Does ExponentialBuckets API 接受小于 1.0(例如 0.001)的参数 start
?
import "github.com/prometheus/client_golang/prometheus"
func ExponentialBuckets(start, factor float64, count int) []float64
ExponentialBuckets creates 'count' buckets, where the lowest bucket
has an upper bound of 'start' and each following bucket's upper bound
is 'factor' times the previous bucket's upper bound. The final +Inf
bucket is not counted and not included in the returned slice. The
returned slice is meant to be used for the Buckets field of
HistogramOpts.
The function panics if 'count' is 0 or negative, if 'start' is 0 or
negative, or if 'factor' is less than or equal 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
我正在试验 Prometheus Go client library. Does ExponentialBuckets API 接受小于 1.0(例如 0.001)的参数 start
?
import "github.com/prometheus/client_golang/prometheus"
func ExponentialBuckets(start, factor float64, count int) []float64
ExponentialBuckets creates 'count' buckets, where the lowest bucket has an upper bound of 'start' and each following bucket's upper bound is 'factor' times the previous bucket's upper bound. The final +Inf bucket is not counted and not included in the returned slice. The returned slice is meant to be used for the Buckets field of HistogramOpts.
The function panics if 'count' is 0 or negative, if 'start' is 0 or negative, or if 'factor' is less than or equal 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