-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathall_dashboard.dhall
118 lines (110 loc) · 3.38 KB
/
all_dashboard.dhall
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
let Grafana = ../package.dhall
let ScenarioId = Grafana.ScenarioId
let datasourceName = "Datasource"
let panels =
[ Grafana.Panels.mkSinglestatPanel
Grafana.SinglestatPanel::{
, title = "Singlestat panel"
, gridPos = { x = 0, y = 0, w = 24, h = 3 }
, colorBackground = True
, datasource = Some ("\$" ++ datasourceName)
, targets =
[ Grafana.MetricsTargets.TestDataDBTarget
{ refId = "A", scenarioId = ScenarioId.random_walk }
]
}
, Grafana.Panels.mkRow
Grafana.Row::{
, title = "This is the \$Custom row"
, gridPos = { x = 0, y = 4, w = 0, h = 0 }
, repeat = Some "Custom"
}
, Grafana.Panels.mkTextPanel
Grafana.TextPanel::{
, title = "Markdown panel"
, gridPos = { x = 0, y = 5, w = 12, h = 6 }
, content =
''
# foo
$Custom
''
, mode = Grafana.TextPanels.Mode.markdown
}
, Grafana.Panels.mkTextPanel
Grafana.TextPanel::{
, title = "Html panel"
, gridPos = { x = 12, y = 5, w = 12, h = 6 }
, content =
''
<h1>bar</h1>
<br>
$Custom
''
, mode = Grafana.TextPanels.Mode.html
}
, Grafana.Panels.mkGraphPanel
Grafana.GraphPanel::{
, title = "Temperature"
, gridPos = { x = 0, y = 12, w = 24, h = 6 }
, datasource = Some ("\$" ++ datasourceName)
, xaxis = Grafana.XAxis::{ name = Some "x-label" }
, yaxes =
[ Grafana.YAxis::{ label = Some "temperature" }
, Grafana.YAxis.default
]
, targets =
[ Grafana.MetricsTargets.TestDataDBTarget
{ refId = "A", scenarioId = ScenarioId.random_walk }
]
}
]
let templateVariables =
[ Grafana.TemplatingVariableUtils.mkInterval
"Interval"
[ "5s", "10s", "15s", "20s", "25s" ]
False
, Grafana.TemplatingVariableUtils.mkDatasource
datasourceName
"testdata"
""
False
, Grafana.TemplatingVariableUtils.mkCustom
"Custom"
[ "1st", "2nd", "3rd" ]
False
, Grafana.TemplatingVariableUtils.mkConstant "Constant" "foobarbaz" False
, Grafana.TemplatingVariableUtils.mkTextbox
"Textbox"
''
some textbox value
''
False
, Grafana.TemplatingVariableUtils.mkAdHoc
"Adhoc"
([] : List { key : Text, operator : Text, value : Text })
False
]
let links =
[ Grafana.Link.Type.Dashboards
Grafana.LinkDashboards::{
, tags = [ "prometheus" ]
, title = "Dashboards"
}
, Grafana.Link.Type.Link
Grafana.LinkExternal::{
, title = "Links"
, url = "https://learnxinyminutes.com/docs/dhall/"
, tooltip = "Learn Dhall"
}
]
let dashboard
: Grafana.Dashboard.Type
= Grafana.Dashboard::{
, title = "dhall-grafana sample"
, uid = Some "dhall-grafana-sample"
, panels = Grafana.Utils.generateIds panels
, editable = True
, templating.list = templateVariables
, links
}
in dashboard