forked from hswaw/hscloud
86 lines
2.5 KiB
Plaintext
86 lines
2.5 KiB
Plaintext
// This file was generated by https://github.com/grafana/dashboard-spec
|
|
|
|
{
|
|
new(
|
|
description=null,
|
|
editable=true,
|
|
graphTooltip=0,
|
|
refresh=null,
|
|
schemaVersion=25,
|
|
style='dark',
|
|
tags=[],
|
|
timezone=null,
|
|
title=null,
|
|
uid=null,
|
|
):: {
|
|
[if description != null then 'description']: description,
|
|
[if editable != null then 'editable']: editable,
|
|
[if graphTooltip != null then 'graphTooltip']: graphTooltip,
|
|
[if refresh != null then 'refresh']: refresh,
|
|
[if schemaVersion != null then 'schemaVersion']: schemaVersion,
|
|
[if style != null then 'style']: style,
|
|
[if tags != null then 'tags']: tags,
|
|
[if timezone != null then 'timezone']: timezone,
|
|
[if title != null then 'title']: title,
|
|
[if uid != null then 'uid']: uid,
|
|
|
|
setTime(
|
|
from='now-6h',
|
|
to='now',
|
|
):: self {}
|
|
+ { time+: { [if from != null then 'from']: from } }
|
|
+ { time+: { [if to != null then 'to']: to } }
|
|
,
|
|
|
|
setTimepicker(
|
|
refreshIntervals=['5s', '10s', '30s', '1m', '5m', '15m', '30m', '1h', '2h', '1d'],
|
|
):: self {}
|
|
+ { timepicker+: { [if refreshIntervals != null then 'refresh_intervals']: refreshIntervals } }
|
|
,
|
|
|
|
|
|
addTemplate(
|
|
template
|
|
):: self {}
|
|
+ { templating+: { list+: [
|
|
template,
|
|
] } },
|
|
|
|
addAnnotation(
|
|
builtIn=0,
|
|
datasource='default',
|
|
enable=true,
|
|
hide=false,
|
|
iconColor=null,
|
|
name=null,
|
|
rawQuery=null,
|
|
showIn=0,
|
|
):: self {}
|
|
+ { annotations+: { list+: [
|
|
{
|
|
[if builtIn != null then 'builtIn']: builtIn,
|
|
[if datasource != null then 'datasource']: datasource,
|
|
[if enable != null then 'enable']: enable,
|
|
[if hide != null then 'hide']: hide,
|
|
[if iconColor != null then 'iconColor']: iconColor,
|
|
[if name != null then 'name']: name,
|
|
[if rawQuery != null then 'rawQuery']: rawQuery,
|
|
[if showIn != null then 'showIn']: showIn,
|
|
},
|
|
] } },
|
|
|
|
|
|
panels: [],
|
|
_nextPanelID:: 2,
|
|
addPanel(panel):: self {
|
|
local nextPanelID = super._nextPanelID,
|
|
panels+: [
|
|
panel { id: nextPanelID } +
|
|
if 'panels' in panel then { panels: std.mapWithIndex(function(i, p) p { id: nextPanelID + i + 1 }, panel.panels) } else {},
|
|
],
|
|
_nextPanelID:: nextPanelID + 1 + (if 'panels' in panel then std.length(panel.panels) else 0),
|
|
},
|
|
addPanels(panels):: std.foldl(function(d, p) d.addPanel(p), panels, self),
|
|
},
|
|
}
|