dt-app-dashboards
Dynatrace Dashboard Skill
Overview
Dynatrace dashboards are JSON documents stored in the Document Store. Each dashboard contains:
- Tiles: Visual components displaying markdown content or data visualizations
- Layouts: Grid-based positioning (20-unit width) defining tile placement
- Variables: Dynamic parameters (
$VariableName) for query filtering - Configuration: Version metadata and dashboard-level settings
When to use this skill:
- Creating new dashboards with skill-based query generation
- Modifying existing dashboards (queries, tiles, layouts)
- Querying dashboard JSON to extract data or analyze structure
- Analyzing dashboard purpose, metrics coverage, and health
Four main workflows:
- Creating - Build dashboards with skill-based queries
- Modifying - Update tiles, queries, layouts, variables
- Querying - Extract data from dashboard JSON
- Analyzing - Understand structure, purpose, gaps, and health
Dashboard Document Structure
Dashboards in the Dynatrace Document Store include both metadata and content:
{
"id": "dashboard-abc123",
"name": "My Dashboard",
"type": "dashboard",
"owner": "user-uuid",
"version": 60,
"modificationInfo": {...},
"content": {
"version": 21,
"variables": [],
"tiles": {...},
"layouts": {...}
}
}
Metadata (top-level):
.id- Document ID.name- Dashboard name.owner- Owner UUID.version- Document version (change tracking).modificationInfo- Creation/modification timestamps
Dashboard content (.content):
.content.version- Dashboard schema version (current: 21).content.tiles- Tile definitions.content.layouts- Tile positioning.content.variables- Dashboard variables
All jq examples in this skill use the .content.* paths.
When to Load References
This skill uses progressive disclosure - load only what you need:
- Start here: SKILL.md provides core concepts and quick-start examples
- Load references on-demand: Each reference file covers a specific deep-dive topic
- Context efficiency: Progressive loading enables task completion without external documentation
Loading strategy:
- Try answering with just SKILL.md first
- If you need detailed specifications or advanced patterns, load the relevant reference file
- The "References" section below maps each file to its use case
💡 Tip: Reference files are linked throughout this document with
→arrows pointing to when you should load them.
Working with Dashboards
For detailed workflows and mandatory requirements:
- Creating & Updating dashboards → Load
references/create-update.mdfor complete workflow, skill-based query generation, validation, and modification patterns - Analyzing dashboards → Load
references/analyzing.mdfor structure analysis, health assessment, and JSON extraction
⚠️ MANDATORY for creation/modification:
Follow this exact order (do not reorder):
- Define purpose and load required skills, references and assets
- Explore available data fields/metrics
- Plan dashboard structure: logic, variables, tiles and layout
- Design and validate all variable/tile DQL with
dtctl query "<DQL>" --plain - Construct/update dashboard JSON
- Validate the dashboard JSON structure and queries
- Deploy the dashboard via the Dynatrace API
Full requirements and examples: references/create-update.md.
Dashboard Structure
Required Structure
{
"name": "My Dashboard",
"type": "dashboard",
"content": {
"version": 21,
"tiles": {},
"layouts": {}
}
}
Optional properties inside content:
variables- Array of dashboard variables (filters/parameters)settings- Dashboard-level settings (grid layout, default timeframe)refreshRate- Dashboard refresh rate in milliseconds (e.g., 60000)gridColumnsCount- Number of grid columns (default: 20)annotations- Array of dashboard annotations
Structure concept: Variables define reusable parameters, tiles contain
content/visualizations, layouts control positioning. Each tile ID in tiles
must have a corresponding entry in layouts.
Tiles Overview
📊 For detailed tile specifications, visualization settings, and query configuration, load
references/tiles.md
Markdown tiles: {"type": "markdown", "content": "# Title"}
Data tiles: {"type": "data", "title": "...", "query": "...", "visualization": "..."}
Visualizations:
- Time-series (MUST have time dimension via
timeseries/makeTimeseries):lineChart,areaChart,barChart,bandChart - Categorical (no time dimension,
summarize ... by:{field}):categoricalBarChart,pieChart,donutChart - Single value / gauge (single numeric record):
singleValue,meterBar,gauge - Tabular / raw (any data shape):
table,raw,recordList - Distribution / status:
histogram,honeycomb - Geographic maps:
choroplethMap,dotMap,connectionMap,bubbleMap - Matrix / correlation:
heatmap,scatterplot
→ See references/tiles.md for specifications
Layouts Overview
📐 For complex layout patterns, grid system details, and positioning examples, load
references/layouts.md
Grid: 20 units wide. Common widths: Full (20), Half (10), Third (6-7),
Quarter (5)
Properties: x (0-19), y (0+), w (1-20), h (1-20)
Example: {"1": {"x": 0, "y": 0, "w": 20, "h": 1}, "2": {"x": 0, "y": 1, "w": 10, "h": 8}}
→ See references/layouts.md for patterns
Variables Overview
🔧 For detailed variable configurations, replacement strategies, multi-select, and limitations, load
references/variables.md
Definition: {"version": 2, "key": "ServiceFilter", "type": "query", "visible": true, "editable": true, "input": "smartscapeNodes SERVICE | fields name", "multiple": false, "defaultValue": "*"}
Usage (single-select): fetch logs | filter service.name == $ServiceFilter
Usage (multi-select): fetch logs | filter in(service.name, array($ServiceFilter))
→ See references/variables.md for complete
property reference, replacement strategies (:noquote, :backtick), and
usage patterns
Validation
⚠️ MANDATORY for create/update workflows: Validate the dashboard JSON before deploying. Check:
- Schema structure — required top-level keys (
name,type,content) and content keys (version,variables,tiles,layouts) - Variable resolution — all variable queries execute successfully
- Tile query execution — all tile DQL queries run without errors
- Best-practice checks — warnings for hardcoded time filters, CSV variables, etc.
→ Load references/create-update.md for full validation workflow.
References
| Reference File | When to Use |
|---|---|
| create-update.md | Creating and updating dashboards - workflows, skill-based queries, validation, patterns |
| tiles.md | Tile types, visualization settings, query configuration, thresholds |
| layouts.md | Grid system details, layout patterns, positioning examples |
| variables.md | Variable types, multi-select, default values, query integration |
| analyzing.md | Structure analysis, purpose identification, health assessment, JSON extraction |
Common Patterns & Best Practices
Patterns: Executive (header + KPIs + trends) · Service Health (RED metrics) · Infrastructure (resource metrics + tables)
Key rules: Match tile IDs in tiles and layouts · Use descriptive
variable IDs · Start with full-width headers (y=0) · Optimize queries with
limit/summarize · Set version=21 · No time-range filters in queries
unless explicitly requested by the user