Menu
Grafana Cloud Enterprise Open source

Both documentation generation and kinds schemas are in active development and subject to change without prior notice.

Dashboard

Maturity: experimental

Version: 0.0

A Grafana dashboard.

PropertyTypeRequiredDefaultDescription
metadataobjectYesmetadata contains embedded CommonMetadata and can be extended with custom string fields
TODO: use CommonMetadata instead of redefining here; currently needs to be defined here
without external reference as using the CommonMetadata reference breaks thema codegen.
specobjectYes
statusobjectYes

Metadata

metadata contains embedded CommonMetadata and can be extended with custom string fields TODO: use CommonMetadata instead of redefining here; currently needs to be defined here without external reference as using the CommonMetadata reference breaks thema codegen.

It extends _kubeObjectMetadata.

PropertyTypeRequiredDefaultDescription
createdBystringYes
creationTimestampstringYes(Inherited from _kubeObjectMetadata)
extraFieldsobjectYesextraFields is reserved for any fields that are pulled from the API server metadata but do not have concrete fields in the CUE metadata
finalizersstring[]Yes(Inherited from _kubeObjectMetadata)
labelsmap[string]stringYes(Inherited from _kubeObjectMetadata)
resourceVersionstringYes(Inherited from _kubeObjectMetadata)
uidstringYes(Inherited from _kubeObjectMetadata)
updateTimestampstringYes
updatedBystringYes
deletionTimestampstringNo(Inherited from _kubeObjectMetadata)

_kubeObjectMetadata

_kubeObjectMetadata is metadata found in a kubernetes object’s metadata field. It is not exhaustive and only includes fields which may be relevant to a kind’s implementation, As it is also intended to be generic enough to function with any API Server.

PropertyTypeRequiredDefaultDescription
creationTimestampstringYes
finalizersstring[]Yes
labelsmap[string]stringYes
resourceVersionstringYes
uidstringYes
deletionTimestampstringNo

ExtraFields

extraFields is reserved for any fields that are pulled from the API server metadata but do not have concrete fields in the CUE metadata

PropertyTypeRequiredDefaultDescription

Spec

PropertyTypeRequiredDefaultDescription
schemaVersionuint16Yes36Version of the JSON schema, incremented each time a Grafana update brings
changes to said schema.
annotationsAnnotationContainerNoContains the list of annotations that are associated with the dashboard.
Annotations are used to overlay event markers and overlay event tags on graphs.
Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API.
See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/
descriptionstringNoDescription of dashboard.
editablebooleanNotrueWhether a dashboard is editable or not.
fiscalYearStartMonthintegerNo0The month that the fiscal year starts on. 0 = January, 11 = December
Constraint: >=0 & <12.
gnetIdstringNoID of a dashboard imported from the https://grafana.com/grafana/dashboards/ portal
graphTooltipintegerNo00 for no shared crosshair or tooltip (default).
1 for shared crosshair.
2 for shared crosshair AND shared tooltip.
Possible values are: 0, 1, 2.
idinteger or nullNoUnique numeric identifier for the dashboard.
id is internal to a specific Grafana instance. uid should be used to identify a dashboard across Grafana instances.
linksDashboardLink[]NoLinks with references to other dashboards or external websites.
liveNowbooleanNoWhen set to true, the dashboard will redraw panels at an interval matching the pixel width.
This will keep data “moving left” regardless of the query refresh rate. This setting helps
avoid dashboards presenting stale live data
panelsobject[]NoList of dashboard panels
refreshstringNoRefresh rate of dashboard. Represented via interval string, e.g. “5s”, “1m”, “1h”, “1d”.
revisionintegerNoThis property should only be used in dashboards defined by plugins. It is a quick check
to see if the version has changed since the last time.
snapshotSnapshotNoA dashboard snapshot shares an interactive dashboard publicly.
It is a read-only version of a dashboard, and is not editable.
It is possible to create a snapshot of a snapshot.
Grafana strips away all sensitive information from the dashboard.
Sensitive information stripped: queries (metric, template,annotation) and panel links.
tagsstring[]NoTags associated with dashboard.
templatingobjectNoConfigured template variables
timeobjectNoTime range for dashboard.
Accepted values are relative time strings like {from: ’now-6h’, to: ’now’} or absolute time strings like {from: ‘2020-07-10T08:00:00.000Z’, to: ‘2020-07-10T14:00:00.000Z’}.
timepickerTimePickerConfigNoTime picker configuration
It defines the default config for the time picker and the refresh picker for the specific dashboard.
timezonestringNobrowserTimezone of dashboard. Accepted values are IANA TZDB zone ID or “browser” or “utc”.
titlestringNoTitle of dashboard.
uidstringNoUnique dashboard identifier that can be generated by anyone. string (8-40)
versionuint32NoVersion of the dashboard, incremented each time the dashboard is updated.
weekStartstringNoDay when the week starts. Expressed by the name of the day in lowercase, e.g. “monday”.

