datadog-monitors
Skill4 starsChanged 6 months agoMITView on GitHub
Guidelines for designing, debugging, and troubleshooting Datadog monitor queries, handling common false positives, and operational edge cases.
In this repository124 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/AGENTS.mdAGENTS.md
- .github/workflows/AGENTS.mdAGENTS.md
- .vscode/AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- agent-log-analysisSkill
- agent-mdSkill
- agent-md-writerSkill
- agent-skill-md-writerSkill
- agentskillsSkill
- agents-md-writerSkill
- ai-prompt-writerSkill
- ansibleSkill
- apache-airflow-apiSkill
- apache-airflow-dagsSkill
- astro-cliSkill
- astronomer-docsSkill
- awesome-copilotSkill
- brainstorm-agent-runsSkill
- brainstorm-github-prSkill
- brainstormSkill
- catSkill
- chrome-devtoolsSkill
- claude-docsSkill
- codeqlSkill
- code-reviewSkill
- code-tourSkill
- coding-standard-writerSkill
- context-aware-opsSkill
- copilot-cliSkill
- copilot-docsSkill
- critical-thinkingSkill
- datadog-agentSkill
- datadog-apiSkill
- datadog-mcpSkill
- datadog-pulumiSkill
- devcontainerSkill
- dictationSkill
- direnvSkill
- dockerfileSkill
- dockerSkill
- docs-reviewSkill
- docs-writerSkill
- dot-claudeSkill
- dotfilesSkill
- dot-githubSkill
- editorconfigSkill
- fact-writerSkill
- gdpr-compliantSkill
- gh-agent-taskSkill
- gh-apiSkill
- gh-aw-compileSkill
- gh-aw-firewall-debugSkill
- gh-aw-firewallSkill
- gh-aw-newSkill
- gh-awSkill
- gh-aw-troubleshootingSkill
- gh-codespaceSkill
- gh-issueSkill
- gh-modelsSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 11
Use this skill to design, debug, and troubleshoot Datadog monitor evaluation logic, query semantics, and alert state management.
- Distinctive: line 15
When writing Pulumi, Terraform, or API payloads to create or update Datadog monitors.
- Distinctive: line 17
When reducing noise and false positives in infrastructure and application monitoring.
- Very specific: line 22
When querying raw log or trace telemetry directly (use datadog-api or datadog-mcp instead).
- Distinctive: line 23
If the user simply wants a link to the Datadog UI without altering query definitions.
- Very specific: line 53
Problem: When investigating Network Performance Monitoring (NPM) or specialized Formula/Event-based monitors via scripts or MCP, the …
- Distinctive: line 59
Always filter out known system noise explicitly in the query scope to prevent evaluation bloat.
- Very specific: line 61
When a monitor seems "stuck," inspect the specific tag groupings using the UI or the API (group_states=all) to understand exactly what tags …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Datadog Monitors
<!-- markdownlint-disable MD013 MD024 MD031 MD032 -->Use this skill to design, debug, and troubleshoot Datadog monitor evaluation logic, query semantics, and alert state management.
When to Use
- When writing Pulumi, Terraform, or API payloads to create or update Datadog monitors.
- To debug Datadog alerts that are stuck in a "ghost" or frozen state.
- When reducing noise and false positives in infrastructure and application monitoring.
When Not to Use
- For installing the actual Datadog Agent on a host (use
datadog-agentinstead). - When querying raw log or trace telemetry directly (use
datadog-apiordatadog-mcpinstead). - If the user simply wants a link to the Datadog UI without altering query definitions.
Common Pitfalls
- Missing Evaluation Timeouts: Forgetting to set a
timeoutHon multidimensional alerts, resulting in "ghost alerts" when a pod or host terminates unexpectedly. - Ignoring Loop Devices: Failing to exclude
device_name:loop*in disk monitors, causing a flood of false alerts for 100% full SquashFS mounts. - Scope Creep: Grouping a monitor by too many high-cardinality tags, causing massive evaluation lag and delayed alerting.
Common Query Issues & Operational Fixes
1. Frozen Multidimensional Alerts (Ghost Alerts)
Problem: Monitors grouping by transient dimensions (e.g., workloads, short-lived hosts, or distinct network domains) remain stuck in an Alert state forever after the underlying entity disappears or stops sending metrics.
Why: Datadog does not auto-resolve an alert group if no new data arrives to bring the metric back below the threshold.
Solution: Enable automatic resolution after a period of missing data using the timeout parameter (in Pulumi: timeoutH) to instruct the engine to drop the alert.
Example: timeoutH: 1 auto-resolves if no data is seen for 1 hour.
2. Disk Usage / Forecast False Positives
Problem: Disk monitors trigger on system mounts that are intended to be 100% full, leading to significant alerting noise.
Why: Linux loop devices (used by snap packages) are read-only SquashFS mounts and inherently have no free space. Temporary mount points like tmpfs can also occasionally falsely trigger forecast horizons.
Solution: Filter these devices out directly in the monitor query tag scope.
Example: avg:system.disk.in_use{!device_name:loop*,!device_name:tmpfs} by {host,device_name}
3. Missing NPM / Specialized Event Permissions
Problem: When investigating Network Performance Monitoring (NPM) or specialized Formula/Event-based monitors via scripts or MCP, the Datadog API returns Unauthorized or empty datasets.
Solution: Application Keys need explicitly elevated scopes for these datasets. Cloud Network Monitoring requires scopes like network_connections_read and network_health_insights_read, while broader query evaluation relies on timeseries_query and events_read.
Core Principles
- Always filter out known system noise explicitly in the query scope to prevent evaluation bloat.
- Understand the difference between
on_missing_data: default(what to do during normal evaluation) and explicit timeframe timeouts (what to do when an alerting entity vanishes). - When a monitor seems "stuck," inspect the specific tag groupings using the UI or the API (
group_states=all) to understand exactly what tags are frozen.
Related Skills
- datadog-pulumi: For mapping these monitor definition principles to Pulumi YAML.
- datadog-api: For raw API state extraction (e.g., checking group states directly to find ghost tags).
- datadog-mcp: For using Model Context Protocol to query underlying telemetry and build queries.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

