CollabOps

Dashboards

The four ways to create a dashboard, and its panels, sections, variables, and templates

One dashboard is one definition document, made of four parts.

{
  "schemaVersion": 1,
  "variables": [ ... ],   // values picked at the top of the screen
  "sections":  [ ... ],   // groups of panels
  "panels":    [ ... ],   // the tiles; each has one or more queries
  "settings":  { ... }    // default time range, refresh, timezone
}

Building one in the editor stores the same document. Field-level syntax is in the Definition JSON reference.

Four ways to create one

PathWhenResult
From a templateStarting out — copy a built-in template.A copy is saved in your workspace; the template itself is untouched.
Blank dashboardComposing panels from scratchStarts from an empty definition you fill in the editor.
Import JSONUploading a document exported elsewhere, or one written by handValidated first, then saved under a name you choose.
Connect a repositoryManaging definitions in GitJSON files under the connected directory become dashboards, and each commit is applied.

Dashboards that come from a repository can still be edited on screen, and the edited definition can be written back to the file with "Push to repository". Edits you do not push are overwritten the next time that file is committed.

Panels

A panel is one tile. It is placed on a 12-column grid with layout (x, y, w, h), and visualization.type decides how it is drawn.

The visualization does not decide the shape of the result. The query's output.type does; the visualization only has to be compatible with it.

VisualizationRequired result shapeUsed for
TIME_SERIESTIME_SERIESA trend over time. Multiple series come from groupBy.
NUMBERSCALARA single number — error rate, availability, anything answered with one value.
TABLETABLEA table with axis columns and value columns.
BARTABLEBars per category, using one axis of the table as the category.
PIETABLEShare per category.
HISTOGRAMHISTOGRAMBucket distribution. Only histogram metrics can produce it.
LOGSTABLERaw log lines. Used with a records query.
TRACESTABLEA list of traces; a row opens the trace detail.

Queries

A panel can hold several queries (up to 20), each identified by refId. Queries in the same panel can be divided with ratio — an error rate is two queries (errors, total) plus one query that points at them.

Sections

A section groups panels: a title plus panelIds. If it points at a panel that does not exist, the definition is rejected.

Variables

Variables are the values picked at the top of the screen. The picked value is not stored in the definition — the definition only holds the name and where to read candidate values; the selection arrives with each request.

TypeValue listUsed for
SERVICEService names in the workspacePicking a service — the most common variable.
ATTRIBUTEAttribute values actually collectedValues of the axis given by source.signal and source.field — environment, pod name, and so on
TEXTNone (typed in)Values with no candidates to list, such as a search term
CUSTOMA fixed list written in the definitionA fixed list that does not read from storage

Filters reference a variable as ${name}. The whole value must be the reference — prefix-${name} is rejected.

ALL is special: picking it removes the filter that uses that variable entirely — "all" is not a value, it means "do not filter". A multi variable accepts several values, and when more than one is bound, even an EQ filter is promoted to IN.

Settings

FieldValuesDefault
defaultTimeRangeLAST_30_MIN · LAST_1_HOUR · LAST_6_HOURS · LAST_24_HOURS · LAST_7_DAYSLAST_1_HOUR
refreshIntervalNONE · 10s · 30s · 1m · 5m30s
timezoneBROWSER · UTCBROWSER

One refresh issues as many queries as there are panels. A short interval on a large dashboard costs accordingly.

Built-in templates

A shared catalog, independent of any workspace. Picking one copies its definition into a new dashboard.

TemplateCategoryShows
Service REDAPPLICATIONRate, errors, and duration for a service, plus the deployed version
Trace AnalysisAPPLICATIONSlow spans, failing paths, service-to-service calls
API Endpoint PerformanceAPPLICATIONThroughput, errors, latency per route (services sending http.route)
Application MetricsAPPLICATIONHTTP throughput and latency plus runtime state (http.server.* metrics)
Application LogsAPPLICATIONLog volume by service and level, plus the raw lines
Logs & ErrorsAPPLICATIONError log trend and its spread over severity and service
Database DependenciesDATASlow queries, call volume, errors per dependency (db.system client spans)
Deploy ImpactDEPLOYRate, errors, latency before and after a deploy, compared by version
Service ResourcesINFRAPod CPU, memory, network, restarts (k8s.* metrics)
Kubernetes WorkloadsINFRARestarts, CPU, memory per namespace and pod (k8s.* metrics)
Infrastructure CapacityINFRAHost CPU, memory, disk, network saturation (system.* metrics)
LLM GatewayAICall volume, latency, token usage per model (gen_ai.* attributes)

If you are not sending the signals a template reads, its panels stay empty. A workspace that does not collect k8s.* or system.* metrics, for example, gets no values in the infrastructure templates. Check the instrumentation each template expects first.

Limits

SubjectLimit
Grid width12 columns (layout.x + layout.w cannot exceed 12)
Panel height24
Queries per panel20
Panels executed at once30
groupBy axes5
Value columns per table (measures)8
Time series20 by default, 100 maximum (limit)
Points per series1,500 — beyond that the bucket width grows
Raw record rows200 per page — continued with a cursor

Next

Field-by-field meaning and validation rules are in the Definition JSON reference; import, export, and repository sync are in Building dashboards as JSON.

Table of Contents