AnnotationContainer

Contains the list of annotations that are associated with the dashboard. Annotations are used to overlay event markers and overlay event tags on graphs. Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the HTTP API. See https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/

PropertyTypeRequiredDefaultDescription
listAnnotationQuery[]NoList of annotations

AnnotationQuery

TODO docs FROM: AnnotationQuery in grafana-data/src/types/annotations.ts

PropertyTypeRequiredDefaultDescription
datasourceDataSourceRefYesRef to a DataSource instance
enablebooleanYestrueWhen enabled the annotation query is issued with every dashboard refresh
iconColorstringYesColor to use for the annotation event markers
namestringYesName of annotation.
builtInnumberNo0Set to 1 for the standard annotation query all dashboards have by default.
filterAnnotationPanelFilterNo
hidebooleanNofalseAnnotation queries can be toggled on or off at the top of the dashboard.
When hide is true, the toggle is not shown in the dashboard.
targetAnnotationTargetNoTODO: this should be a regular DataQuery that depends on the selected dashboard
these match the properties of the “grafana” datasouce that is default in most dashboards
typestringNoTODO – this should not exist here, it is based on the –grafana– datasource

AnnotationPanelFilter

PropertyTypeRequiredDefaultDescription
idsinteger[]YesPanel IDs that should be included or excluded
excludebooleanNofalseShould the specified panels be included or excluded

AnnotationTarget

TODO: this should be a regular DataQuery that depends on the selected dashboard these match the properties of the “grafana” datasouce that is default in most dashboards

PropertyTypeRequiredDefaultDescription
limitintegerYesOnly required/valid for the grafana datasource…
but code+tests is already depending on it so hard to change
matchAnybooleanYesOnly required/valid for the grafana datasource…
but code+tests is already depending on it so hard to change
tagsstring[]YesOnly required/valid for the grafana datasource…
but code+tests is already depending on it so hard to change
typestringYesOnly required/valid for the grafana datasource…
but code+tests is already depending on it so hard to change

DataSourceRef

Ref to a DataSource instance

PropertyTypeRequiredDefaultDescription
typestringNoThe plugin type-id
uidstringNoSpecific datasource instance

Links with references to other dashboards or external resources

PropertyTypeRequiredDefaultDescription
asDropdownbooleanYesfalseIf true, all dashboards links will be displayed in a dropdown. If false, all dashboards links will be displayed side by side. Only valid if the type is dashboards
iconstringYesIcon name to be displayed with the link
includeVarsbooleanYesfalseIf true, includes current template variables values in the link as query params
keepTimebooleanYesfalseIf true, includes current time range in the link as query params
tagsstring[]YesList of tags to limit the linked dashboards. If empty, all dashboards will be displayed. Only valid if the type is dashboards
targetBlankbooleanYesfalseIf true, the link will be opened in a new tab
titlestringYesTitle to display with the link
tooltipstringYesTooltip to display when the user hovers their mouse over it
typestringYesDashboard Link type. Accepted values are dashboards (to refer to another dashboard) and link (to refer to an external resource)
Possible values are: link, dashboards.
urlstringNoLink URL. Only required/valid if the type is link

Snapshot

A dashboard snapshot shares an interactive dashboard publicly. It is a read-only version of a dashboard, and is not editable. It is possible to create a snapshot of a snapshot. Grafana strips away all sensitive information from the dashboard. Sensitive information stripped: queries (metric, template,annotation) and panel links.

PropertyTypeRequiredDefaultDescription
createdstringYesTime when the snapshot was created
expiresstringYesTime when the snapshot expires, default is never to expire
externalUrlstringYesexternal url, if snapshot was shared in external grafana instance
externalbooleanYesIs the snapshot saved in an external grafana instance
iduint32YesUnique identifier of the snapshot
keystringYesOptional, defined the unique key of the snapshot, required if external is true
namestringYesOptional, name of the snapshot
orgIduint32Yesorg id of the snapshot
originalUrlstringYesoriginal url, url of the dashboard that was snapshotted
updatedstringYeslast time when the snapshot was updated
userIduint32Yesuser id of the snapshot creator
urlstringNourl of the snapshot, if snapshot was shared internally

