dynatrace/dynatrace-for-ai

dt-app-dashboards

Work with Dynatrace dashboards - create, modify, query, and analyze dashboard JSON including tiles, layouts, DQL queries, variables, and visualizations.

View source
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

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

json
{
  "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

json
{ "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

FileWhen to Load
create-update.mdCreating/updating dashboards
tiles.mdTile types, visualization field requirements, settings
variables.mdVariable types, replacement strategies, patterns
analyzing.mdReading dashboards, extracting queries, health assessment
from this repository

More skills

All skills
dynatrace
Community

dt-alerting

End-to-end Dynatrace alerting lifecycle — anomaly detector setup and model selection (static threshold, adaptive baseline, seasonal baseline), alert event storage in Grail, problem grouping and denoising by root cause analysis, and workflow-based notification routing (email, Slack, ServiceNow, webhook). Use when configuring alerting, choosing between detector types, querying alert event history, understanding why alerts merged into a problem, or setting up problem-triggered notifications.

installs
2
GitHub stars
135
Updated
Aug 31
dynatrace
Community

dt-app-notebooks

Work with Dynatrace notebooks - create, modify, query, and analyze notebook JSON including sections, DQL queries, and visualizations.

installs
2
GitHub stars
135
Updated
Aug 31
dynatrace
Community

dt-dql-essentials

Core DQL syntax, pitfalls, query patterns, and query optimization. Load to write, build, fix, or OPTIMIZE a DQL query — prevents syntax errors and makes queries faster, more efficient, and cheaper (less data scanned = lower query consumption/cost per run). Covers fetch commands, data models, field namespaces, time alignment, entity/smartscape patterns, metric discovery, and performance/cost optimization (filter early, bucket filters, short time ranges, field selection, sampling, cardinality). Trigger: \"write/build/fix a DQL query\", \"DQL syntax\", \"query logs/spans/metrics\", \"create a timeseries\", \"optimize my DQL\", \"make my query faster/cheaper\", \"reduce DQL cost/consumption/scanned data\", \"keep DQL cost under control\". Do NOT use to explain an existing query or answer product questions. For MONITORING a tenant's ACTUAL query consumption/billing (how much queries cost, who scanned most, cost trends) use dt-platform-costs — this tunes the query text, not billing data.

installs
2
GitHub stars
135
Updated
Aug 31
dynatrace
Community

dt-js-runtime

Dynatrace server-side JS runtime — function contract, runtime limits, Web APIs, Node.js modules, fetch with credential vault, and the @dynatrace-sdk/ catalog.

installs
2
GitHub stars
135
Updated
Aug 31