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 () 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:
json
{
"id": "dashboard-abc123",
"name": "My Dashboard",
"type": "dashboard",
"owner": "user-uuid",
"version": 60,
"modificationInfo": {...},
"content": {
"version": 21,
"variables": [],
"tiles": {...},
"layouts": {...}
}
}
Metadata (top-level):
- - Document ID
- - Dashboard name
- - Owner UUID
- - Document version (change tracking)
- - Creation/modification timestamps
- - Dashboard schema version (current: 21)
- - Tile definitions
- - Tile positioning
- - Dashboard variables
All jq examples in this skill use the
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.md
for
complete workflow, skill-based query generation, validation, and
modification patterns
- Analyzing dashboards → Load for 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
json
{
"name": "My Dashboard",
"type": "dashboard",
"content": {
"version": 21,
"tiles": {},
"layouts": {}
}
}
Optional properties inside content:
- - Array of dashboard variables (filters/parameters)
- - Dashboard-level settings (grid layout, default timeframe)
- - Dashboard refresh rate in milliseconds (e.g., 60000)
- - Number of grid columns (default: 20)
- - Array of dashboard annotations
Structure concept: Variables define reusable parameters, tiles contain
content/visualizations, layouts control positioning. Each tile ID in
must have a corresponding entry in
.
Tiles Overview
📊
For detailed tile specifications, visualization settings, and query
configuration, load
Markdown tiles: {"type": "markdown", "content": "# Title"}
Data tiles: {"type": "data", "title": "...", "query": "...", "visualization": "..."}
Visualizations:
- Time-series (MUST have time dimension via /): , , ,
- Categorical (no time dimension, ): , ,
- Single value / gauge (single numeric record): , ,
- Tabular / raw (any data shape): , ,
- Distribution / status: ,
- Geographic maps: , , ,
- Matrix / correlation: ,
→ See references/tiles.md for specifications
Layouts Overview
📐
For complex layout patterns, grid system details, and positioning
examples, load
Grid: 20 units wide. Common widths: Full (20), Half (10), Third (6-7),
Quarter (5)
Properties: (0-19),
(0+),
(1-20),
(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
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 (, ), and
usage patterns
Validation
⚠️ MANDATORY for create/update workflows: Validate the dashboard JSON
before deploying. Check:
- Schema structure — required top-level keys (, , )
and content keys (, , , )
- 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
and
· Use descriptive
variable IDs · Start with full-width headers (y=0) · Optimize queries with
/
· Set version=21 ·
No time-range filters in queries
unless explicitly requested by the user