{"id":"9269f946-8250-478e-afc8-a3fa17c182a5","shortId":"pDqUmW","kind":"skill","title":"dt-app-dashboards","tagline":"Work with Dynatrace dashboards - create, modify, query, and analyze dashboard JSON including tiles, layouts, DQL queries, variables, and visualizations.","description":"# Dynatrace Dashboard Skill\n\n## Overview\n\nDynatrace dashboards are JSON documents stored in the Document Store containing\ntiles (content/visualizations), layouts (grid positioning), and variables\n(dynamic query parameters).\n\n**When to use:** Creating, modifying, querying, or analyzing dashboards.\n\n## Dashboard JSON Structure\n\n```json\n{\n  \"name\": \"My Dashboard\",\n  \"type\": \"dashboard\",\n  \"content\": {\n    \"version\": 21,\n    \"variables\": [],\n    \"tiles\": { \"<id>\": { \"type\": \"data|markdown\", ... } },\n    \"layouts\": { \"<id>\": { \"x\": 0, \"y\": 0, \"w\": 24, \"h\": 8 } }\n  }\n}\n```\n\n- Tile IDs in `tiles` must match IDs in `layouts`\n- Grid is 24 units wide. Common widths: 24 (full), 12 (half), 6 (quarter)\n- Two tile types: `markdown` (text content) and `data` (DQL query + visualization)\n\n**Optional content properties:** `settings`, `refreshRate`, `annotations`\n\n## Create/Update Workflow (Mandatory Order)\n\nCarefully follow the workflow described in [references/create-update.md](references/create-update.md).\n\n**Key rules:**\n- Load domain skills BEFORE generating queries — do not invent DQL\n- Validate ALL queries before adding to dashboard\n- No time-range filters in queries unless explicitly requested by user\n- Set `name` before deploying\n- **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.\n\n## Visualization Types\n\n- **Time-series** (require `timeseries`/`makeTimeseries`): `lineChart`, `areaChart`, `barChart`, `bandChart`\n- **Categorical** (`summarize ... by:{field}`): `categoricalBarChart`, `pieChart`, `donutChart`\n- **Single value/gauge** (single numeric record): `singleValue`, `meterBar`, `gauge`\n- **Tabular** (any data shape): `table`, `raw`, `recordList`\n- **Distribution/status**: `histogram`, `honeycomb`\n- **Maps**: `choroplethMap`, `dotMap`, `connectionMap`, `bubbleMap`\n- **Matrix**: `heatmap`, `scatterplot`\n\nRequired field types per visualization: [references/tiles.md](references/tiles.md)\n\n## Variables Quick Reference\n\n```json\n{ \"version\": 2, \"key\": \"Service\", \"type\": \"query\", \"visible\": true,\n  \"editable\": true, \"input\": \"smartscapeNodes SERVICE | fields name\",\n  \"multiple\": false }\n```\n\n- **Single-select:** `filter service.name == $Service`\n- **Multi-select:** `filter in(service.name, array($Service))`\n- Types: `query` (DQL-populated), `csv` (static list), `text` (free-form)\n\nFull variable reference: [references/variables.md](references/variables.md)\n\n## References\n\n| File | When to Load |\n|------|-------------|\n| [create-update.md](references/create-update.md) | Creating/updating dashboards |\n| [tiles.md](references/tiles.md) | Tile types, visualization field requirements, settings |\n| [variables.md](references/variables.md) | Variable types, replacement strategies, patterns |\n| [analyzing.md](references/analyzing.md) | Reading dashboards, extracting queries, health assessment |","tags":["app","dashboards","dynatrace","for","agent-skills","ai-agents","claude-code","devops","dql","mcp","observability"],"capabilities":["skill","source-dynatrace","skill-dt-app-dashboards","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-devops","topic-dql","topic-dynatrace","topic-mcp","topic-observability"],"categories":["dynatrace-for-ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/Dynatrace/dynatrace-for-ai/dt-app-dashboards","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add Dynatrace/dynatrace-for-ai","source_repo":"https://github.com/Dynatrace/dynatrace-for-ai","install_from":"skills.sh"}},"qualityScore":"0.489","qualityRationale":"deterministic score 0.49 from registry signals: · indexed on github topic:agent-skills · 78 github stars · SKILL.md body (3,050 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:56:47.309Z","embedding":null,"createdAt":"2026-05-11T18:57:13.243Z","updatedAt":"2026-05-18T18:56:47.309Z","lastSeenAt":"2026-05-18T18:56:47.309Z","tsv":"'0':77,79 '12':102 '2':266 '21':69 '24':81,95,100 '6':104 '8':83 'ad':151 'alway':171 'analyz':13,56 'analyzing.md':337 'annot':122 'app':3 'areachart':218 'array':294 'assess':344 'bandchart':220 'barchart':219 'bubblemap':250 'care':127 'categor':221 'categoricalbarchart':225 'choroplethmap':247 'common':98 'connectionmap':249 'contain':38 'content':67,111,118 'content/visualizations':40 'creat':9,52 'create-update.md':318 'create/update':123 'creating/updating':320 'csv':301 'dashboard':4,8,14,25,29,57,58,64,66,153,176,321,340 'dashboard.json':180 'data':73,113,238 'deploy':169,183,208 'describ':131 'distribution/status':243 'document':32,36 'domain':138 'donutchart':227 'dotmap':248 'download':172,185 'dql':19,114,146,299 'dql-popul':298 'dt':2 'dt-app-dashboard':1 'dtctl':174 'dynam':46 'dynatrac':7,24,28 'edit':202,273 'explicit':162 'extract':341 'fals':281 'field':224,255,278,327 'file':186,314 'filter':158,285,291 'first':173 'follow':128 'form':307 'free':306 'free-form':305 'full':101,308 'gaug':235 'generat':141 'get':175 'grid':42,93 'h':82 'half':103 'health':343 'heatmap':252 'histogram':244 'honeycomb':245 'id':85,90,195 'includ':16 'inject':193 'input':275 'invent':145 'json':15,31,59,61,178,189,264 'key':135,267 'last':207 'layout':18,41,75,92 'linechart':217 'list':303 'load':137,317 'made':205 'maketimeseri':216 'mandatori':125 'manual':196 'map':246 'markdown':74,109 'match':89 'matrix':251 'meterbar':234 'modifi':10,53,181 'multi':289 'multi-select':288 'multipl':280 'must':88 'name':62,167,279 'never':187 'numer':231 'o':177 'option':117 'order':126 'overview':27 'overwrit':199 'paramet':48 'pattern':336 'per':257 'piechart':226 'plain':179 'popul':300 'posit':43 'properti':119 'quarter':105 'queri':11,20,47,54,115,142,149,160,270,297,342 'quick':262 'rang':157 'raw':241 'read':339 'reconstruct':188 'record':232 'recordlist':242 'refer':263,310,313 'references/analyzing.md':338 'references/create-update.md':133,134,319 'references/tiles.md':259,260,323 'references/variables.md':311,312,331 'refreshr':121 'replac':334 'request':163 'requir':214,254,328 'rule':136 'scatterplot':253 'scratch':191 'select':284,290 'seri':213 'servic':268,277,287,295 'service.name':286,293 'set':120,166,329 'shape':239 'silent':198 'sinc':206 'singl':228,230,283 'single-select':282 'singlevalu':233 'skill':26,139 'skill-dt-app-dashboards' 'smartscapenod':276 'source-dynatrace' 'static':302 'store':33,37 'strategi':335 'structur':60 'summar':222 'tabl':240 'tabular':236 'text':110,304 'tile':17,39,71,84,87,107,324 'tiles.md':322 'time':156,212 'time-rang':155 'time-seri':211 'timeseri':215 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-devops' 'topic-dql' 'topic-dynatrace' 'topic-mcp' 'topic-observability' 'true':272,274 'two':106 'type':65,72,108,210,256,269,296,325,333 'ui':201 'unit':96 'unless':161 'updat':170 'use':51 'user':165,204 'valid':147 'value/gauge':229 'variabl':21,45,70,261,309,332 'variables.md':330 'version':68,265 'visibl':271 'visual':23,116,209,258,326 'w':80 'wide':97 'width':99 'work':5 'workflow':124,130 'x':76 'y':78","prices":[{"id":"d96bf7f6-f109-4fd3-a592-92e3a2b5e938","listingId":"9269f946-8250-478e-afc8-a3fa17c182a5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"Dynatrace","category":"dynatrace-for-ai","install_from":"skills.sh"},"createdAt":"2026-05-11T18:57:13.243Z"}],"sources":[{"listingId":"9269f946-8250-478e-afc8-a3fa17c182a5","source":"github","sourceId":"Dynatrace/dynatrace-for-ai/dt-app-dashboards","sourceUrl":"https://github.com/Dynatrace/dynatrace-for-ai/tree/main/skills/dt-app-dashboards","isPrimary":false,"firstSeenAt":"2026-05-11T18:57:13.243Z","lastSeenAt":"2026-05-18T18:56:47.309Z"}],"details":{"listingId":"9269f946-8250-478e-afc8-a3fa17c182a5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"Dynatrace","slug":"dt-app-dashboards","github":{"repo":"Dynatrace/dynatrace-for-ai","stars":78,"topics":["agent-skills","ai-agents","claude-code","devops","dql","dynatrace","mcp","observability"],"license":"apache-2.0","html_url":"https://github.com/Dynatrace/dynatrace-for-ai","pushed_at":"2026-05-15T16:06:09Z","description":"Skills, prompts, and instructions for building AI agents on top of Dynatrace production context","skill_md_sha":"b8cdbc70b9873090b991c3ff45c2b12f7d9c456e","skill_md_path":"skills/dt-app-dashboards/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/Dynatrace/dynatrace-for-ai/tree/main/skills/dt-app-dashboards"},"layout":"multi","source":"github","category":"dynatrace-for-ai","frontmatter":{"name":"dt-app-dashboards","license":"Apache-2.0","description":"Work with Dynatrace dashboards - create, modify, query, and analyze dashboard JSON including tiles, layouts, DQL queries, variables, and visualizations."},"skills_sh_url":"https://skills.sh/Dynatrace/dynatrace-for-ai/dt-app-dashboards"},"updatedAt":"2026-05-18T18:56:47.309Z"}}