/dd-symdb
Symbol Database - search service symbols, find probe-able methods.
Claude Code
$ npx -y skills add DataDog/pup --skill dd-symdb --agent claude-code
Codex
$ npx skills add DataDog/pup --skill dd-symdb -a codex -y
Cursor
$ npx skills add DataDog/pup --skill dd-symdb -a cursor -y
Gemini CLI
$ npx skills add DataDog/pup --skill dd-symdb -a gemini-cli -y
GitHub Copilot
$ npx skills add DataDog/pup --skill dd-symdb -a github-copilot -y
OpenCode
$ npx skills add DataDog/pup --skill dd-symdb -a opencode -y
Windsurf
$ npx skills add DataDog/pup --skill dd-symdb -a windsurf -y
SKILL.md
dd-symdb.SKILL.mdname: dd-symdb
description: Symbol Database - search service symbols, find probe-able methods.
metadata:
version: "1.0.0"
author: datadog-labs
repository: https://github.com/datadog-labs/agent-skills
tags: datadog,symdb,symbol-database,live-debugger
globs: ""
alwaysApply: "false"
Datadog Symbol Database
Search for classes and methods in instrumented services. Find probe-able method locations for use with the Live Debugger.
Prerequisites
`pup` must be installed:
brew tap datadog-labs/pack && brew install pup
Authentication
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"
Usage
Names View
One scope name per line.
pup symdb search --service my-service --query "Controller" --view names
Probe Locations View
`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
Full View
Raw JSON response from the API.
pup symdb search --service my-service --query "VetController" --view full
Filter by Version
pup symdb search --service my-service --query "handler" --version "v1.2.3" --view names
Combining with Debugger
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 10Options
| 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` |
Failure Handling
| 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 |
References
- [Live Debugger Docs](https://docs.datadoghq.com/dynamic_instrumentation/)
- [Symbol Database](https://docs.datadoghq.com/dynamic_instrumentation/symdb/)
Read more
name: dd-symdb description: Symbol Database - search service symbols, find probe-able methods. metadata: version: "1.0.0" author: datadog-labs repository: https://github.com/datadog-labs/agent-skills tags: datadog,symdb,symbol-database,live-debugger globs: "" alwaysApply: "false"
Datadog Symbol Database
Search for classes and methods in instrumented services. Find probe-able method locations for use with the Live Debugger.
Prerequisites
`pup` must be installed:
brew tap datadog-labs/pack && brew install pup
Authentication
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"
Usage
Names View
One scope name per line.
pup symdb search --service my-service --query "Controller" --view names
Probe Locations View
`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
Full View
Raw JSON response from the API.
pup symdb search --service my-service --query "VetController" --view full
Filter by Version
pup symdb search --service my-service --query "handler" --version "v1.2.3" --view names
Combining with Debugger
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 10Options
| 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` |
Failure Handling
| 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 |
References
- [Live Debugger Docs](https://docs.datadoghq.com/dynamic_instrumentation/)
- [Symbol Database](https://docs.datadoghq.com/dynamic_instrumentation/symdb/)
Every AI agent needs a loyal companion. Meet Pup — the CLI that gives your agents full access to Datadog's observability platform (because even autonomous agents need good tooling, not just tricks).
Other skills on pup.
More skills from other plugins.
install
Kubeshark installation and deployment skill. Use this skill whenever the user wants to install Kubeshark, deploy Kubeshark to a…
phone-input
Call the user on the phone for real-time voice conversations. Use this when you need input, want to report on completed work, or…
Questions about dd-symdb.
- Which coding agents can use dd-symdb?
- dd-symdb installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

