ops/monitoring: pull in grafonnet-7.0

Change-Id: Ie036ef767419418876a18255a5ad378f5cfa1535
master
q3k 2020-10-10 17:57:44 +02:00 committed by q3k
parent 3af7da1988
commit 7d311e9602
13 changed files with 1839 additions and 0 deletions

View File

@ -0,0 +1,846 @@
# Docs
* [dashboard](#dashboard)
* [panel](#panel)
* [gauge.new](#panelGaugenew)
* [graph.new](#panelGraphnew)
* [row.new](#panelRownew)
* [stat.new](#panelStatnew)
* [table.new](#panelTablenew)
* [text.new](#panelTextnew)
* [target](#target)
* [prometheus.new](#targetPrometheusnew)
* [template](#template)
* [datasource.new](#templateDatasourcenew)
* [query.new](#templateQuerynew)
## dashboard
### dashboard.new
Instantiate a dashboard.
* **description**: (type: string, default: `null`)
* **editable**: (type: boolean, default: `true`)
* **graphTooltip**: (type: integer, default: `0`)
* **refresh**: (type: string, default: `null`)
* **schemaVersion**: (type: integer, default: `25`)
* **style**: (type: string, default: `"dark"`)
* **tags**: (type: array, default: `[]`)
* **timezone**: (type: string, default: `null`)
* **title**: (type: string, default: `null`)
* **uid**: (type: string, default: `null`)
#### #setTime
* **from**: (type: string, default: `"now-6h"`)
* **to**: (type: string, default: `"now"`)
#### #setTimepicker
* **refreshIntervals**: (type: array, default: `["5s","10s","30s","1m","5m","15m","30m","1h","2h","1d"]`)
#### #addAnnotation
* **builtIn**: (type: integer, default: `0`)
* **datasource**: (type: string, default: `"default"`)
* **enable**: (type: boolean, default: `true`)
* **hide**: (type: boolean, default: `false`)
* **iconColor**: (type: string, default: `null`)
* **name**: (type: string, default: `null`)
* **rawQuery**: (type: string, default: `null`)
* **showIn**: (type: integer, default: `0`)
#### #addTemplate
* **template**: (type: object)
## panel
### panel.gauge.new
* **datasource**: (type: string, default: `"default"`)
* **description**: (type: string, default: `null`)
* **repeat**: (type: string, default: `null`)
* **repeatDirection**: (type: string, default: `null`)
* **title**: (type: string, default: `null`)
* **transparent**: (type: boolean, default: `false`)
#### #setFieldConfig
* **max**: (type: integer, default: `null`)
* **min**: (type: integer, default: `null`)
* **thresholdMode**: (type: string, default: `"absolute"`)
* **unit**: (type: string, default: `null`)
#### #setGridPos
* **h**: (type: integer, default: `8`)
Panel height.
* **w**: (type: integer, default: `12`)
Panel width.
* **x**: (type: integer, default: `null`)
Panel x position.
* **y**: (type: integer, default: `null`)
Panel y position.
#### #setOptions
* **calcs**: (type: array, default: `["mean"]`)
* **fields**: (type: string, default: `null`)
* **orientation**: (type: string, default: `"auto"`)
* **showThresholdLabels**: (type: boolean, default: `false`)
* **showThresholdMarkers**: (type: boolean, default: `true`)
* **values**: (type: boolean, default: `false`)
#### #addPanelLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addDataLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addMapping
* **from**: (type: string, default: `null`)
* **id**: (type: integer, default: `null`)
* **operator**: (type: string, default: `null`)
* **text**: (type: string, default: `null`)
* **to**: (type: string, default: `null`)
* **type**: (type: integer, default: `null`)
* **value**: (type: string, default: `null`)
#### #addOverride
* **matcher**: (type: oject, default: `null`)
* **properties**: (type: array, default: `null`)
#### #addThresholdStep
* **color**: (type: string, default: `null`)
* **value**: (type: integer, default: `null`)
#### #addTarget
* **target**: (type: object)
### panel.graph.new
* **bars**: (type: boolean, default: `false`)
Display values as a bar chart.
* **dashLength**: (type: integer, default: `10`)
Dashed line length.
* **dashes**: (type: boolean, default: `false`)
Show line with dashes.
* **datasource**: (type: string, default: `"default"`)
* **decimals**: (type: integer, default: `null`)
Controls how many decimals are displayed for legend values and
graph hover tooltips.
* **description**: (type: string, default: `null`)
* **fill**: (type: integer, default: `1`)
Amount of color fill for a series. Expects a value between 0 and 1.
* **fillGradient**: (type: integer, default: `0`)
Degree of gradient on the area fill. 0 is no gradient, 10 is a
steep gradient.
* **hiddenSeries**: (type: boolean, default: `false`)
Hide the series.
* **lines**: (type: boolean, default: `true`)
Display values as a line graph.
* **linewidth**: (type: integer, default: `1`)
The width of the line for a series.
* **nullPointMode**: (type: string, default: `"null"`)
How null values are displayed.
* 'null' - If there is a gap in the series, meaning a null value,
then the line in the graph will be broken and show the gap.
* 'null as zero' - If there is a gap in the series, meaning a null
value, then it will be displayed as a zero value in the graph
panel.
* 'connected' - If there is a gap in the series, meaning a null
value or values, then the line will skip the gap and connect to the
next non-null value.
* **percentage**: (type: boolean, default: `false`)
Available when `stack` is true. Each series is drawn as a percentage
of the total of all series.
* **pointradius**: (type: integer, default: `null`)
Controls how large the points are.
* **points**: (type: boolean, default: `false`)
Display points for values.
* **repeat**: (type: string, default: `null`)
* **repeatDirection**: (type: string, default: `null`)
* **spaceLength**: (type: integer, default: `10`)
Dashed line spacing when `dashes` is true.
* **stack**: (type: boolean, default: `false`)
Each series is stacked on top of another.
* **steppedLine**: (type: boolean, default: `false`)
Draws adjacent points as staircase.
* **timeFrom**: (type: string, default: `null`)
* **timeShift**: (type: string, default: `null`)
* **title**: (type: string, default: `null`)
* **transparent**: (type: boolean, default: `false`)
#### #setGridPos
* **h**: (type: integer, default: `8`)
Panel height.
* **w**: (type: integer, default: `12`)
Panel width.
* **x**: (type: integer, default: `null`)
Panel x position.
* **y**: (type: integer, default: `null`)
Panel y position.
#### #setLegend
* **alignAsTable**: (type: boolean, default: `null`)
Whether to display legend in table.
* **avg**: (type: boolean, default: `false`)
Average of all values returned from the metric query.
* **current**: (type: boolean, default: `false`)
Last value returned from the metric query.
* **max**: (type: boolean, default: `false`)
Maximum of all values returned from the metric query.
* **min**: (type: boolean, default: `false`)
Minimum of all values returned from the metric query.
* **rightSide**: (type: boolean, default: `false`)
Display legend to the right.
* **show**: (type: boolean, default: `true`)
Show or hide the legend.
* **sideWidth**: (type: integer, default: `null`)
Available when `rightSide` is true. The minimum width for the legend in
pixels.
* **total**: (type: boolean, default: `false`)
Sum of all values returned from the metric query.
* **values**: (type: boolean, default: `true`)
#### #setThresholds
* **thresholdMode**: (type: string, default: `"absolute"`)
#### #setTooltip
* **shared**: (type: boolean, default: `true`)
* true - The hover tooltip shows all series in the graph.
Grafana highlights the series that you are hovering over in
bold in the series list in the tooltip.
* false - The hover tooltip shows only a single series, the one
that you are hovering over on the graph.
* **sort**: (type: integer, default: `2`)
* 0 (none) - The order of the series in the tooltip is
determined by the sort order in your query. For example, they
could be alphabetically sorted by series name.
* 1 (increasing) - The series in the hover tooltip are sorted
by value and in increasing order, with the lowest value at the
top of the list.
* 2 (decreasing) - The series in the hover tooltip are sorted
by value and in decreasing order, with the highest value at the
top of the list.
#### #setXaxis
* **buckets**: (type: string, default: `null`)
* **mode**: (type: string, default: `"time"`)
The display mode completely changes the visualization of the
graph panel. Its like three panels in one. The main mode is
the time series mode with time on the X-axis. The other two
modes are a basic bar chart mode with series on the X-axis
instead of time and a histogram mode.
* 'time' - The X-axis represents time and that the data is
grouped by time (for example, by hour, or by minute).
* 'series' - The data is grouped by series and not by time. The
Y-axis still represents the value.
* 'histogram' - Converts the graph into a histogram. A histogram
is a kind of bar chart that groups numbers into ranges, often
called buckets or bins. Taller bars show that more data falls
in that range.
* **name**: (type: string, default: `null`)
* **show**: (type: boolean, default: `true`)
Show or hide the axis.
#### #setYaxis
* **align**: (type: boolean, default: `false`)
Align left and right Y-axes by value.
* **alignLevel**: (type: integer, default: `0`)
Available when align is true. Value to use for alignment of
left and right Y-axes, starting from Y=0.
#### #addDataLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addPanelLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addOverride
* **matcher**: (type: oject, default: `null`)
* **properties**: (type: array, default: `null`)
#### #addSeriesOverride
* **alias**: (type: string, default: `null`)
Alias or regex matching the series you'd like to target.
* **bars**: (type: boolean, default: `null`)
* **color**: (type: string, default: `null`)
* **dashLength**: (type: integer, default: `null`)
* **dashes**: (type: boolean, default: `null`)
* **fill**: (type: integer, default: `null`)
* **fillBelowTo**: (type: string, default: `null`)
* **fillGradient**: (type: integer, default: `null`)
* **hiddenSeries**: (type: boolean, default: `null`)
* **hideTooltip**: (type: boolean, default: `null`)
* **legend**: (type: boolean, default: `null`)
* **lines**: (type: boolean, default: `null`)
* **linewidth**: (type: integer, default: `null`)
* **nullPointMode**: (type: string, default: `null`)
* **pointradius**: (type: integer, default: `null`)
* **points**: (type: boolean, default: `null`)
* **spaceLength**: (type: integer, default: `null`)
* **stack**: (type: integer, default: `null`)
* **steppedLine**: (type: boolean, default: `null`)
* **transform**: (type: string, default: `null`)
* **yaxis**: (type: integer, default: `null`)
* **zindex**: (type: integer, default: `null`)
#### #addThresholdStep
* **color**: (type: string, default: `null`)
* **value**: (type: integer, default: `null`)
#### #addTarget
* **target**: (type: object)
#### #addYaxis
* **decimals**: (type: integer, default: `null`)
Defines how many decimals are displayed for Y value.
* **format**: (type: string, default: `"short"`)
The display unit for the Y value.
* **label**: (type: string, default: `null`)
The Y axis label.
* **logBase**: (type: integer, default: `1`)
The scale to use for the Y value - linear, or logarithmic.
* 1 - linear
* 2 - log (base 2)
* 10 - log (base 10)
* 32 - log (base 32)
* 1024 - log (base 1024)
* **max**: (type: integer, default: `null`)
The maximum Y value.
* **min**: (type: integer, default: `null`)
The minimum Y value.
* **show**: (type: boolean, default: `true`)
Show or hide the axis.
### panel.row.new
* **collapse**: (type: boolean, default: `true`)
* **collapsed**: (type: boolean, default: `true`)
* **datasource**: (type: string, default: `null`)
* **repeat**: (type: string, default: `null`)
* **repeatIteration**: (type: string, default: `null`)
* **showTitle**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **titleSize**: (type: string, default: `"h6"`)
#### #setGridPos
* **h**: (type: integer, default: `8`)
Panel height.
* **w**: (type: integer, default: `12`)
Panel width.
* **x**: (type: integer, default: `null`)
Panel x position.
* **y**: (type: integer, default: `null`)
Panel y position.
#### #addPanel
* **panel**: (type: object)
### panel.stat.new
* **datasource**: (type: string, default: `"default"`)
* **description**: (type: string, default: `null`)
* **repeat**: (type: string, default: `null`)
* **repeatDirection**: (type: string, default: `null`)
* **title**: (type: string, default: `null`)
* **transparent**: (type: boolean, default: `false`)
#### #setFieldConfig
* **max**: (type: integer, default: `null`)
* **min**: (type: integer, default: `null`)
* **thresholdMode**: (type: string, default: `"absolute"`)
* **unit**: (type: string, default: `null`)
#### #setGridPos
* **h**: (type: integer, default: `8`)
Panel height.
* **w**: (type: integer, default: `12`)
Panel width.
* **x**: (type: integer, default: `null`)
Panel x position.
* **y**: (type: integer, default: `null`)
Panel y position.
#### #setOptions
* **calcs**: (type: array, default: `["mean"]`)
* **colorMode**: (type: string, default: `"value"`)
* **fields**: (type: string, default: `null`)
* **graphMode**: (type: string, default: `"none"`)
* **justifyMode**: (type: string, default: `"auto"`)
* **orientation**: (type: string, default: `"auto"`)
* **textMode**: (type: string, default: `"auto"`)
* **values**: (type: boolean, default: `false`)
#### #addDataLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addPanelLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addMapping
* **from**: (type: string, default: `null`)
* **id**: (type: integer, default: `null`)
* **operator**: (type: string, default: `null`)
* **text**: (type: string, default: `null`)
* **to**: (type: string, default: `null`)
* **type**: (type: integer, default: `null`)
* **value**: (type: string, default: `null`)
#### #addOverride
* **matcher**: (type: oject, default: `null`)
* **properties**: (type: array, default: `null`)
#### #addThresholdStep
* **color**: (type: string, default: `null`)
* **value**: (type: integer, default: `null`)
#### #addTarget
* **target**: (type: object)
### panel.table.new
* **datasource**: (type: string, default: `"default"`)
* **description**: (type: string, default: `null`)
* **repeat**: (type: string, default: `null`)
* **repeatDirection**: (type: string, default: `null`)
* **title**: (type: string, default: `null`)
* **transparent**: (type: boolean, default: `false`)
#### #setFieldConfig
* **displayName**: (type: string, default: `null`)
* **max**: (type: integer, default: `0`)
* **min**: (type: integer, default: `0`)
* **thresholdMode**: (type: string, default: `"absolute"`)
* **noValue**: (type: string, default: `null`)
* **unit**: (type: string, default: `"short"`)
* **width**: (type: integer, default: `null`)
#### #setGridPos
* **h**: (type: integer, default: `8`)
Panel height.
* **w**: (type: integer, default: `12`)
Panel width.
* **x**: (type: integer, default: `null`)
Panel x position.
* **y**: (type: integer, default: `null`)
Panel y position.
#### #setOptions
* **showHeader**: (type: boolean, default: `true`)
#### #addPanelLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addDataLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addMapping
* **from**: (type: string, default: `null`)
* **id**: (type: integer, default: `null`)
* **operator**: (type: string, default: `null`)
* **text**: (type: string, default: `null`)
* **to**: (type: string, default: `null`)
* **type**: (type: integer, default: `null`)
* **value**: (type: string, default: `null`)
#### #addOverride
* **matcher**: (type: oject, default: `null`)
* **properties**: (type: array, default: `null`)
#### #addThresholdStep
* **color**: (type: string, default: `null`)
* **value**: (type: integer, default: `null`)
#### #addTarget
* **target**: (type: object)
### panel.text.new
* **content**: (type: string, default: `null`)
* **datasource**: (type: string, default: `"default"`)
* **description**: (type: string, default: `null`)
* **mode**: (type: string, default: `"markdown"`)
* **repeat**: (type: string, default: `null`)
* **repeatDirection**: (type: string, default: `null`)
* **title**: (type: string, default: `null`)
* **transparent**: (type: boolean, default: `false`)
#### #setGridPos
* **h**: (type: integer, default: `8`)
Panel height.
* **w**: (type: integer, default: `12`)
Panel width.
* **x**: (type: integer, default: `null`)
Panel x position.
* **y**: (type: integer, default: `null`)
Panel y position.
#### #addPanelLink
* **targetBlank**: (type: boolean, default: `true`)
* **title**: (type: string, default: `null`)
* **url**: (type: string, default: `null`)
#### #addTarget
* **target**: (type: object)
## target
### target.prometheus.new
* **datasource**: (type: string, default: `"default"`)
* **expr**: (type: string, default: `null`)
* **format**: (type: string, default: `"time_series"`)
* **interval**: (type: string, default: `null`)
* **intervalFactor**: (type: integer, default: `null`)
* **legendFormat**: (type: string, default: `null`)
## template
### tamplate.datasource.new
* **hide**: (type: integer, default: `0`)
* **includeAll**: (type: boolean, default: `false`)
* **label**: (type: string, default: `null`)
* **multi**: (type: boolean, default: `false`)
* **name**: (type: string, default: `null`)
* **query**: (type: string, default: `null`)
* **refresh**: (type: integer, default: `1`)
* **regex**: (type: string, default: `null`)
* **skipUrlSync**: (type: string, default: `false`)
#### #setCurrent
* **selected**: (type: boolean, default: `false`)
* **text**: (type: string, default: `null`)
* **value**: (type: string, default: `null`)
### tamplate.query.new
* **allValue**: (type: string, default: `null`)
* **datasource**: (type: string, default: `null`)
* **definition**: (type: string, default: `null`)
* **hide**: (type: integer, default: `0`)
* **includeAll**: (type: boolean, default: `false`)
* **label**: (type: string, default: `null`)
* **multi**: (type: boolean, default: `false`)
* **name**: (type: string, default: `null`)
* **query**: (type: string, default: `null`)
* **refresh**: (type: integer, default: `0`)
* **regex**: (type: string, default: `null`)
* **skipUrlSync**: (type: string, default: `false`)
* **sort**: (type: integer, default: `0`)
* **tagValuesQuery**: (type: string, default: `null`)
* **tags**: (type: array, default: `null`)
* **tagsQuery**: (type: string, default: `null`)
* **useTags**: (type: boolean, default: `false`)
#### #setCurrent
* **selected**: (type: boolean, default: `null`)
* **text**: (type: string, default: `null`)
* **value**: (type: string, default: `null`)
#### #addOption
* **selected**: (type: boolean, default: `true`)
* **text**: (type: string, default: `null`)
* **value**: (type: string, default: `null`)

View File

@ -0,0 +1,7 @@
This subpath (//ops/monitoring/lib/grafonnet) comes from the following Git repository:
repository: https://github.com/grafana/grafonnet-lib.git
revision: ff69572caf78c3163980d0d723c85a722eab73d9
subpath: grafonnet-7.0
The files contained in this subdirectory are license under the Apache 2.0 License (see //third_party/licenses/Apache-2.0.txt).

View File

@ -0,0 +1,85 @@
// 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),
},
}

View File

@ -0,0 +1,20 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
dashboard:: import 'dashboard.libsonnet',
panel:: {
gauge:: import 'panel/gauge.libsonnet',
graph:: import 'panel/graph.libsonnet',
row:: import 'panel/row.libsonnet',
stat:: import 'panel/stat.libsonnet',
table:: import 'panel/table.libsonnet',
text:: import 'panel/text.libsonnet',
},
target:: {
prometheus:: import 'target/prometheus.libsonnet',
},
template:: {
datasource:: import 'template/datasource.libsonnet',
query:: import 'template/query.libsonnet',
},
}

View File

@ -0,0 +1,138 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
datasource='default',
description=null,
repeat=null,
repeatDirection=null,
title=null,
transparent=false,
):: {
[if datasource != null then 'datasource']: datasource,
[if description != null then 'description']: description,
[if repeat != null then 'repeat']: repeat,
[if repeatDirection != null then 'repeatDirection']: repeatDirection,
[if title != null then 'title']: title,
[if transparent != null then 'transparent']: transparent,
type: 'gauge',
setFieldConfig(
max=null,
min=null,
thresholdMode='absolute',
unit=null,
):: self {}
+ { fieldConfig+: { defaults+: { [if max != null then 'max']: max } } }
+ { fieldConfig+: { defaults+: { [if min != null then 'min']: min } } }
+ { fieldConfig+: { defaults+: { thresholds+: { [if thresholdMode != null then 'mode']: thresholdMode } } } }
+ { fieldConfig+: { defaults+: { [if unit != null then 'unit']: unit } } }
,
setGridPos(
h=8,
w=12,
x=null,
y=null,
):: self {}
+ { gridPos+: { [if h != null then 'h']: h } }
+ { gridPos+: { [if w != null then 'w']: w } }
+ { gridPos+: { [if x != null then 'x']: x } }
+ { gridPos+: { [if y != null then 'y']: y } }
,
setOptions(
calcs=['mean'],
fields=null,
orientation='auto',
showThresholdLabels=false,
showThresholdMarkers=true,
values=false,
):: self {}
+ { options+: { reduceOptions+: { [if calcs != null then 'calcs']: calcs } } }
+ { options+: { reduceOptions+: { [if fields != null then 'fields']: fields } } }
+ { options+: { [if orientation != null then 'orientation']: orientation } }
+ { options+: { [if showThresholdLabels != null then 'showThresholdLabels']: showThresholdLabels } }
+ { options+: { [if showThresholdMarkers != null then 'showThresholdMarkers']: showThresholdMarkers } }
+ { options+: { reduceOptions+: { [if values != null then 'values']: values } } }
,
addDataLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { fieldConfig+: { defaults+: { links+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] } } },
addPanelLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { links+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] },
addMapping(
from=null,
id=null,
operator=null,
text=null,
to=null,
type=null,
value=null,
):: self {}
+ { fieldConfig+: { defaults+: { mappings+: [
{
[if from != null then 'from']: from,
[if id != null then 'id']: id,
[if operator != null then 'operator']: operator,
[if text != null then 'text']: text,
[if to != null then 'to']: to,
[if type != null then 'type']: type,
[if value != null then 'value']: value,
},
] } } },
addOverride(
matcher=null,
properties=null,
):: self {}
+ { fieldConfig+: { overrides+: [
{
[if matcher != null then 'matcher']: matcher,
[if properties != null then 'properties']: properties,
},
] } },
addThresholdStep(
color=null,
value=null,
):: self {}
+ { fieldConfig+: { defaults+: { thresholds+: { steps+: [
{
[if color != null then 'color']: color,
[if value != null then 'value']: value,
},
] } } } },
addTarget(
target
):: self {}
+ { targets+: [
target,
] },
},
}

View File

@ -0,0 +1,257 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
bars=false,
dashLength=10,
dashes=false,
datasource='default',
decimals=null,
description=null,
fill=1,
fillGradient=0,
hiddenSeries=false,
lines=true,
linewidth=1,
nullPointMode='null',
percentage=false,
pointradius=null,
points=false,
repeat=null,
repeatDirection=null,
spaceLength=10,
stack=false,
steppedLine=false,
timeFrom=null,
timeShift=null,
title=null,
transparent=false,
):: {
[if bars != null then 'bars']: bars,
[if dashLength != null then 'dashLength']: dashLength,
[if dashes != null then 'dashes']: dashes,
[if datasource != null then 'datasource']: datasource,
[if decimals != null then 'decimals']: decimals,
[if description != null then 'description']: description,
[if fill != null then 'fill']: fill,
[if fillGradient != null then 'fillGradient']: fillGradient,
[if hiddenSeries != null then 'hiddenSeries']: hiddenSeries,
[if lines != null then 'lines']: lines,
[if linewidth != null then 'linewidth']: linewidth,
[if nullPointMode != null then 'nullPointMode']: nullPointMode,
[if percentage != null then 'percentage']: percentage,
[if pointradius != null then 'pointradius']: pointradius,
[if points != null then 'points']: points,
[if repeat != null then 'repeat']: repeat,
[if repeatDirection != null then 'repeatDirection']: repeatDirection,
[if spaceLength != null then 'spaceLength']: spaceLength,
[if stack != null then 'stack']: stack,
[if steppedLine != null then 'steppedLine']: steppedLine,
[if timeFrom != null then 'timeFrom']: timeFrom,
[if timeShift != null then 'timeShift']: timeShift,
[if title != null then 'title']: title,
[if transparent != null then 'transparent']: transparent,
renderer: 'flot',
type: 'graph',
tooltip+: { value_type: 'individual' },
setGridPos(
h=8,
w=12,
x=null,
y=null,
):: self {}
+ { gridPos+: { [if h != null then 'h']: h } }
+ { gridPos+: { [if w != null then 'w']: w } }
+ { gridPos+: { [if x != null then 'x']: x } }
+ { gridPos+: { [if y != null then 'y']: y } }
,
setLegend(
alignAsTable=null,
avg=false,
current=false,
max=false,
min=false,
rightSide=false,
show=true,
sideWidth=null,
total=false,
values=true,
):: self {}
+ { legend+: { [if alignAsTable != null then 'alignAsTable']: alignAsTable } }
+ { legend+: { [if avg != null then 'avg']: avg } }
+ { legend+: { [if current != null then 'current']: current } }
+ { legend+: { [if max != null then 'max']: max } }
+ { legend+: { [if min != null then 'min']: min } }
+ { legend+: { [if rightSide != null then 'rightSide']: rightSide } }
+ { legend+: { [if show != null then 'show']: show } }
+ { legend+: { [if sideWidth != null then 'sideWidth']: sideWidth } }
+ { legend+: { [if total != null then 'total']: total } }
+ { legend+: { [if values != null then 'values']: values } }
,
setThresholds(
thresholdMode='absolute',
):: self {}
+ { thresholds+: { [if thresholdMode != null then 'mode']: thresholdMode } }
,
setTooltip(
shared=true,
sort=2,
):: self {}
+ { tooltip+: { [if shared != null then 'shared']: shared } }
+ { tooltip+: { [if sort != null then 'sort']: sort } }
,
setXaxis(
buckets=null,
mode='time',
name=null,
show=true,
):: self {}
+ { xaxis+: { [if buckets != null then 'buckets']: buckets } }
+ { xaxis+: { [if mode != null then 'mode']: mode } }
+ { xaxis+: { [if name != null then 'name']: name } }
+ { xaxis+: { [if show != null then 'show']: show } }
,
setYaxis(
align=false,
alignLevel=0,
):: self {}
+ { yaxis+: { [if align != null then 'align']: align } }
+ { yaxis+: { [if alignLevel != null then 'alignLevel']: alignLevel } }
,
addDataLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { options+: { dataLinks+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] } },
addPanelLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { links+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] },
addOverride(
matcher=null,
properties=null,
):: self {}
+ { fieldConfig+: { overrides+: [
{
[if matcher != null then 'matcher']: matcher,
[if properties != null then 'properties']: properties,
},
] } },
addSeriesOverride(
alias=null,
bars=null,
color=null,
dashLength=null,
dashes=null,
fill=null,
fillBelowTo=null,
fillGradient=null,
hiddenSeries=null,
hideTooltip=null,
legend=null,
lines=null,
linewidth=null,
nullPointMode=null,
pointradius=null,
points=null,
spaceLength=null,
stack=null,
steppedLine=null,
transform=null,
yaxis=null,
zindex=null,
):: self {}
+ { seriesOverrides+: [
{
[if alias != null then 'alias']: alias,
[if bars != null then 'bars']: bars,
[if color != null then 'color']: color,
[if dashLength != null then 'dashLength']: dashLength,
[if dashes != null then 'dashes']: dashes,
[if fill != null then 'fill']: fill,
[if fillBelowTo != null then 'fillBelowTo']: fillBelowTo,
[if fillGradient != null then 'fillGradient']: fillGradient,
[if hiddenSeries != null then 'hiddenSeries']: hiddenSeries,
[if hideTooltip != null then 'hideTooltip']: hideTooltip,
[if legend != null then 'legend']: legend,
[if lines != null then 'lines']: lines,
[if linewidth != null then 'linewidth']: linewidth,
[if nullPointMode != null then 'nullPointMode']: nullPointMode,
[if pointradius != null then 'pointradius']: pointradius,
[if points != null then 'points']: points,
[if spaceLength != null then 'spaceLength']: spaceLength,
[if stack != null then 'stack']: stack,
[if steppedLine != null then 'steppedLine']: steppedLine,
[if transform != null then 'transform']: transform,
[if yaxis != null then 'yaxis']: yaxis,
[if zindex != null then 'zindex']: zindex,
},
] },
addThresholdStep(
color=null,
value=null,
):: self {}
+ { thresholds+: { steps+: [
{
[if color != null then 'color']: color,
[if value != null then 'value']: value,
},
] } },
addTarget(
target
):: self {}
+ { targets+: [
target,
] },
addYaxis(
decimals=null,
format='short',
label=null,
logBase=1,
max=null,
min=null,
show=true,
):: self {}
+ { yaxes+: [
{
[if decimals != null then 'decimals']: decimals,
[if format != null then 'format']: format,
[if label != null then 'label']: label,
[if logBase != null then 'logBase']: logBase,
[if max != null then 'max']: max,
[if min != null then 'min']: min,
[if show != null then 'show']: show,
},
] },
},
}

View File

@ -0,0 +1,45 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
collapse=true,
collapsed=true,
datasource=null,
repeat=null,
repeatIteration=null,
showTitle=true,
title=null,
titleSize='h6',
):: {
[if collapse != null then 'collapse']: collapse,
[if collapsed != null then 'collapsed']: collapsed,
[if datasource != null then 'datasource']: datasource,
[if repeat != null then 'repeat']: repeat,
[if repeatIteration != null then 'repeatIteration']: repeatIteration,
[if showTitle != null then 'showTitle']: showTitle,
[if title != null then 'title']: title,
[if titleSize != null then 'titleSize']: titleSize,
type: 'row',
setGridPos(
h=8,
w=12,
x=null,
y=null,
):: self {}
+ { gridPos+: { [if h != null then 'h']: h } }
+ { gridPos+: { [if w != null then 'w']: w } }
+ { gridPos+: { [if x != null then 'x']: x } }
+ { gridPos+: { [if y != null then 'y']: y } }
,
addPanel(
panel
):: self {}
+ { panels+: [
panel,
] },
},
}

View File

@ -0,0 +1,142 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
datasource='default',
description=null,
repeat=null,
repeatDirection=null,
title=null,
transparent=false,
):: {
[if datasource != null then 'datasource']: datasource,
[if description != null then 'description']: description,
[if repeat != null then 'repeat']: repeat,
[if repeatDirection != null then 'repeatDirection']: repeatDirection,
[if title != null then 'title']: title,
[if transparent != null then 'transparent']: transparent,
type: 'stat',
setFieldConfig(
max=null,
min=null,
thresholdMode='absolute',
unit=null,
):: self {}
+ { fieldConfig+: { defaults+: { [if max != null then 'max']: max } } }
+ { fieldConfig+: { defaults+: { [if min != null then 'min']: min } } }
+ { fieldConfig+: { defaults+: { thresholds+: { [if thresholdMode != null then 'mode']: thresholdMode } } } }
+ { fieldConfig+: { defaults+: { [if unit != null then 'unit']: unit } } }
,
setGridPos(
h=8,
w=12,
x=null,
y=null,
):: self {}
+ { gridPos+: { [if h != null then 'h']: h } }
+ { gridPos+: { [if w != null then 'w']: w } }
+ { gridPos+: { [if x != null then 'x']: x } }
+ { gridPos+: { [if y != null then 'y']: y } }
,
setOptions(
calcs=['mean'],
colorMode='value',
fields=null,
graphMode='none',
justifyMode='auto',
orientation='auto',
textMode='auto',
values=false,
):: self {}
+ { options+: { reduceOptions+: { [if calcs != null then 'calcs']: calcs } } }
+ { options+: { [if colorMode != null then 'colorMode']: colorMode } }
+ { options+: { reduceOptions+: { [if fields != null then 'fields']: fields } } }
+ { options+: { [if graphMode != null then 'graphMode']: graphMode } }
+ { options+: { [if justifyMode != null then 'justifyMode']: justifyMode } }
+ { options+: { [if orientation != null then 'orientation']: orientation } }
+ { options+: { [if textMode != null then 'textMode']: textMode } }
+ { options+: { reduceOptions+: { [if values != null then 'values']: values } } }
,
addPanelLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { links+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] },
addDataLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { fieldConfig+: { defaults+: { links+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] } } },
addMapping(
from=null,
id=null,
operator=null,
text=null,
to=null,
type=null,
value=null,
):: self {}
+ { fieldConfig+: { defaults+: { mappings+: [
{
[if from != null then 'from']: from,
[if id != null then 'id']: id,
[if operator != null then 'operator']: operator,
[if text != null then 'text']: text,
[if to != null then 'to']: to,
[if type != null then 'type']: type,
[if value != null then 'value']: value,
},
] } } },
addOverride(
matcher=null,
properties=null,
):: self {}
+ { fieldConfig+: { overrides+: [
{
[if matcher != null then 'matcher']: matcher,
[if properties != null then 'properties']: properties,
},
] } },
addThresholdStep(
color=null,
value=null,
):: self {}
+ { fieldConfig+: { defaults+: { thresholds+: { steps+: [
{
[if color != null then 'color']: color,
[if value != null then 'value']: value,
},
] } } } },
addTarget(
target
):: self {}
+ { targets+: [
target,
] },
},
}

