Skip to main content
skill CX Codex

dd-monitors — Claude Code skill for Datadog monitors

A skill for managing Datadog monitors: list, search, create from a file, and alerting rules that keep noise down.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add datadog-labs/agent-skills --skill dd-monitors -a claude-code
Open on GitHub

What dd-monitors does

The skill gives your agent a working routine for Datadog monitors through pup. List them, filter by tags, fetch one by id, create from a JSON file, silence notifications with a downtime. It also sets an order for command execution: check context first, run a discovery command if a value is missing, ask the user when things are still unclear, then run the target command.

A large part of the skill is about alert hygiene. It pushes you toward last_5m windows instead of last_1m, thresholds tied to SLOs, and recovery thresholds so a monitor does not flap at the boundary. Messages should carry a runbook and mentions like @slack-ops. There is a table of monitor types: metric alert, query alert, service check, event alert, log alert, composite, apm.

You need pup on your PATH and a login via pup auth login. One thing to plan around: the skill refuses direct deletion. Instead it renames a monitor with a [MARKED FOR DELETION] prefix so you can review it later. If your team expects monitors to disappear on request, that workflow will feel slow.

What it helps with

  • find monitors with no team tag using jq
  • create a monitor from a JSON file in one command
  • silence alerts during a deploy with a downtime
  • rewrite a flapping alert with a stable window
  • debug why a monitor never fires

Example prompts for the agent

  • list all monitors tagged team:platform
  • create a monitor from monitor.json and check the thresholds
  • why is the CPU alert not firing — check the query and thresholds

How to install dd-monitors

1Skills CLI (Vercel)

npx skills add datadog-labs/agent-skills --skill dd-monitors -a claude-code

2Manually: put the files in place

~/.claude/skills/dd-monitors/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/dd-monitors/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about dd-monitors

How do I install dd-monitors in Claude?

Run npx skills add datadog-labs/agent-skills --skill dd-monitors -a claude-code. The skill lands in ~/.claude/skills/dd-monitors/SKILL.md.

What does dd-monitors do?

It gives the agent commands to list, search and create Datadog monitors, plus alerting guidance on windows, thresholds, recovery thresholds and runbook links in messages.

What do I need before using it?

pup on your PATH and a session from pup auth login. On an auth error the skill points you to pup auth refresh.

Source text

SKILL.md · MIT
---
name: dd-monitors
description: Monitor management - list, search, file-based create, and alerting best practices.
metadata:
  version: "1.0.1"
  author: datadog-labs
  repository: https://github.com/datadog-labs/agent-skills
  tags: datadog,monitors,alerting,alerts,dd-monitors
  globs: "**/datadog*.yaml,**/*monitor*"
  alwaysApply: "false"
---

# Datadog Monitors

Create, manage, and maintain monitors for alerting.


