Redis Observability
redis/agent-skills
Redis observability guidance — which metrics to monitor (memory, connections, hit ratio, ops/sec, rejected connections), which built-in commands to reach for during incident triage (SLOWLOG, INFO…
Write a new library instrumentation end-to-end. An agent skill from DataDog/dd-trace-java.
$ npx skills add DataDog/dd-trace-java --skill apm-integrations -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install DataDog/dd-trace-java apm-integrations --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/DataDog/dd-trace-java.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/apm-integrations .claude/skills/apm-integrations && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "apm-integrations" agent skill from https://github.com/DataDog/dd-trace-java/tree/master/.agents/skills/apm-integrations into .claude/skills/apm-integrations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-integrations", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/DataDog/dd-trace-java/tree/master/.agents/skills/apm-integrationsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add DataDog/dd-trace-java --skill apm-integrations -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install DataDog/dd-trace-java apm-integrations --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DataDog/dd-trace-java.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/apm-integrations .agents/skills/apm-integrations && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "apm-integrations" agent skill from https://github.com/DataDog/dd-trace-java/tree/master/.agents/skills/apm-integrations into .agents/skills/apm-integrations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-integrations", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add DataDog/dd-trace-java --skill apm-integrations -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install DataDog/dd-trace-java apm-integrations --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DataDog/dd-trace-java.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/apm-integrations .cursor/skills/apm-integrations && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "apm-integrations" agent skill from https://github.com/DataDog/dd-trace-java/tree/master/.agents/skills/apm-integrations into .cursor/skills/apm-integrations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-integrations", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/DataDog/dd-trace-java.git --path .agents/skills/apm-integrations--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add DataDog/dd-trace-java --skill apm-integrations -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install DataDog/dd-trace-java apm-integrations --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DataDog/dd-trace-java.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/apm-integrations .gemini/skills/apm-integrations && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "apm-integrations" agent skill from https://github.com/DataDog/dd-trace-java/tree/master/.agents/skills/apm-integrations into .gemini/skills/apm-integrations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-integrations", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install DataDog/dd-trace-java apm-integrationsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add DataDog/dd-trace-java --skill apm-integrations -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/DataDog/dd-trace-java.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/apm-integrations .github/skills/apm-integrations && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "apm-integrations" agent skill from https://github.com/DataDog/dd-trace-java/tree/master/.agents/skills/apm-integrations into .github/skills/apm-integrations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-integrations", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add DataDog/dd-trace-java --skill apm-integrations -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install DataDog/dd-trace-java apm-integrations --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DataDog/dd-trace-java.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/apm-integrations .opencode/skills/apm-integrations && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "apm-integrations" agent skill from https://github.com/DataDog/dd-trace-java/tree/master/.agents/skills/apm-integrations into .opencode/skills/apm-integrations/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-integrations", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
apm-integrationsWrite a new library instrumentation end-to-end. An agent skill from DataDog/dd-trace-java.
Apm Integrations is an agent skill from DataDog/dd-trace-java, published by the product's own GitHub organization. Write a new library instrumentation end-to-end. Use when the user ask to add a new APM integration or a library instrumentation.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/advice-class.md`, `references/context-tracking.md` and `references/instrumenter-module.md`).
It sits in DevOps & Cloud, covering Monitoring and alerting and Observability. It works with Datadog and Java. The repository describes itself as: Datadog APM client for Java. The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 89321ee. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadWriteEditGlobGrepFrom allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and groovy).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Apm Integrations loads about 3.7k tokens when it runs, and up to ~27k if it reads all its reference files. Until then it costs about 36 tokens; SKILL.md has 1,606 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Write, Edit, Glob, GrepAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from DataDog/dd-trace-java at commit 89321ee, republished under its Apache-2.0 licence (© DataDog). 1,606 words, ~3,731 tokens.
.claude/skills/apm-integrations/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Write a new APM end-to-end integration for dd-trace-java, based on library instrumentations, following all project conventions.
Before writing any code, read all three files in full:
docs/how_instrumentations_work.md — full reference (types, methods, advice, helpers, context stores, decorators)docs/add_new_instrumentation.md — step-by-step walkthroughdocs/how_to_test.md — test types and how to run themThese files are the single source of truth. Reference them while implementing.
If the user has not already provided all of the following, ask before proceeding:
okhttp-3.0)Tracing, Profiling, AppSec, Iast, CiVisibility, Usm, ContextTrackingSearch dd-java-agent/instrumentation/ for a structurally similar integration:
Read the reference integration's InstrumenterModule, Advice, Decorator, and test files to understand the established
pattern before writing new code. Use it as a template.
dd-java-agent/instrumentation/$framework/$framework-$minVersion/src/main/java/ — instrumentation codesrc/test/groovy/ (default) or src/test/java/ if the module's master version and version-siblings are already on the Java/JUnit DSL — check them before creating this directory (see Step 9.1)build.gradle with:compileOnly dependencies for the target frameworktestImplementation dependencies for testsmuzzle { pass { } } directives (see Step 9.2)settings.gradle.kts in alphabetical ordermetadata/supported-configurations.json — read Supported Configurations for the exact key shapes and CI checks involved. Declaring several names (super("a", "b")) means one entry each.See Naming Conventions — module directory name must end with a version or an allowed suffix (-common, -stubs, -iast). Java filename and public class name MUST match character-for-character including acronym casing (CRITICAL — see § "Java naming consistency").
Read Context-Tracking Instrumentation and decide whether the library needs InstrumenterModule.Tracing (I/O operations that create spans) or InstrumenterModule.ContextTracking (async-boundary bridging, no spans).
If you picked ContextTracking: the same file's "Library-native context maps" section tells you whether the library needs a *ContextBridge-style helper (Reactor is the canonical example) in addition to the subscriber-wrapping pattern — read it before moving to Step 5. Its "Wrap placement" section covers where to allocate wrappers and context-store entries to avoid per-operator overhead on hot reactive paths.
Read InstrumenterModule Guidance. If you're editing an existing module rather than writing a new one, its "Editing an existing module" note applies — read the current file first and change only what the task requires.
HttpClientDecorator, DatabaseClientDecorator, ServerDecorator, MessagingClientDecorator, etc.public static final DECORATE instanceUTF8BytesString constants for the component name and operation namespanType(), component(), spanKind() as appropriateinstrumentationNames() to return the primary integration name without a version suffix: return new String[] {"jedis"}; not "jedis-3.0".BaseDecorator uses those names to resolve analytics settings (DD_TRACE_<NAME>_ANALYTICS_ENABLED, DD_TRACE_<NAME>_ANALYTICS_SAMPLE_RATE). Search metadata/supported-configurations.json for each returned name — if analytics keys are absent, add them (see Supported Configurations for the JSON shape).Read Writing the Advice Class — the highest-risk step. Pay particular attention to: @Advice.OnMethodEnter/Exit annotations; CallDepthThreadLocalMap reentrancy guarding; span lifecycle order; and the "Must NOT do" list. If the target wraps or delegates to another async client, its "Do not double-span async HTTP clients" section covers whether to open a second span or rely on context-propagation-only advice. If a returned CompletableFuture/CompletionStage needs a completion callback, see Context-Tracking Instrumentation's "Preserving cancellation" section for the read-only-return + named-callback pattern — do not reassign the future with future = future.whenComplete(...).
For context propagation to and from upstream services, like HTTP headers,
implement AgentPropagation.Setter / AgentPropagation.Getter adapters that wrap the framework's specific header API.
Place them in the helpers package, declare them in helperClassNames().
Cover all mandatory test types:
Read Writing Tests. Groovy/Spock (src/test/groovy/) is the default for instrumentation tests — add the tag: override groovy enforcement label to suppress the Enforce Groovy Migration CI check (which blocks new .groovy files by default). Match the sibling module's test DSL is the deciding factor: write your tests in src/test/groovy/ to match the master module and its version-siblings, UNLESS that family is already on the Java/JUnit DSL — do NOT introduce a src/test/java/** JUnit suite into a Groovy family, and do NOT copy the Java AbstractInstrumentationTest examples in references/tests.md (they illustrate style rules for modules already on the Java DSL, they are not a license to migrate a Groovy family to Java). Must cover error/exception scenarios. When adding new integration names, register them per Supported Configurations. When compileOnly and testImplementation use different versions, comment the specific class that requires the higher version. Include sibling version modules as testImplementation dependencies for mutual-exclusion tests.
Read Muzzle Directives — it covers all three valid patterns and their assertInverse rules. Search adjacent module build.gradle files for skipVersions before declaring a new version-bounded module's muzzle directives. If a prior-major-version sibling module already exists in the repo (e.g. you're writing rxjava-3.0 and rxjava-2.0 exists), add the "Namespace-isolation fail block" that section describes — it's not optional, it's how CI catches accidental cross-version advice matching.
If the library's API surface changes across minor versions (deprecated/removed methods, changed signatures), see Writing Tests's "Version-sensitive tests belong in a separate latestDepTest source set" section for which tests belong in src/test/ vs src/latestDepTest/.
Use latestDepTestImplementation in build.gradle to pin the latest available version. Run with:
./gradlew :dd-java-agent:instrumentation:$framework:$framework-$version:latestDepTestlatestDepTestImplementation version range must match the instrumented range. If your module instruments version 2.x, use 2.+ as the version constraint, not 3.+:
// WRONG — latestDep tests against 3.x but the module only instruments 2.x
latestDepTestImplementation group: 'commons-httpclient', name: 'commons-httpclient', version: '3.+'
// CORRECT — latestDep tests against the highest 2.x release
latestDepTestImplementation group: 'commons-httpclient', name: 'commons-httpclient', version: '2.+'Using 3.+ for a 2.x instrumentation means latestDepTest runs against an incompatible API version and will either fail or silently test nothing.
Add a smoke test in dd-smoke-tests/ only if the framework warrants a full end-to-end demo-app test.
Run these commands in order and fix any failures before proceeding:
./gradlew :dd-java-agent:instrumentation:$framework:$framework-$version:muzzle
./gradlew :dd-java-agent:instrumentation:$framework:$framework-$version:test
./gradlew :dd-java-agent:instrumentation:$framework:$framework-$version:latestDepTest
./gradlew checkInstrumenterModuleConfigurations
./gradlew checkDecoratorAnalyticsConfigurations
./gradlew spotlessApply
./gradlew :dd-java-agent:updateAgentJarIntegrationsGoldenFileAfter updateAgentJarIntegrationsGoldenFile runs, commit the updated metadata/agent-jar-checks.properties file alongside your instrumentation changes. The verifyAgentJarIntegrations check runs automatically in CI and fails if this file is out of date.
If muzzle fails:
helperClassNames() — the most common cause; add any missing inner, anonymous, or enum synthetic classes.versions in build.gradle doesn't cover the versions actually used by tests; adjust the bounds.compileOnly version or the muzzle range.If checkInstrumenterModuleConfigurations fails: an integration name from super(...) is missing
(or mismatched) in metadata/supported-configurations.json — see Supported Configurations.
If checkDecoratorAnalyticsConfigurations fails: a name returned by the decorator's instrumentationNames() is missing DD_TRACE_<NAME>_ANALYTICS_ENABLED / DD_TRACE_<NAME>_ANALYTICS_SAMPLE_RATE entries in metadata/supported-configurations.json — add them per Supported Configurations.
If tests fail: verify span lifecycle order (start → activate → error → close → finish), helper
registration, and contextStore() map entries match actual usage. If the output contains
Scope/continuation timeline, read and follow
.agents/skills/fix-continuation-leakage/SKILL.md; fix the broken ownership edge rather than
adding strictTraceWrites(false) or disabling the diagnostic.
Output this checklist and confirm each item is satisfied:
settings.gradle.kts entry added in alphabetical ordermetadata/supported-configurations.json has a DD_TRACE_<NAME>_ENABLED entry (+ the two aliases) for every name passed to super(...)metadata/supported-configurations.json has DD_TRACE_<NAME>_ANALYTICS_ENABLED and DD_TRACE_<NAME>_ANALYTICS_SAMPLE_RATE entries for every name returned by the decorator's instrumentationNames()build.gradle has compileOnly deps and muzzle directiveslatestDepTestImplementation version range matches the instrumented version range (e.g. 2+ not 3+ for a 2.x module)@AutoService(InstrumenterModule.class) annotation present on the module classhelperClassNames() lists ALL referenced helpers (including inner, anonymous, and enum synthetic classes)static with @Advice.OnMethodEnter / @Advice.OnMethodExit annotations@Advice.OnMethodEnter(suppress = Throwable.class) on enter; @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) on exit (omit onThrowable when hooking a constructor)triggerClasses(), contextStore(), etc.)inline=false left in production codejava.util.logging.* / java.nio.file.* / javax.management.* in bootstrap pathmetadata/agent-jar-checks.properties updated via ./gradlew :dd-java-agent:updateAgentJarIntegrationsGoldenFile and committedAfter the instrumentation is complete (or abandoned), review the full session and improve this skill for future use.
Collect lessons from four sources:
For each lesson identified, edit this file (.agents/skills/apm-integrations/SKILL.md) or its referenced files
using the Edit tool:
Keep each change minimal and targeted. Do not rewrite sections that worked correctly. After editing, confirm to the user which improvements were made to the skill.
© DataDog, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (references) in .agents/skills/apm-integrations of DataDog/dd-trace-java.
Open the folder on GitHubat commit 89321ee
Apm Integrations next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Apm Integrations this skillDataDog/dd-trace-java | 736 | — | ~3.7k | Automated safety check: Notes | Apache-2.0 | |
| Redis Observabilityredis/agent-skills | 165 | 2 repos | ~911 | Automated safety check: Pass | MIT | |
| Frontmcp Observabilityagentfront/frontmcp | 146 | — | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Monitoring Observabilityahmedasmar/devops-claude-skills | 203 | — | ~3.9k | Automated safety check: Pass | None | |
| Observability Architecturemajiayu000/litellm-rs | 116 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Cost Exportruvnet/ruflo | 74k | — | ~687 | Automated safety check: Notes | MIT |
redis/agent-skills
Redis observability guidance — which metrics to monitor (memory, connections, hit ratio, ops/sec, rejected connections), which built-in commands to reach for during incident triage (SLOWLOG, INFO…
agentfront/frontmcp
A skill your agent uses when adding tracing, structured logging, metrics, or monitoring to a FrontMCP server.
ahmedasmar/devops-claude-skills
Monitoring and observability strategy, implementation, and troubleshooting.
majiayu000/litellm-rs
LiteLLM-RS Observability Architecture. An agent skill from majiayu000/litellm-rs.
ruvnet/ruflo
Export cost-tracking telemetry in Prometheus textfile or webhook JSON formats — for external observability (Grafana, Datadog, custom dashboards)
ag2ai/build-with-ag2
Add OpenTelemetry traces to an AG2 beta Agent via TelemetryMiddleware (autogen.beta.middleware.builtin).
DataDog/dd-trace-java
Performance-overhead review of a code diff / branch / PR for the dd-trace-java tracer.
DataDog/dd-trace-java
Diagnose and resolve dd-trace-java CI failures from a module's muzzle task or the runMuzzle aggregate.
DataDog/dd-trace-java
Diagnose and fix scope or continuation lifecycle failures in dd-trace-java instrumentation tests.
DataDog/dd-trace-java
Review a code diff / branch / PR for technical debt — code duplication, unnecessary complexity / over-engineering, and redundant or dead code.
DataDog/dd-trace-java
Clarify or review Java Javadocs, Javadoc tags, and explanatory code comments for legibility, accuracy, and source alignment.
DataDog/dd-trace-java
Converts Spock/Groovy test files in a Gradle module to equivalent JUnit 5 Java tests.
Categories
Write a new library instrumentation end-to-end. An agent skill from DataDog/dd-trace-java. Apm Integrations is an agent skill from DataDog/dd-trace-java, published by the product's own GitHub organization. Write a new library instrumentation end-to-end.
Apm Integrations fits situations like: the user ask to add a new APM integration; A library instrumentation.
Run `npx skills add DataDog/dd-trace-java --skill apm-integrations -a claude-code`. Or copy the skill folder (.agents/skills/apm-integrations in DataDog/dd-trace-java) into .claude/skills/apm-integrations in your project. Claude Code loads it when a task matches its description.
Run `npx skills add DataDog/dd-trace-java --skill apm-integrations -a codex`. Or copy the skill folder (.agents/skills/apm-integrations in DataDog/dd-trace-java) into .agents/skills/apm-integrations in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DataDog/dd-trace-java --skill apm-integrations -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/apm-integrations, .gemini/skills/apm-integrations, .github/skills/apm-integrations and .opencode/skills/apm-integrations in your project.
SKILL.md names no scripts, command-line tools or credentials: Apm Integrations is instructions for the agent only. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Glob, Grep.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Apm Integrations is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 23k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Apm Integrations: Redis Observability (redis/agent-skills, 165 stars), Frontmcp Observability (agentfront/frontmcp, 146 stars), Monitoring Observability (ahmedasmar/devops-claude-skills, 203 stars) and Observability Architecture (majiayu000/litellm-rs, 116 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
DataDog (a GitHub organization, an official publisher) maintains it in DataDog/dd-trace-java, which has 736 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.
Source: DataDog/dd-trace-java on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.