View File

@ -0,0 +1,134 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
datasource='default',
description=null,
repeat=null,
repeatDirection=null,
title=null,
transparent=false,
):: {
[if datasource != null then 'datasource']: datasource,
[if description != null then 'description']: description,
[if repeat != null then 'repeat']: repeat,
[if repeatDirection != null then 'repeatDirection']: repeatDirection,
[if title != null then 'title']: title,
[if transparent != null then 'transparent']: transparent,
type: 'table',
setFieldConfig(
displayName=null,
max=0,
min=0,
thresholdMode='absolute',
noValue=null,
unit='short',
width=null,
):: self {}
+ { fieldConfig+: { defaults+: { [if displayName != null then 'displayName']: displayName } } }
+ { fieldConfig+: { defaults+: { [if max != null then 'max']: max } } }
+ { fieldConfig+: { defaults+: { [if min != null then 'min']: min } } }
+ { fieldConfig+: { defaults+: { thresholds+: { [if thresholdMode != null then 'mode']: thresholdMode } } } }
+ { fieldConfig+: { defaults+: { [if noValue != null then 'noValue']: noValue } } }
+ { fieldConfig+: { defaults+: { [if unit != null then 'unit']: unit } } }
+ { fieldConfig+: { defaults+: { custom+: { [if width != null then 'width']: width } } } }
,
setGridPos(
h=8,
w=12,
x=null,
y=null,
):: self {}
+ { gridPos+: { [if h != null then 'h']: h } }
+ { gridPos+: { [if w != null then 'w']: w } }
+ { gridPos+: { [if x != null then 'x']: x } }
+ { gridPos+: { [if y != null then 'y']: y } }
,
setOptions(
showHeader=true,
):: self {}
+ { options+: { [if showHeader != null then 'showHeader']: showHeader } }
,
addDataLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { fieldConfig+: { defaults+: { links+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] } } },
addPanelLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { links+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] },
addMapping(
from=null,
id=null,
operator=null,
text=null,
to=null,
type=null,
value=null,
):: self {}
+ { fieldConfig+: { defaults+: { mappings+: [
{
[if from != null then 'from']: from,
[if id != null then 'id']: id,
[if operator != null then 'operator']: operator,
[if text != null then 'text']: text,
[if to != null then 'to']: to,
[if type != null then 'type']: type,
[if value != null then 'value']: value,
},
] } } },
addOverride(
matcher=null,
properties=null,
):: self {}
+ { fieldConfig+: { overrides+: [
{
[if matcher != null then 'matcher']: matcher,
[if properties != null then 'properties']: properties,
},
] } },
addThresholdStep(
color=null,
value=null,
):: self {}
+ { fieldConfig+: { defaults+: { thresholds+: { steps+: [
{
[if color != null then 'color']: color,
[if value != null then 'value']: value,
},
] } } } },
addTarget(
target
):: self {}
+ { targets+: [
target,
] },
},
}