TimePickerConfig

Time picker configuration It defines the default config for the time picker and the refresh picker for the specific dashboard.

PropertyTypeRequiredDefaultDescription
hiddenbooleanNofalseWhether timepicker is visible or not.
nowDelaystringNoOverride the now time by entering a time delay. Use this option to accommodate known delays in data aggregation to avoid null values.
refresh_intervalsstring[]No[5s 10s 30s 1m 5m 15m 30m 1h 2h 1d]Interval options available in the refresh picker dropdown.
time_optionsstring[]No[5m 15m 1h 6h 12h 24h 2d 7d 30d]Selectable options available in the time picker dropdown. Has no effect on provisioned dashboard.

Panels

PropertyTypeRequiredDefaultDescription
objectPossible types are: , RowPanel.

DataTransformerConfig

Transformations allow to manipulate data returned by a query before the system applies a visualization. Using transformations you can: rename fields, join time series data, perform mathematical operations across queries, use the output of one transformation as the input to another transformation, etc.

PropertyTypeRequiredDefaultDescription
idstringYesUnique identifier of transformer
optionsYesOptions to be passed to the transformer
Valid options depend on the transformer id
disabledbooleanNoDisabled transformations are skipped
filterMatcherConfigNoMatcher is a predicate configuration. Based on the config a set of field(s) or values is filtered in order to apply override / transformation.
It comes with in id ( to resolve implementation from registry) and a configuration that’s specific to a particular matcher type.
topicstringNoWhere to pull DataFrames from as input to transformation
Possible values are: series, annotations, alertStates.

MatcherConfig

Matcher is a predicate configuration. Based on the config a set of field(s) or values is filtered in order to apply override / transformation. It comes with in id ( to resolve implementation from registry) and a configuration that’s specific to a particular matcher type.

PropertyTypeRequiredDefaultDescription
idstringYes``The matcher id. This is used to find the matcher implementation from registry.
optionsNoThe matcher options. This is specific to the matcher implementation.

FieldConfigSource

The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results. Each column within this structure is called a field. A field can represent a single time series or table column. Field options allow you to change how the data is displayed in your visualizations.

PropertyTypeRequiredDefaultDescription
defaultsFieldConfigYesThe data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.
Each column within this structure is called a field. A field can represent a single time series or table column.
Field options allow you to change how the data is displayed in your visualizations.
overridesobject[]YesOverrides are the options applied to specific fields overriding the defaults.

FieldConfig

The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results. Each column within this structure is called a field. A field can represent a single time series or table column. Field options allow you to change how the data is displayed in your visualizations.

PropertyTypeRequiredDefaultDescription
colorFieldColorNoMap a field to a color.
customobjectNocustom is specified by the FieldConfig field
in panel plugin schemas.
decimalsnumberNoSpecify the number of decimals Grafana includes in the rendered value.
If you leave this field blank, Grafana automatically truncates the number of decimals based on the value.
For example 1.1234 will display as 1.12 and 100.456 will display as 100.
To display all decimals, set the unit to String.
descriptionstringNoHuman readable field metadata
displayNameFromDSstringNoThis can be used by data sources that return and explicit naming structure for values and labels
When this property is configured, this value is used rather than the default naming strategy.
displayNamestringNoThe display value for this field. This supports template variables blank is auto
filterablebooleanNoTrue if data source field supports ad-hoc filters
linksNoThe behavior when clicking on a result
mappingsValueMapping[]NoConvert input values into a display string
maxnumberNoThe maximum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.
minnumberNoThe minimum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.
noValuestringNoAlternative to empty string
pathstringNoAn explicit path to the field in the datasource. When the frame meta includes a path,
This will default to `${frame.meta.path}/${field.name}

When defined, this value can be used as an identifier within the datasource scope, and
may be used to update the results
thresholdsThresholdsConfigNoThresholds configuration for the panel
unitstringNoUnit a field should use. The unit you select is applied to all fields except time.
You can use the units ID availables in Grafana or a custom unit.
Available units in Grafana: https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/valueFormats/categories.ts
As custom unit, you can use the following formats:
suffix:<suffix> for custom unit that should go after value.
prefix:<prefix> for custom unit that should go before value.
time:<format> For custom date time formats type for example time:YYYY-MM-DD.
si:<base scale><unit characters> for custom SI units. For example: si: mF. This one is a bit more advanced as you can specify both a unit and the source data scale. So if your source data is represented as milli (thousands of) something prefix the unit with that SI scale character.
count:<unit> for a custom count unit.
currency:<unit> for custom a currency unit.
writeablebooleanNoTrue if data source can write a value to the path. Auth/authz are supported separately

FieldColor

Map a field to a color.

PropertyTypeRequiredDefaultDescription
modestringYesColor mode for a field. You can specify a single color, or select a continuous (gradient) color schemes, based on a value.
Continuous color interpolates a color using the percentage of a value relative to min and max.
Accepted values are:
thresholds: From thresholds. Informs Grafana to take the color from the matching threshold
palette-classic: Classic palette. Grafana will assign color by looking up a color in a palette by series index. Useful for Graphs and pie charts and other categorical data visualizations
palette-classic-by-name: Classic palette (by name). Grafana will assign color by looking up a color in a palette by series name. Useful for Graphs and pie charts and other categorical data visualizations
continuous-GrYlRd: ontinuous Green-Yellow-Red palette mode
continuous-RdYlGr: Continuous Red-Yellow-Green palette mode
continuous-BlYlRd: Continuous Blue-Yellow-Red palette mode
continuous-YlRd: Continuous Yellow-Red palette mode
continuous-BlPu: Continuous Blue-Purple palette mode
continuous-YlBl: Continuous Yellow-Blue palette mode
continuous-blues: Continuous Blue palette mode
continuous-reds: Continuous Red palette mode
continuous-greens: Continuous Green palette mode
continuous-purples: Continuous Purple palette mode
shades: Shades of a single color. Specify a single color, useful in an override rule.
fixed: Fixed color mode. Specify a single color, useful in an override rule.
Possible values are: thresholds, palette-classic, palette-classic-by-name, continuous-GrYlRd, continuous-RdYlGr, continuous-BlYlRd, continuous-YlRd, continuous-BlPu, continuous-YlBl, continuous-blues, continuous-reds, continuous-greens, continuous-purples, fixed, shades.
fixedColorstringNoThe fixed color value for fixed or shades color modes.
seriesBystringNoDefines how to assign a series color from “by value” color schemes. For example for an aggregated data points like a timeseries, the color can be assigned by the min, max or last value.
Possible values are: min, max, last.

ThresholdsConfig

Thresholds configuration for the panel

PropertyTypeRequiredDefaultDescription
modestringYesThresholds can either be absolute (specific number) or percentage (relative to min or max, it will be values between 0 and 1).
Possible values are: absolute, percentage.
stepsThreshold[]YesMust be sorted by ‘value’, first value is always -Infinity

Threshold

User-defined value for a metric that triggers visual changes in a panel when this value is met or exceeded They are used to conditionally style and color visualizations based on query results , and can be applied to most visualizations.

PropertyTypeRequiredDefaultDescription
colorstringYesColor represents the color of the visual change that will occur in the dashboard when the threshold value is met or exceeded.
valuenumber or nullYesValue represents a specified metric for the threshold, which triggers a visual change in the dashboard when this value is met or exceeded.
Nulls currently appear here when serializing -Infinity to JSON.

ValueMapping

Allow to transform the visual representation of specific data values in a visualization, irrespective of their original units

PropertyTypeRequiredDefaultDescription
objectPossible types are: ValueMap, RangeMap, RegexMap, SpecialValueMap.

RangeMap

Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.

PropertyTypeRequiredDefaultDescription
optionsobjectYesRange to match against and the result to apply when the value is within the range
typestringYes

Options

Range to match against and the result to apply when the value is within the range

PropertyTypeRequiredDefaultDescription
fromnumber or nullYesMin value of the range. It can be null which means -Infinity
resultValueMappingResultYesResult used as replacement with text and color when the value matches
tonumber or nullYesMax value of the range. It can be null which means +Infinity

ValueMappingResult

Result used as replacement with text and color when the value matches

PropertyTypeRequiredDefaultDescription
colorstringNoText to use when the value matches
iconstringNoIcon to display when the value matches. Only specific visualizations.
indexintegerNoPosition in the mapping array. Only used internally.
textstringNoText to display when the value matches

RegexMap

Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.

PropertyTypeRequiredDefaultDescription
optionsobjectYesRegular expression to match against and the result to apply when the value matches the regex
typestringYes

Options

Regular expression to match against and the result to apply when the value matches the regex

PropertyTypeRequiredDefaultDescription
patternstringYesRegular expression to match against
resultValueMappingResultYesResult used as replacement with text and color when the value matches

SpecialValueMap

Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.

PropertyTypeRequiredDefaultDescription
optionsobjectYes
typestringYes

Options

PropertyTypeRequiredDefaultDescription
matchstringYesSpecial value types supported by the SpecialValueMap
Possible values are: true, false, null, nan, null+nan, empty.
resultValueMappingResultYesResult used as replacement with text and color when the value matches

ValueMap

Maps text values to a color or different display text and color. For example, you can configure a value mapping so that all instances of the value 10 appear as Perfection! rather than the number.

PropertyTypeRequiredDefaultDescription
optionsmap[string]ValueMappingResultYesMap with <value_to_match>: ValueMappingResult. For example: { “10”: { text: “Perfection!”, color: “green” } }
typestringYes

Custom

custom is specified by the FieldConfig field in panel plugin schemas.

PropertyTypeRequiredDefaultDescription

Overrides

PropertyTypeRequiredDefaultDescription
matcherMatcherConfigYesMatcher is a predicate configuration. Based on the config a set of field(s) or values is filtered in order to apply override / transformation.
It comes with in id ( to resolve implementation from registry) and a configuration that’s specific to a particular matcher type.
propertiesDynamicConfigValue[]Yes

DynamicConfigValue

PropertyTypeRequiredDefaultDescription
idstringYes``
valueNo

GridPos

Position and dimensions of a panel in the grid

PropertyTypeRequiredDefaultDescription
huint32Yes9Panel height. The height is the number of rows from the top edge of the panel.
wintegerYes12Panel width. The width is the number of columns from the left edge of the panel.
Constraint: >0 & <=24.
xintegerYes0Panel x. The x coordinate is the number of columns from the left edge of the grid
Constraint: >=0 & <24.
yuint32Yes0Panel y. The y coordinate is the number of rows from the top edge of the grid
staticbooleanNoWhether the panel is fixed within the grid. If true, the panel will not be affected by other panels’ interactions

LibraryPanelRef

A library panel is a reusable panel that you can use in any dashboard. When you make a change to a library panel, that change propagates to all instances of where the panel is used. Library panels streamline reuse of panels across multiple dashboards.

PropertyTypeRequiredDefaultDescription
namestringYesLibrary panel name
uidstringYesLibrary panel uid

Panel

Dashboard panels are the basic visualization building blocks.

PropertyTypeRequiredDefaultDescription
typestringYesThe panel plugin type id. This is used to find the plugin to display the panel.
Constraint: length >=1.
cacheTimeoutstringNoSets panel queries cache timeout.
datasourceDataSourceRefNoRef to a DataSource instance
descriptionstringNoPanel description.
fieldConfigFieldConfigSourceNoThe data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.
Each column within this structure is called a field. A field can represent a single time series or table column.
Field options allow you to change how the data is displayed in your visualizations.
gridPosGridPosNoPosition and dimensions of a panel in the grid
hideTimeOverridebooleanNoControls if the timeFrom or timeShift overrides are shown in the panel header
iduint32NoUnique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.
intervalstringNoThe min time interval setting defines a lower limit for the $__interval and $__interval_ms variables.
This value must be formatted as a number followed by a valid time
identifier like: “40s”, “3d”, etc.
See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
libraryPanelLibraryPanelRefNoA library panel is a reusable panel that you can use in any dashboard.
When you make a change to a library panel, that change propagates to all instances of where the panel is used.
Library panels streamline reuse of panels across multiple dashboards.
linksDashboardLink[]NoPanel links.
maxDataPointsnumberNoThe maximum number of data points that the panel queries are retrieving.
maxPerRownumberNoOption for repeated panels that controls max items per row
Only relevant for horizontally repeated panels
optionsobjectNoIt depends on the panel plugin. They are specified by the Options field in panel plugin schemas.
pluginVersionstringNoThe version of the plugin that is used for this panel. This is used to find the plugin to display the panel and to migrate old panel configs.
queryCachingTTLnumberNoOverrides the data source configured time-to-live for a query cache item in milliseconds
repeatDirectionstringNohDirection to repeat in if ‘repeat’ is set.
h for horizontal, v for vertical.
Possible values are: h, v.
repeatstringNoName of template variable to repeat for.
targetsTarget[]NoDepends on the panel plugin. See the plugin documentation for details.
timeFromstringNoOverrides the relative time range for individual panels,
which causes them to be different than what is selected in
the dashboard time picker in the top-right corner of the dashboard. You can use this to show metrics from different
time periods or days on the same dashboard.
The value is formatted as time operation like: now-5m (Last 5 minutes), now/d (the day so far),
now-5d/d(Last 5 days), now/w (This week so far), now-2y/y (Last 2 years).
Note: Panel time overrides have no effect when the dashboard’s time range is absolute.
See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
timeShiftstringNoOverrides the time range for individual panels by shifting its start and end relative to the time picker.
For example, you can shift the time range for the panel to be two hours earlier than the dashboard time picker setting 2h.
Note: Panel time overrides have no effect when the dashboard’s time range is absolute.
See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
titlestringNoPanel title.
transformationsDataTransformerConfig[]NoList of transformations that are applied to the panel data before rendering.
When there are multiple transformations, Grafana applies them in the order they are listed.
Each transformation creates a result set that then passes on to the next transformation in the processing pipeline.
transparentbooleanNofalseWhether to display the panel without a background.

Target

Schema for panel targets is specified by datasource plugins. We use a placeholder definition, which the Go schema loader either left open/as-is with the Base variant of the Dashboard and Panel families, or filled with types derived from plugins in the Instance variant. When working directly from CUE, importers can extend this type directly to achieve the same effect.

PropertyTypeRequiredDefaultDescription

Options

It depends on the panel plugin. They are specified by the Options field in panel plugin schemas.

PropertyTypeRequiredDefaultDescription

RowPanel

Row panel

PropertyTypeRequiredDefaultDescription
collapsedbooleanYesfalseWhether this row should be collapsed or not.
iduint32YesUnique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.
panelsPanel[]YesList of panels in the row
typestringYesThe panel type
Possible values are: row.
datasourceDataSourceRefNoRef to a DataSource instance
gridPosGridPosNoPosition and dimensions of a panel in the grid
repeatstringNoName of template variable to repeat for.
titlestringNoRow title

Panel

Dashboard panels are the basic visualization building blocks.

PropertyTypeRequiredDefaultDescription
typestringYesThe panel plugin type id. This is used to find the plugin to display the panel.
Constraint: length >=1.
cacheTimeoutstringNoSets panel queries cache timeout.
datasourceDataSourceRefNoRef to a DataSource instance
descriptionstringNoPanel description.
fieldConfigFieldConfigSourceNoThe data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.
Each column within this structure is called a field. A field can represent a single time series or table column.
Field options allow you to change how the data is displayed in your visualizations.
gridPosGridPosNoPosition and dimensions of a panel in the grid
hideTimeOverridebooleanNoControls if the timeFrom or timeShift overrides are shown in the panel header
iduint32NoUnique identifier of the panel. Generated by Grafana when creating a new panel. It must be unique within a dashboard, but not globally.
intervalstringNoThe min time interval setting defines a lower limit for the $__interval and $__interval_ms variables.
This value must be formatted as a number followed by a valid time
identifier like: “40s”, “3d”, etc.
See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
libraryPanelLibraryPanelRefNoA library panel is a reusable panel that you can use in any dashboard.
When you make a change to a library panel, that change propagates to all instances of where the panel is used.
Library panels streamline reuse of panels across multiple dashboards.
linksDashboardLink[]NoPanel links.
maxDataPointsnumberNoThe maximum number of data points that the panel queries are retrieving.
maxPerRownumberNoOption for repeated panels that controls max items per row
Only relevant for horizontally repeated panels
optionsoptionsNoIt depends on the panel plugin. They are specified by the Options field in panel plugin schemas.
pluginVersionstringNoThe version of the plugin that is used for this panel. This is used to find the plugin to display the panel and to migrate old panel configs.
queryCachingTTLnumberNoOverrides the data source configured time-to-live for a query cache item in milliseconds
repeatDirectionstringNohDirection to repeat in if ‘repeat’ is set.
h for horizontal, v for vertical.
Possible values are: h, v.
repeatstringNoName of template variable to repeat for.
targetsTarget[]NoDepends on the panel plugin. See the plugin documentation for details.
timeFromstringNoOverrides the relative time range for individual panels,
which causes them to be different than what is selected in
the dashboard time picker in the top-right corner of the dashboard. You can use this to show metrics from different
time periods or days on the same dashboard.
The value is formatted as time operation like: now-5m (Last 5 minutes), now/d (the day so far),
now-5d/d(Last 5 days), now/w (This week so far), now-2y/y (Last 2 years).
Note: Panel time overrides have no effect when the dashboard’s time range is absolute.
See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
timeShiftstringNoOverrides the time range for individual panels by shifting its start and end relative to the time picker.
For example, you can shift the time range for the panel to be two hours earlier than the dashboard time picker setting 2h.
Note: Panel time overrides have no effect when the dashboard’s time range is absolute.
See: https://grafana.com/docs/grafana/latest/panels-visualizations/query-transform-data/#query-options
titlestringNoPanel title.
transformationsDataTransformerConfig[]NoList of transformations that are applied to the panel data before rendering.
When there are multiple transformations, Grafana applies them in the order they are listed.
Each transformation creates a result set that then passes on to the next transformation in the processing pipeline.
transparentbooleanNofalseWhether to display the panel without a background.

FieldConfigSource

The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results. Each column within this structure is called a field. A field can represent a single time series or table column. Field options allow you to change how the data is displayed in your visualizations.

PropertyTypeRequiredDefaultDescription
defaultsFieldConfigYesThe data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results.
Each column within this structure is called a field. A field can represent a single time series or table column.
Field options allow you to change how the data is displayed in your visualizations.
overridesoverrides[]YesOverrides are the options applied to specific fields overriding the defaults.

FieldConfig

The data model used in Grafana, namely the data frame, is a columnar-oriented table structure that unifies both time series and table query results. Each column within this structure is called a field. A field can represent a single time series or table column. Field options allow you to change how the data is displayed in your visualizations.

PropertyTypeRequiredDefaultDescription
colorFieldColorNoMap a field to a color.
customcustomNocustom is specified by the FieldConfig field
in panel plugin schemas.
decimalsnumberNoSpecify the number of decimals Grafana includes in the rendered value.
If you leave this field blank, Grafana automatically truncates the number of decimals based on the value.
For example 1.1234 will display as 1.12 and 100.456 will display as 100.
To display all decimals, set the unit to String.
descriptionstringNoHuman readable field metadata
displayNameFromDSstringNoThis can be used by data sources that return and explicit naming structure for values and labels
When this property is configured, this value is used rather than the default naming strategy.
displayNamestringNoThe display value for this field. This supports template variables blank is auto
filterablebooleanNoTrue if data source field supports ad-hoc filters
linksNoThe behavior when clicking on a result
mappingsValueMapping[]NoConvert input values into a display string
maxnumberNoThe maximum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.
minnumberNoThe minimum value used in percentage threshold calculations. Leave blank for auto calculation based on all series and fields.
noValuestringNoAlternative to empty string
pathstringNoAn explicit path to the field in the datasource. When the frame meta includes a path,
This will default to `${frame.meta.path}/${field.name}

When defined, this value can be used as an identifier within the datasource scope, and
may be used to update the results
thresholdsThresholdsConfigNoThresholds configuration for the panel
unitstringNoUnit a field should use. The unit you select is applied to all fields except time.
You can use the units ID availables in Grafana or a custom unit.
Available units in Grafana: https://github.com/grafana/grafana/blob/main/packages/grafana-data/src/valueFormats/categories.ts
As custom unit, you can use the following formats:
suffix:<suffix> for custom unit that should go after value.
prefix:<prefix> for custom unit that should go before value.
time:<format> For custom date time formats type for example time:YYYY-MM-DD.
si:<base scale><unit characters> for custom SI units. For example: si: mF. This one is a bit more advanced as you can specify both a unit and the source data scale. So if your source data is represented as milli (thousands of) something prefix the unit with that SI scale character.
count:<unit> for a custom count unit.
currency:<unit> for custom a currency unit.
writeablebooleanNoTrue if data source can write a value to the path. Auth/authz are supported separately

RangeMap

Maps numerical ranges to a display text and color. For example, if a value is within a certain range, you can configure a range value mapping to display Low or High rather than the number.

PropertyTypeRequiredDefaultDescription
optionsoptionsYesRange to match against and the result to apply when the value is within the range
typestringYes

