Individual skill
datadog-dashboards
Corrects the wrong defaults a model has when building Datadog dashboards, verified against Datadog's docs in July 2026. Use when creating, editing, or reviewing a Datadog dashboard — choosing widgets, writing metric/log/span queries, or emitting widget JSON. Covers the queries that render a plausible number and are still wrong — `.as_count()` is appended automatically in the graph editor but never through the API, so programmatic counts silently average; `p95` resolves only on distribution metrics, and averaging one is an average of averages; ratios need `.as_count()` on both sides or they divide interpolated averages. Also covers grounding queries in metrics that exist rather than invented names, wire type strings that diverge from UI names (Pie Chart is `sunburst`, Table is `query_table`), and Datadog's own layout standard. Assumes the Datadog MCP server is connected. NOT for Terraform or raw Dashboard API management, monitor and SLO authoring, or non-Datadog observability tools.
skills/.experimental/datadog-dashboards/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- Yes
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 222
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: codex
- writing Derived category
- design Derived category
- devops Derived category
- docs Derived category
- design-interface Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
AGENTS.mddoc · 12,348 bytesSKILL.mdcore · 10,383 bytesassets/templates/_template.mddoc · 1,586 bytesmetadata.jsonasset · 5,188 bytesreferences/_sections.mddoc · 4,659 bytesreferences/disco-absence-is-not-proof.mddoc · 2,779 bytesreferences/disco-log-attributes-need-facets.mddoc · 2,570 bytesreferences/disco-never-invent-metric-names.mddoc · 2,800 bytesreferences/disco-read-type-and-unit-first.mddoc · 2,275 bytesreferences/json-dashboard-tags-are-constrained.mddoc · 2,188 bytesreferences/json-layout-follows-reflow-type.mddoc · 3,125 bytesreferences/json-queries-and-formulas-not-q.mddoc · 2,746 bytesreferences/json-template-variables-take-defaults.mddoc · 2,360 bytesreferences/json-type-strings-differ-from-ui-names.mddoc · 2,456 bytesreferences/layout-display-type-follows-metric-shape.mddoc · 2,776 bytesreferences/layout-let-datadog-render-units.mddoc · 2,387 bytesreferences/layout-put-widgets-in-groups.mddoc · 3,248 bytesreferences/layout-size-for-the-medium.mddoc · 2,553 bytesreferences/query-aggregate-before-dividing.mddoc · 3,611 bytesreferences/query-append-as-count-explicitly.mddoc · 2,829 bytesreferences/query-event-sources-take-objects.mddoc · 2,939 bytesreferences/query-gauge-gaps-are-interpolated.mddoc · 2,840 bytesreferences/query-percentiles-require-distributions.mddoc · 3,507 bytesreferences/query-rollup-changes-the-number.mddoc · 3,231 bytesreferences/query-scope-syntax-does-not-mix.mddoc · 2,186 bytesreferences/query-top-n-subtotals-are-partial.mddoc · 2,624 bytesreferences/scope-ask-audience-and-decision.mddoc · 2,742 bytesreferences/scope-clone-before-building.mddoc · 2,599 bytesreferences/scope-not-every-question-is-a-dashboard.mddoc · 2,760 bytesreferences/scope-one-dashboard-many-variables.mddoc · 2,632 bytesreferences/ship-endpoint-follows-the-site.mddoc · 2,363 bytesreferences/ship-validate-before-upserting.mddoc · 3,549 bytesreferences/widget-heatmap-is-not-distribution.mddoc · 3,068 bytesreferences/widget-match-the-question.mddoc · 3,185 bytesreferences/widget-reuse-alerting-primitives.mddoc · 2,744 bytes
Read excerpt
# Datadog Dashboards
The decisions Datadog forces when you build a dashboard, and how to settle them. Every rule names the wrong default it corrects; there is no rule for what the model already gets right.
**Pinned to a date, not a version.** Datadog ships continuously, so every claim here was verified against docs.datadoghq.com in **July 2026**. Re-verify before trusting anything version-shaped — deprecations here (`q`, `default`, `is_read_only`, `week_before()`) still parse today.
**Assumes the Datadog MCP server is connected** (`https://mcp.<site>/v1/mcp`, `toolsets=dashboards,widgets`). Widget schemas are deliberately *not* restated in this skill — `get_widget_reference` returns them current at call time, and a copy here would go stale. If the server is not connected, set it up first (`ship-endpoint-follows-the-site`); this skill does not cover Terraform or raw API management.
## When to Apply
Use this skill when:
- Creating or editing a Datadog dashboard, or reviewing one someone else built — especially a board assembled programmatically rather than in the graph editor, which is where the `.as_count()` divergence bites
- Writing any Datadog query destined for a widget: metric queries with space aggregators and modifiers, or `logs` / `spans` / `rum` queries with `search` + `compute` + `group_by`