View File

@ -0,0 +1,58 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
content=null,
datasource='default',
description=null,
mode='markdown',
repeat=null,
repeatDirection=null,
title=null,
transparent=false,
):: {
[if content != null then 'content']: content,
[if datasource != null then 'datasource']: datasource,
[if description != null then 'description']: description,
[if mode != null then 'mode']: mode,
[if repeat != null then 'repeat']: repeat,
[if repeatDirection != null then 'repeatDirection']: repeatDirection,
[if title != null then 'title']: title,
[if transparent != null then 'transparent']: transparent,
type: 'text',
setGridPos(
h=8,
w=12,
x=null,
y=null,
):: self {}
+ { gridPos+: { [if h != null then 'h']: h } }
+ { gridPos+: { [if w != null then 'w']: w } }
+ { gridPos+: { [if x != null then 'x']: x } }
+ { gridPos+: { [if y != null then 'y']: y } }
,
addPanelLink(
targetBlank=true,
title=null,
url=null,
):: self {}
+ { links+: [
{
[if targetBlank != null then 'targetBlank']: targetBlank,
[if title != null then 'title']: title,
[if url != null then 'url']: url,
},
] },
addTarget(
target
):: self {}
+ { targets+: [
target,
] },
},
}

View File

@ -0,0 +1,19 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
datasource='default',
expr=null,
format='time_series',
interval=null,
intervalFactor=null,
legendFormat=null,
):: {
[if datasource != null then 'datasource']: datasource,
[if expr != null then 'expr']: expr,
[if format != null then 'format']: format,
[if interval != null then 'interval']: interval,
[if intervalFactor != null then 'intervalFactor']: intervalFactor,
[if legendFormat != null then 'legendFormat']: legendFormat,
},
}

