dd-pup

📁 datadog-labs/agent-skills 📅 3 days ago
10
总安装量
10
周安装量
#29087
全站排名
安装命令
npx skills add https://github.com/datadog-labs/agent-skills --skill dd-pup

Agent 安装分布

opencode 10
claude-code 10
github-copilot 10
codex 10
amp 10
kimi-cli 10

Skill 文档

pup (Datadog CLI)

Pup CLI for Datadog API operations. Supports OAuth2 and API key auth.

Quick Reference

Task Command
Search error logs pup logs search --query "status:error" --duration 1h
List monitors pup monitors list
Mute a monitor pup monitors mute --id 123 --duration 1h
Find slow traces pup apm traces list --service api --min-duration 500ms
List active incidents pup incidents list --status active
Create incident pup incidents create --title "Issue" --severity SEV-2
Query metrics pup metrics query --query "avg:system.cpu.user{*}"
List hosts pup hosts list
Check SLOs pup slos list
Who’s on call pup on-call who --team my-team
Security signals pup security signals list --severity critical
Check auth pup auth status
Refresh token pup auth refresh

Prerequisites

# Install pup
go install github.com/datadog-labs/pup@latest
export PATH="$HOME/go/bin:$PATH"

Auth

pup auth login          # OAuth2 browser flow (recommended)
pup auth status         # Check token validity
pup auth refresh        # Refresh expired token (no browser)
pup auth logout         # Clear credentials

⚠️ Tokens expire (~1 hour). If a command fails with 401/403 mid-conversation:

pup auth refresh        # Try refresh first
pup auth login          # If refresh fails, full re-auth

Headless/CI (no browser)

# Use env vars or:
export DD_API_KEY=your-api-key
export DD_APP_KEY=your-app-key
export DD_SITE=datadoghq.com    # or datadoghq.eu, etc.

Command Reference

Monitors

pup monitors list --limit 10
pup monitors list --tags "env:prod"
pup monitors get --id 12345
pup monitors mute --id 12345 --duration 1h
pup monitors unmute --id 12345
pup monitors create --name "High CPU" --type "metric alert" \
  --query "avg(last_5m):avg:system.cpu.user{*} > 80" \
  --message "CPU high @slack-ops"

Logs

pup logs search --query "status:error" --duration 1h
pup logs search --query "service:payment-api" --duration 1h --limit 100
pup logs search --query "@http.status_code:5*" --duration 24h
pup logs search --query "env:prod level:error" --duration 1h --json

Metrics

pup metrics query --query "avg:system.cpu.user{*}" --duration 1h
pup metrics query --query "sum:trace.express.request.hits{service:api}" --duration 1h
pup metrics list --filter "system.*"

APM / Traces

pup apm services list
pup apm traces list --service my-service --duration 1h
pup apm traces list --service api --min-duration 500ms --duration 1h
pup apm traces list --service api --status error --duration 1h
pup apm traces get abc123def456

Incidents

pup incidents list --status active
pup incidents list --status resolved --duration 7d
pup incidents create --title "API Degradation" --severity SEV-2
pup incidents update --id abc-123 --status stable
pup incidents resolve --id abc-123

Dashboards

pup dashboards list
pup dashboards list --tags "team:platform"
pup dashboards get --id abc-123
pup dashboards create --title "My Dashboard" --description "..." --widgets '[...]'

SLOs

pup slos list
pup slos get --id slo-123
pup slos history --id slo-123 --duration 30d

Synthetics

pup synthetics list
pup synthetics results --test-id abc-123
pup synthetics trigger --test-id abc-123

On-Call

pup on-call teams list
pup on-call schedules list
pup on-call who --team platform-team

Hosts / Infrastructure

pup hosts list --limit 50
pup hosts list --filter "env:prod"
pup hosts mute --hostname web-01 --duration 1h
pup hosts get --hostname web-01

Events

pup events list --duration 24h
pup events list --tags "source:deploy"
pup events post --title "Deploy started" --text "v1.2.3" --tags "env:prod"

Downtimes

pup downtime list
pup downtime create --scope "env:staging" --duration 2h --message "Maintenance"
pup downtime cancel --id 12345

Users / Teams

pup users list
pup teams list

Security

pup security signals list --duration 24h
pup security signals list --severity critical

Service Catalog

pup services list
pup services get --name payment-api

Notebooks

pup notebooks list
pup notebooks get --id 12345

Workflows

pup workflows list
pup workflows trigger --id workflow-123 --input '{"key": "value"}'

Subcommand Discovery

pup --help              # List all commands
pup <command> --help    # Command-specific help

Error Handling

Error Cause Fix
401 Unauthorized Token expired pup auth refresh
403 Forbidden Missing scope Check app key permissions
404 Not Found Wrong ID/resource Verify resource exists
Rate limited Too many requests Add delays between calls

Install

go install github.com/DataDog/pup@latest

Verify Installation

# Check if pup is in PATH
which pup

# If not found, check if it was installed
ls ~/go/bin/pup

PATH Troubleshooting

If pup is installed but which pup returns nothing, Go’s bin directory isn’t in your PATH.

Check where pup is:

ls ~/go/bin/pup           # Standard location
ls $GOPATH/bin/pup        # If GOPATH is set
ls $GOBIN/pup             # If GOBIN is set

Add to PATH (pick your shell):

For zsh (macOS default):

# Add this line to ~/.zshrc
export PATH="$HOME/go/bin:$PATH"

# Then reload
source ~/.zshrc

For bash:

# Add this line to ~/.bashrc or ~/.bash_profile
export PATH="$HOME/go/bin:$PATH"

# Then reload
source ~/.bashrc

For fish:

# Add this line to ~/.config/fish/config.fish
fish_add_path $HOME/go/bin

# Or set permanently
set -Ux fish_user_paths $HOME/go/bin $fish_user_paths

# Then reload
source ~/.config/fish/config.fish

Verify:

which pup        # Should show path
pup --version    # Should show version

Alternative: Full Path

If you don’t want to modify PATH, use the full path:

~/go/bin/pup auth login
~/go/bin/pup monitors list

Or create an alias:

alias pup="$HOME/go/bin/pup"

Sites

Site DD_SITE value
US1 (default) datadoghq.com
US3 us3.datadoghq.com
US5 us5.datadoghq.com
EU1 datadoghq.eu
AP1 ap1.datadoghq.com
US1-FED ddog-gov.com