## Prerequisites
This requires pup in your path. See [Setup Pup](https://github.com/datadog-labs/agent-skills/tree/main?tab=readme-ov-file#setup-pup).

## Command Execution Order (Token-Efficient)

For scoped commands, use this order:

1. Check context first (prior outputs, conversation, saved values).
2. If a required value is missing, run a discovery command first.
3. If still ambiguous, ask the user to confirm.
4. Then run the target command.
5. Avoid speculative commands likely to fail.


## Quick Start

```bash
pup auth login
```

## Common Operations

### List Monitors

```bash
pup monitors list
pup monitors list --tags "team:platform"
```

### Get Monitor

```bash
pup monitors get <id>
```

### Create Monitor

```bash
pup monitors create --file monitor.json
```

### Silence Alerts (Downtime)

```bash
# No pup monitors mute/unmute commands.
# Use downtime payloads to silence monitor notifications.
pup downtime create --file downtime.json
pup downtime cancel <downtime_id>
```

## Monitor Creation Best Practices

### 1. Avoid Alert Fatigue

| Rule | Why |
|------|-----|
| **No flapping alerts** | Use `last_Xm` not `last_1m` |
| **Meaningful thresholds** | Based on SLOs, not guesses |
| **Actionable alerts** | If no action needed, don't alert |
| **Include runbook** | `@runbook-url` in message |

```python
# WRONG - will flap constantly
query = "avg(last_1m):avg:system.cpu.user{*} > 50"  # ❌ Too sensitive

# CORRECT - stable alerting
query = "avg(last_5m):avg:system.cpu.user{env:prod} by {host} > 80"  # ✅ Reasonable window
```

### 2. Use Proper Scoping

```python
# WRONG - alerts on everything
query = "avg(last_5m):avg:system.cpu.user{*} > 80"  # ❌ No scope

# CORRECT - scoped to what matters
query = "avg(last_5m):avg:system.cpu.user{env:prod,service:api} by {host} > 80"  # ✅
```

### 3. Set Recovery Thresholds

```python
monitor = {
    "query": "avg(last_5m):avg:system.cpu.user{env:prod} > 80",
    "options": {
        "thresholds": {
            "critical": 80,
            "critical_recovery": 70,  # ✅ Prevents flapping
            "warning": 60,
            "warning_recovery": 50
        }
    }
}
```

### 4. Include Context in Messages

```python
message = """
## High CPU Alert

Host: {{host.name}}
Current Value: {{value}}
Threshold: {{threshold}}

### Runbook
1. Check top processes: `ssh {{host.name}} 'top -bn1 | head -20'`
2. Check recent deploys
3. Scale if needed

@slack-ops @pagerduty-oncall
"""
```

## NEVER Delete Monitors Directly

Use safe deletion workflow (same as dashboards):

```python
def safe_mark_monitor_for_deletion(monitor_id: str, client) -> bool:
    """Mark monitor instead of deleting."""
    monitor = client.get_monitor(monitor_id)
    name = monitor.get("name", "")
    
    if "[MARKED FOR DELETION]" in name:
        print(f"Already marked: {name}")
        return False
    
    new_name = f"[MARKED FOR DELETION] {name}"
    client.update_monitor(monitor_id, {"name": new_name})
    print(f"✓ Marked: {new_name}")
    return True
```

## Monitor Types

| Type | Use Case |
|------|----------|
| `metric alert` | CPU, memory, custom metrics |
| `query alert` | Complex metric queries |
| `service check` | Agent check status |
| `event alert` | Event stream patterns |
| `log alert` | Log pattern matching |
| `composite` | Combine multiple monitors |
| `apm` | APM metrics |

## Audit Monitors

```bash
# Find monitors without owners
pup monitors list | jq '.[] | select(.tags | contains(["team:"]) | not) | {id, name}'

# Find noisy monitors (high alert count)
pup monitors list | jq 'sort_by(.overall_state_modified) | .[:10] | .[] | {id, name, status: .overall_state}'
```

## Downtime vs Muting

| Use | When |
|-----|------|
| **Downtime** | Any planned silence window |
| **Monitor edit** | Query/threshold behavior changes |

```bash
# Downtime (preferred)
pup downtime create --file downtime.json
```

## Failure Handling

| Problem | Fix |
|---------|-----|
| Alert not firing | Check query returns data, thresholds |
| Too many alerts | Increase window, add recovery threshold |
| No data alerts | Check agent connectivity, metric exists |
| Auth error | `pup auth refresh` |

## References

- [Monitor Types](https://docs.datadoghq.com/monitors/types/)
- [Alerting Best Practices](https://docs.datadoghq.com/monitors/guide/)
- [SLO Monitors](https://docs.datadoghq.com/service_management/service_level_objectives/)

© datadog-labs · MIT · datadog-labs/agent-skills

Similar skills

Everything for DevOps and infrastructure →

From the same set20

agent-skills A set of Datadog skills for AI agents: logs, traces, monitors, cloud integrations. Useful when the agent has to handle observability work itself. CX Codex +1 2,600installs dd-logs A skill for working with Datadog logs through the CLI: search, archives, log-based metrics and exclusion filters for cost control. Useful when you are chasing an incident or trimming an indexing bill. CX Codex +1 2,100installs dd-apm A skill for Datadog APM work: agent install, auto-instrumentation, trace digging and queue monitoring. Useful when the service is already in Datadog and you forgot where to start. CX Codex +1 2,000installs dd-audit A skill for Datadog Audit Trail work: who changed what, whether a key was compromised, and what caused a cost spike. CX Codex +1 709installs dd-browser-sdk Routes coding agents through Datadog Browser SDK upgrades from v4 to v7 and automates sourcemap uploads across major bundlers. CX Codex +1 577installs agent-observability-trace-rca Walks production LLM traces from symptom to root cause. Useful when evals start failing or runtime errors pile up and you need to know why. CX Codex +1 552installs agent-observability-eval-bootstrap Generates LLM evaluation suites from Datadog production traces. Creates inactive online judge drafts, offline Python SDK code, or JSON datasets. CX Codex +1 547installs agent-observability-eval-pipeline Walks an instrumented ml_app through six phases: classify traces, root-cause failures, bootstrap evaluators, build a dataset, run an experiment, analyze it. CX Codex +1 540installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor