-
Notifications
You must be signed in to change notification settings - Fork 11
/
common.libsonnet
89 lines (83 loc) · 2.24 KB
/
common.libsonnet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
local grafana = import 'grafonnet/grafana.libsonnet';
local influxdb = grafana.influxdb;
local prometheus = grafana.prometheus;
{
default_graph(
title=null,
description=null,
datasource=null,
format='none',
min=null,
max=null,
labelY1=null,
decimals=3,
decimalsY1=0,
legend_avg=true,
legend_max=true,
panel_height=8,
panel_width=8,
):: grafana.graphPanel.new(
title=title,
description=description,
datasource=datasource,
format=format,
min=min,
max=max,
labelY1=labelY1,
fill=0,
decimals=decimals,
decimalsY1=decimalsY1,
sort='decreasing',
legend_alignAsTable=true,
legend_avg=legend_avg,
legend_current=true,
legend_max=legend_max,
legend_values=true,
legend_sort='current',
legend_sortDesc=true,
) { gridPos: { w: panel_width, h: panel_height } },
row(title):: grafana.row.new(title) { gridPos: { w: 24, h: 1 } },
default_metric_target(
datasource,
metric_name,
job=null,
policy=null,
measurement=null,
converter='mean'
)::
if datasource == '${DS_PROMETHEUS}' then
prometheus.target(
expr=std.format('%s{job=~"%s"}', [metric_name, job]),
legendFormat='{{alias}}',
)
else if datasource == '${DS_INFLUXDB}' then
influxdb.target(
policy=policy,
measurement=measurement,
group_tags=['label_pairs_alias'],
alias='$tag_label_pairs_alias',
).where('metric_name', '=', metric_name)
.selectField('value').addConverter(converter),
default_rps_target(
datasource,
metric_name,
job=null,
rate_time_range=null,
policy=null,
measurement=null,
)::
if datasource == '${DS_PROMETHEUS}' then
prometheus.target(
expr=std.format('rate(%s{job=~"%s"}[%s])',
[metric_name, job, rate_time_range]),
legendFormat='{{alias}}',
)
else if datasource == '${DS_INFLUXDB}' then
influxdb.target(
policy=policy,
measurement=measurement,
group_tags=['label_pairs_alias'],
alias='$tag_label_pairs_alias',
).where('metric_name', '=', metric_name)
.selectField('value').addConverter('mean').addConverter('non_negative_derivative', ['1s']),
}