Reference
row
Child panels are always nested, collapsed or not.
Example
{
"id": "r_logs",
"type": "row",
"title": "Logs",
"collapsed": false,
"gridPos": {
"x": 0,
"y": 12,
"w": 24,
"h": 1
},
"panels": [
{
"id": "p_errors",
"type": "stat",
"title": "Error logs",
"gridPos": {
"x": 0,
"y": 13,
"w": 6,
"h": 4
},
"datasource": "ch",
"queries": [
{
"query": "SELECT count() FROM otel_logs WHERE SeverityText = 'ERROR' AND $__timeFilter(Timestamp)"
}
],
"display": {
"graphStyle": "line",
"percentChange": true,
"percentSize": 14
}
},
{
"id": "p_reuse",
"type": "table",
"title": "Requests and errors as a table",
"gridPos": {
"x": 6,
"y": 13,
"w": 12,
"h": 4
},
"queries": [
{
"ref": "A",
"source": {
"panel": "p_rps",
"withTransforms": true
}
}
]
},
{
"id": "p_candles",
"type": "candlestick",
"title": "Open file descriptors",
"gridPos": {
"x": 0,
"y": 17,
"w": 12,
"h": 8
},
"datasource": "prom",
"queries": [
{
"ref": "open",
"query": "min_over_time(process_open_fds[5m])"
},
{
"ref": "high",
"query": "max_over_time(process_open_fds[5m])"
},
{
"ref": "low",
"query": "min_over_time(process_open_fds[5m])"
},
{
"ref": "close",
"query": "process_open_fds"
}
],
"display": {
"legendMode": "table",
"legendValues": [
"mean",
"p95"
],
"flatColor": "info"
}
},
{
"id": "p_canvas",
"type": "canvas",
"title": "Descriptor limit",
"gridPos": {
"x": 12,
"y": 17,
"w": 12,
"h": 8
},
"datasource": "prom",
"queries": [
{
"ref": "A",
"query": "process_max_fds"
}
],
"display": {
"elements": [
{
"id": "limit_icon",
"kind": "icon",
"left": 5,
"top": 10,
"width": 15,
"height": 30,
"icon": "bolt",
"iconColor": "info",
"stroke": "critical",
"strokeWidth": 2
},
{
"id": "limit_text",
"kind": "text",
"left": 25,
"top": 10,
"width": 60,
"height": 30,
"textTemplate": "Limit ${__data.fields.Value} descriptors",
"field": "Value"
}
]
}
},
{
"id": "p_sites",
"type": "geomap",
"title": "Sites",
"gridPos": {
"x": 0,
"y": 25,
"w": 12,
"h": 8
},
"datasource": "prom",
"queries": [
{
"query": "sum by (lat, lon, icon) (up)"
}
],
"display": {
"noRepeat": true,
"basemap": "xyz",
"basemapUrl": "https://tile.example.com/{z}/{x}/{y}.png",
"basemapMinZoom": 1,
"basemapMaxZoom": 12,
"layers": [
{
"type": "markers",
"name": "Sites",
"location": "coords",
"latField": "lat",
"lonField": "lon",
"symbolField": "icon",
"text": "Site",
"textAlign": "left",
"textOffsetX": 6,
"rotation": 45,
"fillOpacity": 0.6,
"symbolAlign": "right",
"symbolVerticalAlign": "bottom",
"showLegend": true
}
]
}
},
{
"id": "p_share",
"type": "piechart",
"title": "Requests by pod",
"gridPos": {
"x": 0,
"y": 33,
"w": 8,
"h": 8
},
"datasource": "prom",
"queries": [
{
"query": "sum by (pod) (rate(http_requests_total{service=\"checkout\"}[5m]))",
"instant": true
}
],
"display": {
"sort": "asc"
}
},
{
"id": "p_lines",
"type": "logs",
"title": "Error lines",
"gridPos": {
"x": 8,
"y": 33,
"w": 16,
"h": 8
},
"datasource": "ch",
"queries": [
{
"query": "SELECT Timestamp, SeverityText, Body FROM otel_logs WHERE $__timeFilter(Timestamp) ORDER BY Timestamp DESC LIMIT 100",
"format": "logs"
}
],
"display": {
"showTime": true,
"showLabels": true,
"lineFields": [
"SeverityText",
"Body"
],
"showAttributes": false,
"timePrecision": "ns"
}
},
{
"id": "p_states",
"type": "state-timeline",
"title": "Pod states",
"gridPos": {
"x": 0,
"y": 41,
"w": 12,
"h": 8
},
"datasource": "prom",
"queries": [
{
"query": "up{service=\"checkout\"}"
}
],
"display": {
"perPage": 5
}
},
{
"id": "p_history",
"type": "status-history",
"title": "Pod status history",
"gridPos": {
"x": 12,
"y": 41,
"w": 12,
"h": 8
},
"datasource": "prom",
"queries": [
{
"query": "up{service=\"checkout\"}"
}
],
"display": {
"perPage": 5
}
},
{
"id": "p_drift",
"type": "gauge",
"title": "Clock drift",
"gridPos": {
"x": 0,
"y": 49,
"w": 6,
"h": 6
},
"datasource": "prom",
"unit": "s",
"min": -50,
"max": 50,
"neutral": 0,
"queries": [
{
"query": "node_timex_offset_seconds{service=\"checkout\"}",
"instant": true
}
]
},
{
"id": "p_latency_heat",
"type": "heatmap",
"title": "Request latency over time",
"gridPos": {
"x": 0,
"y": 55,
"w": 12,
"h": 8
},
"datasource": "prom",
"queries": [
{
"query": "http_request_duration_seconds{service=\"checkout\"}"
}
],
"display": {
"calculate": true,
"xBuckets": {
"mode": "count",
"value": 12
},
"xBucketScale": "log",
"xBucketLogBase": 10
}
}
]
}From spec/examples/evolved-features.json.
Fields
| Field | Type | Description |
|---|---|---|
id (required) |
string |
Stable across versions; comments anchor to it. |
type (required) |
"row" |
|
title (required) |
string |
|
gridPos (required) |
gridPos |
Position on the 24-column grid; x + w must not exceed 24. |
collapsed |
boolean |
|
repeat |
variableName |
Referenced in queries as $name, ${name} or ${name:format}. |
panels |
array of dataPanel or textPanel or placeholderPanel or dashlistPanel or newsPanel |
At most 200 items. |
Generated from spec/schema/observespec.v0.json at bac0fe39. Report a problem.