RegexMap

Maps regular expressions to replacement text and a color. For example, if a value is www.example.com, you can configure a regex value mapping so that Grafana displays www and truncates the domain.

PropertyTypeRequiredDefaultDescription
optionsoptionsYesRegular expression to match against and the result to apply when the value matches the regex
typestringYes

SpecialValueMap

Maps special values like Null, NaN (not a number), and boolean values like true and false to a display text and color. See SpecialValueMatch to see the list of special values. For example, you can configure a special value mapping so that null values appear as N/A.

PropertyTypeRequiredDefaultDescription
optionsoptionsYes
typestringYes

Templating

Configured template variables

PropertyTypeRequiredDefaultDescription
listVariableModel[]NoList of configured template variables with their saved values along with some other metadata

VariableModel

A variable is a placeholder for a value. You can use variables in metric queries and in panel titles.

PropertyTypeRequiredDefaultDescription
namestringYesName of variable
typestringYesDashboard variable type
query: Query-generated list of values such as metric names, server names, sensor IDs, data centers, and so on.
adhoc: Key/value filters that are automatically added to all metric queries for a data source (Prometheus, Loki, InfluxDB, and Elasticsearch only).
constant: Define a hidden constant.
datasource: Quickly change the data source for an entire dashboard.
interval: Interval variables represent time spans.
textbox: Display a free text input field with an optional default value.
custom: Define the variable options manually using a comma-separated list.
system: Variables defined by Grafana. See: https://grafana.com/docs/grafana/latest/dashboards/variables/add-template-variables/#global-variables
Possible values are: query, adhoc, groupby, constant, datasource, interval, textbox, custom, system.
allValuestringNoCustom all value
currentVariableOptionNoOption to be selected in a variable.
datasourceDataSourceRefNoRef to a DataSource instance
descriptionstringNoDescription of variable. It can be defined but null.
hideintegerNoDetermine if the variable shows on dashboard
Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing).
Possible values are: 0, 1, 2.
includeAllbooleanNofalseWhether all value option is available or not
labelstringNoOptional display name
multibooleanNofalseWhether multiple values can be selected or not from variable value list
optionsVariableOption[]NoOptions that can be selected for a variable.
queryNoQuery used to fetch values for a variable
refreshintegerNoOptions to config when to refresh a variable
0: Never refresh the variable
1: Queries the data source every time the dashboard loads.
2: Queries the data source when the dashboard time range changes.
Possible values are: 0, 1, 2.
regexstringNoOptional field, if you want to extract part of a series name or metric node segment.
Named capture groups can be used to separate the display text and value.
skipUrlSyncbooleanNofalseWhether the variable value should be managed by URL query params or not
sortintegerNoSort variable options
Accepted values are:
0: No sorting
1: Alphabetical ASC
2: Alphabetical DESC
3: Numerical ASC
4: Numerical DESC
5: Alphabetical Case Insensitive ASC
6: Alphabetical Case Insensitive DESC
7: Natural ASC
8: Natural DESC
Possible values are: 0, 1, 2, 3, 4, 5, 6, 7, 8.

