About dt-app-dashboards
Dynatrace Dashboard Skill is for people creating, updating, querying, or analyzing Dynatrace dashboards. It documents dashboard JSON, visualizations, and variables, and sets out a workflow that reads existing state before updates.
Key features
- 01Dashboard JSON structure
- 02Visualization types and requirements
- 03Variable types and usage
- 04Create and update workflow
Use cases
- 01Create dashboards with DQL charts
- 02Modify an existing dashboard
- 03Inspect dashboard queries and settings
- 04Analyze dashboard content
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ dynatrace/ dynatrace-for-ai --skill dt-app-dashboardsAfter installing, type/dt-app-dashboardsin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
assets/ExampleDashboard.jsonvisualization-settings.reference.jsoncreferences/analyzing.mdcreate-update.mdtiles.mdvariables.mdDetails
From the project READMEDynatrace 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
tilesmust match IDs inlayouts - Grid is 24 units wide. Common widths: 24 (full), 12 (half), 6 (quarter)
- Two tile types:
markdown(text content) anddata(DQL query + visualization)
Optional content properties: settings, refreshRate, annotations
Reading & Analyzing
Fetch full content with dtctl get dashboard <id> -o json (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
namebefore deploying - Updating — ALWAYS read the current state first:
dtctl get dashboard <id> -o json, save it asdashboard.json, modify that file, then deploy it. Never reconstruct JSON from scratch or inject anidmanually — both silently overwrite any UI edits the user made since last deployment. - Deploy with
dtctl apply— validation runs automatically. If it fails, fix all reported errors before re-applying.
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 |