A DSL for programmatically generating Grafana dashboards. Currently, this module does not interface with Grafana's API. Instead, write the configurations to disk and configure Grafana to load the dashboards.
In addition to the above syntax, you can also create objects like rows, panels, alerts, and more directly. This pattern enables reusable configuration components.
All top level DSL methods accept a config object. Use this parameter to directly pass raw Grafana configuration to accomodate cases where the DSL doesn't provide a required method.
Dashboard
method
description
default
title
Set dashboard title
''
tags
Set dashboard tags
[]
refresh
Set refresh rate
1m
time(from,to='now')
Set time range
from=now-1hto=now
template
Add template variable. Accepts either a callback function receiving template DSL function, or a pre-configured template object
row
Add row. Accepts either a callback function receiving row DSL function, or a pre-built row object
Template
method
description
default
name
Set template variable name
''
type
Set template variable type (e.g: query,custom)
''
multi(val=true)
Toggle multi-select
false
includeAll(val=true)
Include all option
false
query
Template variable query. For type=custom, a comma delimited list of options
datasource
For type=query, set the datasource
regex
For type=query, apply a regex against each return value
refreshOnLoad
Sets refresh=1 to enable variable refresh on dashboard load
refreshOnTimeChange
Sets refresh=2 to enable variable refresh on time change
Row
method
description
default
title
Set row title
''
singleStatPanel
Accepts either a callback function receiving singleStatPanel DSL function, or a pre-configured singleStatPanel object
graphPanel
Accepts either a callback function receiving graphPanel DSL function, or a pre-configured graphPanel object
graphPanel
method
description
default
title
Set panel title
''
span
Set panel span (Out of 12 columns)
12
datasource
Set panel datasource
''
lines
Toggle lines draw mode
true
points
Toggle lines draw mode
false
bars
Toggle lines draw mode
false
format
Shortcut for setting yaxes.format
``
fill
Set fill transparency 0-10
1
yaxes
Configure yaxes for graph. Accepts either a callback function receiving yaxes DSL function, or a pre-configured yaxes object
target
Add target to panel. Accepts either a callback function receiving target DSL function, or a pre-configured target object
alert
Configure alerting for panel. Accepts either a callback function receiving an alert DSL function, or a pre-configured alert object
singleStatPanel
method
description
default
title
Set panel title
''
span
Set panel span (Out of 12 columns)
12
format
Set data format (e.g short, percent)
'short'
datasource
Set panel datasource
''
target
Add target to panel. Accepts either a callback function receiving target DSL function, or a pre-configured target object
sparkline
Enable sparklines. Accepts either a callback function receiving a sparkline DSL function, or a pre-configured sparkline object
alert
Configure alerting for panel. Accepts either a callback function receiving an alert DSL function, or a pre-configured alert object
valueName
Set value name property for panel
'avg'
Target
Configure a panel target.
method
description
default
expr
The query to execute
''
legendFormat
Configure target's legend format
sparkline
Configure singlestat panel sparkline.
method
description
default
show(val=true)
Show sparkline
false
full(val=true)
Set sparkline to full background mode
false
fillColor({rgba(,,,)})
Set sparkline fill color
'rgba(31, 118, 189, 0.18)'
lineColor({rgb(,,,)})
Set sparkline line color
'rgb(31, 120, 193)'
yaxes
Configure panel yaxes for graphPanel
method
description
default
format
Set data format
'short'
show
Show y axes
true
max
Set max value
``
min
Set min value
``
Alert
Configure a panel alert. Currently only for graphPanel
method
description
default
name
Set alert name
''
frequency
Set alert check frequency
''
notifications([{0-9},])
Set alert notifications. Pass in the notification ID. You can find this from the notification edit page (e.g /alerting/notification/1/edit -> .notifications([1]))
[]
condition
Configure an alert condition. Accepts either a callback function receiving a condition DSL function, or a pre-configured condition object
Condition
Configure an alert condition.
method
description
default
when
e.g: avg,min,max,sum,median,count,last
'avg'
of(index,start='5m',end='now')
Set the alert query target and window. The first param is the id of a configured panel target. If your panel has a single target, you would pass 1