From pup
Searches Datadog symbol database for classes and methods in instrumented services to find probe locations for Live Debugger. Supports names, probe-location signatures, and full JSON views.
npx claudepluginhub datadog-labs/pup --plugin pupThis skill uses the workspace's default tool permissions.
Search for classes and methods in instrumented services. Find probe-able method locations for use with the Live Debugger.
Places log probes on running production services to inspect runtime method arguments, variables, and capture live data without redeploying. Streams events via Datadog for debugging function inputs.
Investigates production issues by querying Datadog logs, metrics, and APM traces, then correlating findings with codebase. Useful for debugging errors, latency spikes, alerts in deployed services.
CLI for searching Datadog logs, querying metrics, tracing requests, summarizing errors, and managing dashboards during production debugging and observability triage.
Share bugs, ideas, or general feedback.
Search for classes and methods in instrumented services. Find probe-able method locations for use with the Live Debugger.
pup must be installed:
brew tap datadog-labs/pack && brew install pup
Authenticate via OAuth2 (recommended) or API keys:
# OAuth2 (recommended)
pup auth login
# Or use API keys
export DD_API_KEY="key" DD_APP_KEY="key" DD_SITE="datadoghq.com"
One scope name per line.
pup symdb search --service my-service --query "Controller" --view names
TYPE:METHOD(arg1, arg2, ...) signatures suitable for --probe-location in pup debugger probes create. Falls back to TYPE:METHOD when no argument info is available.
pup symdb search --service my-service --query "VetController" --view probe-locations
Raw JSON response from the API.
pup symdb search --service my-service --query "VetController" --view full
pup symdb search --service my-service --query "handler" --version "v1.2.3" --view names
Find methods then place probes:
# 1. Find probe-able methods
pup symdb search --service my-service --query "MyController" --view probe-locations
# 2. Place a probe on a discovered method (language auto-detected from symdb)
pup debugger probes create \
--service my-service \
--env production \
--probe-location "com.example.MyController:handleRequest" \
--template "handleRequest called with id={id}"
# Or use the full signature when multiple overloads exist
pup debugger probes create \
--service my-service \
--env production \
--probe-location "com.example.MyController:handleRequest(int, java.lang.String)" \
--template "handleRequest called with id={id}"
# 3. Stream events
pup debugger probes watch <PROBE_ID> --timeout 60 --limit 10
| Flag | Description | Default |
|---|---|---|
--service | Service name (required) | — |
--query | Search query, matches scope names | None (lists all) |
--version | Service version filter | None |
--view | Output view: full, names, probe-locations | full |
| Problem | Fix |
|---|---|
| No results | Verify the service is instrumented and reporting to Datadog |
| Auth error | Run pup auth login or set DD_API_KEY + DD_APP_KEY + DD_SITE |
| Wrong service name | Check exact service name in Datadog APM service catalog |
| Stale symbols | Filter with --version to target the currently deployed version |