374
}
375
376
>
func setDefaultPerUnitHistogramBoundaries(clientConfig *ClientConfig) {
config.go
377
>
buckets := maps.Clone(defaultPerUnitHistogramBoundaries)
378
>
379
>
// In config, when overwrite default buckets, we use [dimensionless / miliseconds / bytes] as keys.
380
>
// But in code, we use [1 / ms / By] as key (to align with otel unit definition). So we do conversion here.
381
>
if bucket, ok := clientConfig.PerUnitHistogramBoundaries[UnitNameDimensionless]; ok {
382
buckets[Dimensionless] = bucket
383
}
384
>
if bucket, ok := clientConfig.PerUnitHistogramBoundaries[UnitNameMilliseconds]; ok {
config.go
385
buckets[Milliseconds] = bucket
386
}
387
>
if bucket, ok := clientConfig.PerUnitHistogramBoundaries[UnitNameBytes]; ok {
config.go
388
buckets[Bytes] = bucket
389
}
390
391
>
bucketInSeconds := make([]float64, len(buckets[Milliseconds]))
config.go
392
>
for idx, boundary := range buckets[Milliseconds] {
393
>
bucketInSeconds[idx] = boundary / float64(time.Second/time.Millisecond)
394
>
}
395
>
buckets[Seconds] = bucketInSeconds
396
>
397
>
clientConfig.PerUnitHistogramBoundaries = buckets
398
}
399