Skip to content

Commit 5a648ff

Browse files
committed
Use a helper function to reduce duplicate code in ncHistogramSumRate, ncHistogramCountRate, ncHistogramCountIncrease
1 parent e008614 commit 5a648ff

File tree

1 file changed

+22
-49
lines changed

1 file changed

+22
-49
lines changed

mixin-utils/utils.libsonnet

Lines changed: 22 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -45,75 +45,48 @@ local g = import 'grafana-builder/grafana.libsonnet';
4545
// If from_recording is true, the function will assume :sum_rate metric
4646
// suffix and no rate needed.
4747
ncHistogramSumRate(metric, selector, rate_interval='$__rate_interval', from_recording=false)::
48-
local rateOpen = if from_recording then '' else 'rate(';
49-
local rateClose = if from_recording then '' else '[%s])' % rate_interval;
50-
{
51-
classic: '%(rateOpen)s%(metric)s_sum%(suffix)s{%(selector)s}%(rateClose)s' % {
52-
metric: metric,
53-
rateInterval: rate_interval,
54-
rateOpen: rateOpen,
55-
rateClose: rateClose,
56-
selector: selector,
57-
suffix: if from_recording then ':sum_rate' else '',
58-
},
59-
native: 'histogram_sum(%(rateOpen)s%(metric)s%(suffix)s{%(selector)s}%(rateClose)s)' % {
60-
metric: metric,
61-
rateInterval: rate_interval,
62-
rateOpen: rateOpen,
63-
rateClose: rateClose,
64-
selector: selector,
65-
suffix: if from_recording then ':sum_rate' else '',
66-
},
67-
},
68-
48+
$.ncHistogramChange('sum', 'rate', metric, selector, rate_interval, from_recording),
6949

7050
// The ncHistogramCountRate (native classic histogram count rate) function is
7151
// used to calculate the histogram rate of count from native histograms or
7252
// classic histograms. Metric name should be provided without _count suffix.
7353
// If from_recording is true, the function will assume :sum_rate metric
7454
// suffix and no rate needed.
7555
ncHistogramCountRate(metric, selector, rate_interval='$__rate_interval', from_recording=false)::
76-
local rateOpen = if from_recording then '' else 'rate(';
77-
local rateClose = if from_recording then '' else '[%s])' % rate_interval;
78-
{
79-
classic: '%(rateOpen)s%(metric)s_count%(suffix)s{%(selector)s}%(rateClose)s' % {
80-
metric: metric,
81-
rateInterval: rate_interval,
82-
rateOpen: rateOpen,
83-
rateClose: rateClose,
84-
selector: selector,
85-
suffix: if from_recording then ':sum_rate' else '',
86-
},
87-
native: 'histogram_count(%(rateOpen)s%(metric)s%(suffix)s{%(selector)s}%(rateClose)s)' % {
88-
metric: metric,
89-
rateInterval: rate_interval,
90-
rateOpen: rateOpen,
91-
rateClose: rateClose,
92-
selector: selector,
93-
suffix: if from_recording then ':sum_rate' else '',
94-
},
95-
},
56+
$.ncHistogramChange('count', 'rate', metric, selector, rate_interval, from_recording),
9657

9758
// The ncHistogramCountIncrease (native classic histogram count rate) function is
9859
// used to calculate the histogram increase of count from native histograms or
9960
// classic histograms. Metric name should be provided without _count suffix.
10061
ncHistogramCountIncrease(metric, selector, rate_interval='$__rate_interval')::
101-
local increaseOpen = 'increase(';
102-
local increaseClose = '[%s])' % rate_interval;
62+
$.ncHistogramChange('count', 'increase', metric, selector, rate_interval, false),
63+
64+
// ncHistogramChange is a helper function to generate queries for either
65+
// histogram sum or count changes over time using the specified function
66+
// (e.g., rate, increase). Metric name should be provided without _sum or
67+
// _count suffix.
68+
ncHistogramChange(sum_or_count, func_name, metric, selector, rate_interval='$__rate_interval', from_recording=false)::
69+
local funcOpen = if from_recording then '' else '%s(' % func_name;
70+
local funcClose = if from_recording then '' else '[%s])' % rate_interval;
71+
local suffix = if from_recording then ':sum_%s' % func_name else '';
10372
{
104-
classic: '%(increaseOpen)s%(metric)s_count{%(selector)s}%(increaseClose)s' % {
73+
classic: '%(funcOpen)s%(metric)s_%(sum_or_count)%(suffix)s{%(selector)s}%(funcClose)s' % {
10574
metric: metric,
10675
rateInterval: rate_interval,
107-
increaseOpen: increaseOpen,
108-
increaseClose: increaseClose,
76+
sum_or_count: sum_or_count,
77+
funcOpen: funcOpen,
78+
funcClose: funcClose,
10979
selector: selector,
80+
suffix: suffix,
11081
},
111-
native: 'histogram_count(%(increaseOpen)s%(metric)s{%(selector)s}%(increaseClose)s)' % {
82+
native: 'histogram_%(sum_or_count)(%(funcOpen)s%(metric)s%(suffix)s{%(selector)s}%(funcClose)s)' % {
11283
metric: metric,
11384
rateInterval: rate_interval,
114-
increaseOpen: increaseOpen,
115-
increaseClose: increaseClose,
85+
sum_or_count: sum_or_count,
86+
funcOpen: funcOpen,
87+
funcClose: funcClose,
11688
selector: selector,
89+
suffix: suffix,
11790
},
11891
},
11992

0 commit comments

Comments
 (0)