Dynatrace Dashboard Skill
Overview
Dynatrace dashboards are JSON documents stored in the Document Store containing
tiles (content/visualizations), layouts (grid positioning), and variables
(dynamic query parameters).
When to use: Creating, modifying, querying, or analyzing dashboards.
Dashboard JSON Structure
{
"name": "My Dashboard",
"type": "dashboard",
"content": {
"version": 21,
"variables": [],
"tiles": { "<id>": { "type": "data|markdown", ... } },
"layouts": { "<id>": { "x": 0, "y": 0, "w": 24, "h": 8 } }
}
}
- Tile IDs in
tiles must match IDs in layouts
- Grid is 24 units wide. Common widths: 24 (full), 12 (half), 6 (quarter)
- Two tile types:
markdown (text content) and data (DQL query + visualization)
Optional content properties: settings, refreshRate, annotations
Reading & Analyzing
Fetch full content with dtctl get dashboard <id> -o json --plain (describe returns metadata only), then inspect the JSON to discover its available properties. Carefully read references/analyzing.md before analyzing.
Create/Update Workflow (Mandatory Order)
Carefully follow the workflow described in references/create-update.md.
Key rules:
- Load domain skills BEFORE generating queries — do not invent DQL
- Validate ALL queries before adding to dashboard
- No time-range filters in queries unless explicitly requested by user
- Set
name before deploying
- Updating — ALWAYS download first:
dtctl get dashboard <id> -o json --plain > dashboard.json, modify, then deploy the downloaded file. Never reconstruct JSON from scratch or inject an id manually — both silently overwrite any UI edits the user made since last deployment.
- Deploy with
dtctl apply — validation runs automatically, and the local file is deleted on success.
Visualization Types
- Time-series (require
timeseries/makeTimeseries): lineChart, areaChart, barChart, bandChart
- Categorical (
summarize ... by:{field}): categoricalBarChart, pieChart, donutChart
- Single value/gauge (single numeric record):
singleValue, meterBar, gauge
- Tabular (any data shape):
table, raw, recordList
- Distribution/status:
histogram, honeycomb
- Maps:
choroplethMap, dotMap, connectionMap, bubbleMap
- Matrix:
heatmap, scatterplot
Required field types per visualization: references/tiles.md
Variables Quick Reference
{ "version": 2, "key": "Service", "type": "query", "visible": true,
"editable": true, "input": "smartscapeNodes SERVICE | fields name",
"multiple": false }
- Single-select:
filter service.name == $Service
- Multi-select:
filter in(service.name, array($Service))
- Types:
query (DQL-populated), csv (static list), text (free-form)
Full variable reference: references/variables.md
References
| File |
When to Load |
| create-update.md |
Creating/updating dashboards |
| tiles.md |
Tile types, visualization field requirements, settings |
| variables.md |
Variable types, replacement strategies, patterns |
| analyzing.md |
Reading dashboards, extracting queries, health assessment |
1---2name: dt-app-dashboards3description: Work with Dynatrace dashboards - create, modify, query, and analyze dashboard JSON including tiles, layouts, DQL queries, variables, and visualizations.4license: Apache-2.05---67# Dynatrace Dashboard Skill89## Overview1011Dynatrace dashboards are JSON documents stored in the Document Store containing12tiles (content/visualizations), layouts (grid positioning), and variables13(dynamic query parameters).1415**When to use:** Creating, modifying, querying, or analyzing dashboards.1617## Dashboard JSON Structure1819```json20{21 "name": "My Dashboard",22 "type": "dashboard",23 "content": {24 "version": 21,25 "variables": [],26 "tiles": { "<id>": { "type": "data|markdown", ... } },27 "layouts": { "<id>": { "x": 0, "y": 0, "w": 24, "h": 8 } }28 }29}30```3132- Tile IDs in `tiles` must match IDs in `layouts`33- Grid is 24 units wide. Common widths: 24 (full), 12 (half), 6 (quarter)34- Two tile types: `markdown` (text content) and `data` (DQL query + visualization)3536**Optional content properties:** `settings`, `refreshRate`, `annotations`3738## Reading & Analyzing3940Fetch full content with `dtctl get dashboard <id> -o json --plain` (`describe` returns metadata only), then inspect the JSON to discover its available properties. Carefully read [references/analyzing.md](references/analyzing.md) before analyzing.4142## Create/Update Workflow (Mandatory Order)4344Carefully follow the workflow described in [references/create-update.md](references/create-update.md).4546**Key rules:**47- Load domain skills BEFORE generating queries — do not invent DQL48- Validate ALL queries before adding to dashboard49- No time-range filters in queries unless explicitly requested by user50- Set `name` before deploying51- **Updating — ALWAYS download first:** `dtctl get dashboard <id> -o json --plain > dashboard.json`, modify, then deploy the downloaded file. Never reconstruct JSON from scratch or inject an `id` manually — both silently overwrite any UI edits the user made since last deployment.52- **Deploy with `dtctl apply`** — validation runs automatically, and the local file is deleted on success.5354## Visualization Types5556- **Time-series** (require `timeseries`/`makeTimeseries`): `lineChart`, `areaChart`, `barChart`, `bandChart`57- **Categorical** (`summarize ... by:{field}`): `categoricalBarChart`, `pieChart`, `donutChart`58- **Single value/gauge** (single numeric record): `singleValue`, `meterBar`, `gauge`59- **Tabular** (any data shape): `table`, `raw`, `recordList`60- **Distribution/status**: `histogram`, `honeycomb`61- **Maps**: `choroplethMap`, `dotMap`, `connectionMap`, `bubbleMap`62- **Matrix**: `heatmap`, `scatterplot`6364Required field types per visualization: [references/tiles.md](references/tiles.md)6566## Variables Quick Reference6768```json69{ "version": 2, "key": "Service", "type": "query", "visible": true,70 "editable": true, "input": "smartscapeNodes SERVICE | fields name",71 "multiple": false }72```7374- **Single-select:** `filter service.name == $Service`75- **Multi-select:** `filter in(service.name, array($Service))`76- Types: `query` (DQL-populated), `csv` (static list), `text` (free-form)7778Full variable reference: [references/variables.md](references/variables.md)7980## References8182| File | When to Load |83|------|-------------|84| [create-update.md](references/create-update.md) | Creating/updating dashboards |85| [tiles.md](references/tiles.md) | Tile types, visualization field requirements, settings |86| [variables.md](references/variables.md) | Variable types, replacement strategies, patterns |87| [analyzing.md](references/analyzing.md) | Reading dashboards, extracting queries, health assessment |