View File

@ -0,0 +1,36 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
hide=0,
includeAll=false,
label=null,
multi=false,
name=null,
query=null,
refresh=1,
regex=null,
skipUrlSync=false,
):: {
[if hide != null then 'hide']: hide,
[if includeAll != null then 'includeAll']: includeAll,
[if label != null then 'label']: label,
[if multi != null then 'multi']: multi,
[if name != null then 'name']: name,
[if query != null then 'query']: query,
[if refresh != null then 'refresh']: refresh,
[if regex != null then 'regex']: regex,
[if skipUrlSync != null then 'skipUrlSync']: skipUrlSync,
type: 'datasource',
setCurrent(
selected=false,
text=null,
value=null,
):: self {}
+ { current+: { [if selected != null then 'selected']: selected } }
+ { current+: { [if text != null then 'text']: text } }
+ { current+: { [if value != null then 'value']: value } },
},
}

View File

@ -0,0 +1,52 @@
// This file was generated by https://github.com/grafana/dashboard-spec
{
new(
allValue=null,
datasource=null,
definition=null,
hide=0,
includeAll=false,
label=null,
multi=false,
name=null,
query=null,
refresh=0,
regex=null,
skipUrlSync=false,
sort=0,
tagValuesQuery=null,
tags=null,
tagsQuery=null,
useTags=false,
):: {
[if allValue != null then 'allValue']: allValue,
[if datasource != null then 'datasource']: datasource,
[if definition != null then 'definition']: definition,
[if hide != null then 'hide']: hide,
[if includeAll != null then 'includeAll']: includeAll,
[if label != null then 'label']: label,
[if multi != null then 'multi']: multi,
[if name != null then 'name']: name,
[if query != null then 'query']: query,
[if refresh != null then 'refresh']: refresh,
[if regex != null then 'regex']: regex,
[if skipUrlSync != null then 'skipUrlSync']: skipUrlSync,
[if sort != null then 'sort']: sort,
[if tagValuesQuery != null then 'tagValuesQuery']: tagValuesQuery,
[if tags != null then 'tags']: tags,
[if tagsQuery != null then 'tagsQuery']: tagsQuery,
[if useTags != null then 'useTags']: useTags,
type: 'query',
setCurrent(
selected=null,
text=null,
value=null,
):: self {}
+ { current+: { [if selected != null then 'selected']: selected } }
+ { current+: { [if text != null then 'text']: text } }
+ { current+: { [if value != null then 'value']: value } },
},
}