VariableOption

Option to be selected in a variable.

PropertyTypeRequiredDefaultDescription
textYesText to be displayed for the option
valueYesValue of the option
selectedbooleanNoWhether the option is selected or not

Time

Time range for dashboard. Accepted values are relative time strings like {from: ’now-6h’, to: ’now’} or absolute time strings like {from: ‘2020-07-10T08:00:00.000Z’, to: ‘2020-07-10T14:00:00.000Z’}.

PropertyTypeRequiredDefaultDescription
fromstringYesnow-6h
tostringYesnow

Status

PropertyTypeRequiredDefaultDescription
additionalFieldsobjectNoadditionalFields is reserved for future use
operatorStatesmap[string]status.#OperatorStateNooperatorStates is a map of operator ID to operator state evaluations.
Any operator which consumes this kind SHOULD add its state evaluation information to this field.

AdditionalFields

additionalFields is reserved for future use

PropertyTypeRequiredDefaultDescription

Status.#OperatorState

PropertyTypeRequiredDefaultDescription
lastEvaluationstringYeslastEvaluation is the ResourceVersion last evaluated
statestringYesstate describes the state of the lastEvaluation.
It is limited to three possible states for machine evaluation.
Possible values are: success, in_progress, failed.
descriptiveStatestringNodescriptiveState is an optional more descriptive state field which has no requirements on format
detailsobjectNodetails contains any extra information that is operator-specific

Details

details contains any extra information that is operator-specific

PropertyTypeRequiredDefaultDescription