Skip to content

Commit 947cadd

Browse files
committed
grafana-builder: fix latencyPanelNativeHistogram to work with 100th quantile
1 parent e008614 commit 947cadd

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

grafana-builder/grafana.libsonnet

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -570,13 +570,13 @@ local utils = import 'mixin-utils/utils.libsonnet';
570570
local qStr = std.toString(q);
571571
acc + [
572572
{
573-
expr: utils.showNativeHistogramQuery(utils.ncHistogramQuantile('0.' + qStr, metricName, selector, multiplier=multiplier)),
573+
expr: utils.showNativeHistogramQuery(utils.ncHistogramQuantile(std.format('%.2f', q/100), metricName, selector, multiplier=multiplier)),
574574
format: 'time_series',
575575
legendFormat: qStr + 'th percentile',
576576
refId: getNextRefId(acc),
577577
},
578578
{
579-
expr: utils.showClassicHistogramQuery(utils.ncHistogramQuantile('0.' + qStr, metricName, selector, multiplier=multiplier)),
579+
expr: utils.showClassicHistogramQuery(utils.ncHistogramQuantile(std.format('%.2f', q/100), metricName, selector, multiplier=multiplier)),
580580
format: 'time_series',
581581
legendFormat: qStr + 'th percentile',
582582
refId: getNextRefId(acc) + '_classic',

grafana-builder/test/test_native-classic-histogram.libsonnet

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,43 +6,55 @@ test.new(std.thisFile)
66
+ test.case.new(
77
name='LatencyPanel fieldConfig',
88
test=test.expect.eq(
9-
actual=std.get(builder.latencyPanelNativeHistogram('request_duration_seconds', 'cluster="cluster1", job="job1"'), 'targets', []),
9+
actual=std.get(builder.latencyPanelNativeHistogram('request_duration_seconds', 'cluster="cluster1", job="job1"', '1e3', [100,99,50]), 'targets'),
1010
expected=[
11+
{
12+
expr: '(histogram_quantile(1.00, sum (rate(request_duration_seconds{cluster="cluster1", job="job1"}[$__rate_interval]))) * 1e3) and on() (vector($latency_metrics) == -1)',
13+
format: 'time_series',
14+
legendFormat: '100th percentile',
15+
refId: 'A',
16+
},
17+
{
18+
expr: '(histogram_quantile(1.00, sum by (le) (rate(request_duration_seconds_bucket{cluster="cluster1", job="job1"}[$__rate_interval]))) * 1e3) and on() (vector($latency_metrics) == 1)',
19+
format: 'time_series',
20+
legendFormat: '100th percentile',
21+
refId: 'A_classic',
22+
},
1123
{
1224
expr: '(histogram_quantile(0.99, sum (rate(request_duration_seconds{cluster="cluster1", job="job1"}[$__rate_interval]))) * 1e3) and on() (vector($latency_metrics) == -1)',
1325
format: 'time_series',
1426
legendFormat: '99th percentile',
15-
refId: 'A',
27+
refId: 'B',
1628
},
1729
{
1830
expr: '(histogram_quantile(0.99, sum by (le) (rate(request_duration_seconds_bucket{cluster="cluster1", job="job1"}[$__rate_interval]))) * 1e3) and on() (vector($latency_metrics) == 1)',
1931
format: 'time_series',
2032
legendFormat: '99th percentile',
21-
refId: 'A_classic',
33+
refId: 'B_classic',
2234
},
2335
{
2436
expr: '(histogram_quantile(0.50, sum (rate(request_duration_seconds{cluster="cluster1", job="job1"}[$__rate_interval]))) * 1e3) and on() (vector($latency_metrics) == -1)',
2537
format: 'time_series',
2638
legendFormat: '50th percentile',
27-
refId: 'B',
39+
refId: 'C',
2840
},
2941
{
3042
expr: '(histogram_quantile(0.50, sum by (le) (rate(request_duration_seconds_bucket{cluster="cluster1", job="job1"}[$__rate_interval]))) * 1e3) and on() (vector($latency_metrics) == 1)',
3143
format: 'time_series',
3244
legendFormat: '50th percentile',
33-
refId: 'B_classic',
45+
refId: 'C_classic',
3446
},
3547
{
3648
expr: '(1e3 * sum(histogram_sum(rate(request_duration_seconds{cluster="cluster1", job="job1"}[$__rate_interval]))) /\nsum(histogram_count(rate(request_duration_seconds{cluster="cluster1", job="job1"}[$__rate_interval])))\n) and on() (vector($latency_metrics) == -1)',
3749
format: 'time_series',
3850
legendFormat: 'Average',
39-
refId: 'C',
51+
refId: 'D',
4052
},
4153
{
4254
expr: '(1e3 * sum(rate(request_duration_seconds_sum{cluster="cluster1", job="job1"}[$__rate_interval])) /\nsum(rate(request_duration_seconds_count{cluster="cluster1", job="job1"}[$__rate_interval]))\n) and on() (vector($latency_metrics) == 1)',
4355
format: 'time_series',
4456
legendFormat: 'Average',
45-
refId: 'C_classic',
57+
refId: 'D_classic',
4658
},
4759
],
4860
)

0 commit comments

Comments
 (0)