Skip to content

Commit cf5a8c2

Browse files
committed
updated logic and tests to use arithmetic mean just for NHCB
Signed-off-by: amanycodes <amanycodes@gmail.com>
1 parent b1e8593 commit cf5a8c2

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

promql/functions.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1367,8 +1367,10 @@ func funcHistogramStdDev(vals []parser.Value, _ parser.Expressions, enh *EvalNod
13671367
var val float64
13681368
if bucket.Lower <= 0 && 0 <= bucket.Upper {
13691369
val = 0
1370-
} else {
1370+
} else if sample.H.Schema == -53 {
13711371
val = (bucket.Upper * bucket.Lower) / 2.0
1372+
} else {
1373+
val = math.Sqrt(bucket.Upper * bucket.Lower)
13721374
if bucket.Upper < 0 {
13731375
val = -val
13741376
}

promql/promqltest/testdata/histograms.test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ eval instant at 50m histogram_avg(testhistogram3)
9696
# Test histogram_stddev. This has no classic equivalent.
9797
eval instant at 50m histogram_stddev(testhistogram3)
9898
{start="positive"} 2.962188994031886
99-
{start="negative"} 4.017507000616178
99+
{start="negative"} 3.9825070621406313
100100

101101
# Test histogram_stdvar. This has no classic equivalent.
102102
eval instant at 50m histogram_stdvar(testhistogram3)

promql/promqltest/testdata/native_histograms.test

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ load 10m
313313
histogram_stddev_stdvar_1 {{schema:2 count:4 sum:10 buckets:[1 0 0 0 1 0 0 1 1]}}x1
314314

315315
eval instant at 10m histogram_stddev(histogram_stddev_stdvar_1)
316-
{} 2.6436835435182546
316+
{} 1.0787993180043811
317317

318318
eval instant at 10m histogram_stdvar(histogram_stddev_stdvar_1)
319319
{} 6.989062678269235
@@ -325,7 +325,7 @@ load 10m
325325
histogram_stddev_stdvar_2 {{schema:8 count:10 sum:10 buckets:[1 2 3 4]}}x1
326326

327327
eval instant at 10m histogram_stddev(histogram_stddev_stdvar_2)
328-
{} 0.49592215632921693
328+
{} 0.0048960313898237465
329329

330330
eval instant at 10m histogram_stdvar(histogram_stddev_stdvar_2)
331331
{} 0.2459387851382203
@@ -337,7 +337,7 @@ load 10m
337337
histogram_stddev_stdvar_3 {{schema:3 count:7 sum:62 z_bucket:1 buckets:[0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 ] n_buckets:[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 ]}}x1
338338

339339
eval instant at 10m histogram_stddev(histogram_stddev_stdvar_3)
340-
{} 2067.1553085327896
340+
{} 42.94723640025793
341341

342342
eval instant at 10m histogram_stdvar(histogram_stddev_stdvar_3)
343343
{} 4.273131069595293e+06
@@ -349,7 +349,7 @@ load 10m
349349
histogram_stddev_stdvar_4 {{schema:0 count:10 sum:-112946 z_bucket:0 n_buckets:[0 0 1 1 1 0 1 1 0 0 3 0 0 0 1 0 0 1]}}x1
350350

351351
eval instant at 10m histogram_stddev(histogram_stddev_stdvar_4)
352-
{} 1.3583500773768022e+09
352+
{} 27556.344499842402
353353

354354
eval instant at 10m histogram_stdvar(histogram_stddev_stdvar_4)
355355
{} 1.8451149327095644e+18
@@ -361,7 +361,7 @@ load 10m
361361
histogram_stddev_stdvar_5 {{schema:0 count:10 sum:-100 z_bucket:0 n_buckets:[0 0 0 0 10]}}x1
362362

363363
eval instant at 10m histogram_stddev(histogram_stddev_stdvar_5)
364-
{} 54
364+
{} 1.3137084989847612
365365

366366
eval instant at 10m histogram_stdvar(histogram_stddev_stdvar_5)
367367
{} 2916

0 commit comments

Comments
 (0)