JSON representation format
Panels are part of the JSON representation of the Chronosphere dashboard that contains
them. In a JSON representation of a dashboard, Chronosphere models a time series
chart panel as a plugin
of "kind": "TimeSeriesChart"
.
This is the minimal representation of a time series chart panel, which results in an empty panel with no name, no defined query, and default settings:
{
"kind": "Panel",
"spec": {
"display": {
"name": ""
},
"plugin": {
"kind": "TimeSeriesChart",
"spec": {}
},
"queries": [],
"links": []
}
}
As an example, this is the panel representation for visualizing jobs in your Chronosphere instance by cardinality, as used by the Cardinality Overview Chronosphere-managed dashboard:
{
"kind": "Panel",
"spec": {
"display": {
"name": "Top $topX jobs by cardinality | Namespace: $namespace"
},
"plugin": {
"kind": "TimeSeriesChart",
"spec": {
"legend": {
"mode": "List",
"position": "Bottom",
"values": []
},
"visual": {},
"y_axis": {
"unit": {
"abbreviate": true,
"kind": "Decimal"
}
}
}
},
"queries": [
{
"kind": "DataQuery",
"spec": {
"plugin": {
"kind": "PrometheusTimeSeriesQuery",
"spec": {
"query": "topk($topX, cardinality_estimate({namespace=~\"$namespace\", job!=\"\"}) by (job))",
"series_name_format": "{{job}}"
}
}
}
}
],
"links": []
}
}
It uses dashboard variables to define how many jobs to render and from which namespace.
To summarize, this JSON representation:
- Defines a panel (
"kind": "Panel"
). - Defines the panel’s name (
spec.display.name
), including dashboard variables ($topX
,$namespace
). - Adds a legend (
plugin.spec.legend
) and defines it as aList
oriented to theBottom
of the chart. - Configures the Y axis (
spec.plugin.spec.y_axis
) to use abbreviated ("abbreviate": true
)Decimal
units. - Defines a
PrometheusTimeSeriesQuery
and a series alias (series_name_format
) for the returned time series, using dashboard variables.