Official agent skill

Apm Integrations

by DataDog in DataDog/dd-trace-java

Write a new library instrumentation end-to-end. An agent skill from DataDog/dd-trace-java.

OfficialApache-2.0Auto-check: notesDevOps & Cloud

Install Apm Integrations

skills CLI
$ npx skills add DataDog/dd-trace-java --skill apm-integrations -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install DataDog/dd-trace-java apm-integrations --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
apm-integrations
GitHub stars
736
Token cost
~3.7k tokens
SKILL.md length
1,606 words
Files
8 (incl. references)
Skills in repo
9
Repo updated
First seen
Licence
Apache-2.0

At a glance

Write a new library instrumentation end-to-end. An agent skill from DataDog/dd-trace-java.

  • Works in 12 steps: Read the authoritative docs and sync… → Clarify the task → Find a reference instrumentation → …
  • The user ask to add a new APM integration
  • SKILL.md covers Step 1 – Read the…, Step 2 – Clarify the task, Step 3 – Find a reference… and Step 4 – Set up the module, plus 9 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

When your agent uses it

  • The user ask to add a new APM integration
  • A library instrumentation

Example prompts

  • “/apm-integrations”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Write, Edit, Glob, Grep

Workflow steps

12 steps, taken from the step headings in SKILL.md.

  1. Read the authoritative docs and sync this skill (mandatory, always first)
  2. Clarify the task
  3. Find a reference instrumentation
  4. Set up the module
  5. 1 – Span-creating vs context-tracking instrumentation
  6. Write the InstrumenterModule
  7. Write the Decorator
  8. Write the Advice class (highest-risk step)
  9. Add SETTER/GETTER adapters (if applicable)
  10. Write tests
  11. Build and verify
  12. Checklist before finishing

What it can do on your machine

Read from SKILL.md and the folder at commit 89321ee. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Write
    • Edit
    • Glob
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    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.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~36
When it runs · the whole SKILL.md, loaded when a task matches
~3.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~27k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Write, Edit, Glob, Grep

Automated 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.

SKILL.md

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.

Download SKILL.mdSave it as .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.
name
apm-integrations
description
Write a new library instrumentation end-to-end. Use when the user ask to add a new APM integration or a library instrumentation.
allowed-tools
Bash, Read, Write, Edit, Glob, Grep
context
fork

Write a new APM end-to-end integration for dd-trace-java, based on library instrumentations, following all project conventions.

Step 1 – Read the authoritative docs and sync this skill (mandatory, always first)

Before writing any code, read all three files in full:

  1. docs/how_instrumentations_work.md — full reference (types, methods, advice, helpers, context stores, decorators)
  2. docs/add_new_instrumentation.md — step-by-step walkthrough
  3. docs/how_to_test.md — test types and how to run them

These files are the single source of truth. Reference them while implementing.

Step 2 – Clarify the task

If the user has not already provided all of the following, ask before proceeding:

  • Framework name and minimum supported version (e.g. okhttp-3.0)
  • Target class(es) and method(s) to instrument (fully qualified class names preferred)
  • Target system: one of Tracing, Profiling, AppSec, Iast, CiVisibility, Usm, ContextTracking
  • Whether this is a bootstrap instrumentation (affects allowed imports)

Step 3 – Find a reference instrumentation

Search dd-java-agent/instrumentation/ for a structurally similar integration:

  • Same target system
  • Comparable type-matching strategy (single type, hierarchy, known types)

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.

Step 4 – Set up the module

  1. Create directory: dd-java-agent/instrumentation/$framework/$framework-$minVersion/
  2. Under it, create the standard Maven source layout:
    • src/main/java/ — instrumentation code
    • src/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)
  3. Create build.gradle with:
    • compileOnly dependencies for the target framework
    • testImplementation dependencies for tests
    • muzzle { pass { } } directives (see Step 9.2)
  4. Register the new module in settings.gradle.kts in alphabetical order
  5. Register all integration names in metadata/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").

Step 4.1 – Span-creating vs context-tracking instrumentation

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.

Step 5 – Write the InstrumenterModule

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.

Step 6 – Write the Decorator

  • Extend the most specific available base decorator:
    • HttpClientDecorator, DatabaseClientDecorator, ServerDecorator, MessagingClientDecorator, etc.
  • One public static final DECORATE instance
  • Define UTF8BytesString constants for the component name and operation name
  • Keep all tag/naming/error logic here — not in the Advice class
  • Override spanType(), component(), spanKind() as appropriate
  • Override instrumentationNames() 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).

Step 7 – Write the Advice class (highest-risk step)

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(...).

Step 8 – Add SETTER/GETTER adapters (if applicable)

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().

Step 9 – Write tests

Cover all mandatory test types:

1. Instrumentation test (mandatory)

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.

2. Muzzle directives (mandatory)

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.

3. Latest dependency test (mandatory)

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:

bash
./gradlew :dd-java-agent:instrumentation:$framework:$framework-$version:latestDepTest

latestDepTestImplementation version range must match the instrumented range. If your module instruments version 2.x, use 2.+ as the version constraint, not 3.+:

groovy
// 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.

Show full SKILL.md (608 more words)Show less
4. Smoke test (optional)

Add a smoke test in dd-smoke-tests/ only if the framework warrants a full end-to-end demo-app test.

Step 10 – Build and verify

Run these commands in order and fix any failures before proceeding:

bash
./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:updateAgentJarIntegrationsGoldenFile

After 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:

  • Missing helper class names in helperClassNames() — the most common cause; add any missing inner, anonymous, or enum synthetic classes.
  • Wrong version range — the declared versions in build.gradle doesn't cover the versions actually used by tests; adjust the bounds.
  • API mismatch — the instrumented class or method doesn't exist in the declared version; check the library's changelog and narrow the 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.

Step 11 – Checklist before finishing

Output this checklist and confirm each item is satisfied:

  • settings.gradle.kts entry added in alphabetical order
  • metadata/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 directives
  • Muzzle pattern is correct (see Muzzle Directives)
  • latestDepTestImplementation 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 class
  • helperClassNames() lists ALL referenced helpers (including inner, anonymous, and enum synthetic classes)
  • Advice methods are 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)
  • No static constants holding return values of one-shot instrumenter methods (triggerClasses(), contextStore(), etc.)
  • No logger field in the Advice class or InstrumenterModule class
  • No inline=false left in production code
  • No java.util.logging.* / java.nio.file.* / javax.management.* in bootstrap path
  • metadata/agent-jar-checks.properties updated via ./gradlew :dd-java-agent:updateAgentJarIntegrationsGoldenFile and committed
  • Span lifecycle order is correct: startSpan → afterStart → activateSpan (enter); onError → beforeFinish → close → finish (exit)
  • All Step 10 verification commands passed with no failures

Step 12 – Retrospective: update this skill with what was learned

After the instrumentation is complete (or abandoned), review the full session and improve this skill for future use.

Collect lessons from four sources:

  1. Build/test failures — did any Gradle task fail with an error that this skill did not anticipate or gave wrong guidance for? (e.g. a muzzle failure that wasn't caused by missing helpers, a test pattern that didn't work)
  2. Docs vs. skill gaps — did Step 1's sync miss anything? Did you consult the docs for something not captured here?
  3. Reference instrumentation insights — did the reference integration use a pattern, API, or convention not reflected in any step of this skill?
  4. User corrections — did the user correct an output, override a decision, or point out a mistake?

For each lesson identified, edit this file (.agents/skills/apm-integrations/SKILL.md) or its referenced files using the Edit tool:

  • Wrong rule → fix it in place
  • Missing rule → add it to the most relevant step
  • Wrong failure guidance → update the relevant "If X fails" section in Step 10
  • Misleading or obsolete content → remove it

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

Files

SKILL.md and 7 other files (references) in .agents/skills/apm-integrations of DataDog/dd-trace-java.

  • SKILL.md
  • references/advice-class.md
  • references/context-tracking.md
  • references/instrumenter-module.md
  • references/muzzle.md
  • references/naming-conventions.md
  • references/supported-configurations.md
  • references/tests.md

Open the folder on GitHubat commit 89321ee

Compare with similar skills

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.

Apm Integrations compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Apm Integrations this skillDataDog/dd-trace-java736—~3.7kAutomated safety check: NotesApache-2.0
Redis Observabilityredis/agent-skills1652 repos~911Automated safety check: PassMIT
Frontmcp Observabilityagentfront/frontmcp146—~4.6kAutomated safety check: PassApache-2.0
Monitoring Observabilityahmedasmar/devops-claude-skills203—~3.9kAutomated safety check: PassNone
Observability Architecturemajiayu000/litellm-rs116—~1.3kAutomated safety check: PassMIT
Cost Exportruvnet/ruflo74k—~687Automated safety check: NotesMIT

Similar skills

  • Redis Observability

    redis/agent-skills

    Official

    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…

    165 GitHub starsUsed in 2 repos~911 tokens
    DevOps & CloudAuto-check passed
  • Frontmcp Observability

    agentfront/frontmcp

    A skill your agent uses when adding tracing, structured logging, metrics, or monitoring to a FrontMCP server.

    146 GitHub stars~4.6k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Monitoring Observability

    ahmedasmar/devops-claude-skills

    Monitoring and observability strategy, implementation, and troubleshooting.

    203 GitHub stars~3.9k tokensUpdated 5 mo ago
    DevOps & CloudAuto-check passed
  • Observability Architecture

    majiayu000/litellm-rs

    LiteLLM-RS Observability Architecture. An agent skill from majiayu000/litellm-rs.

    116 GitHub stars~1.3k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Cost Export

    ruvnet/ruflo

    Export cost-tracking telemetry in Prometheus textfile or webhook JSON formats — for external observability (Grafana, Datadog, custom dashboards)

    74k GitHub stars~687 tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Ag2 Telemetry

    ag2ai/build-with-ag2

    Add OpenTelemetry traces to an AG2 beta Agent via TelemetryMiddleware (autogen.beta.middleware.builtin).

    252 GitHub stars~1.9k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed

More from DataDog/dd-trace-java

All 9 skills in this repo
  • Perf Review

    DataDog/dd-trace-java

    Official

    Performance-overhead review of a code diff / branch / PR for the dd-trace-java tracer.

    736 GitHub stars~3.6k tokensUpdated today
    Auto-check: notes
  • Resolve Muzzle CI

    DataDog/dd-trace-java

    Official

    Diagnose and resolve dd-trace-java CI failures from a module's muzzle task or the runMuzzle aggregate.

    736 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Fix Continuation Leakage

    DataDog/dd-trace-java

    Official

    Diagnose and fix scope or continuation lifecycle failures in dd-trace-java instrumentation tests.

    736 GitHub stars~1.6k tokensUpdated today
    Auto-check: notes
  • Techdebt

    DataDog/dd-trace-java

    Official

    Review a code diff / branch / PR for technical debt — code duplication, unnecessary complexity / over-engineering, and redundant or dead code.

    736 GitHub stars~565 tokensUpdated today
    Auto-check: notes
  • Clarify Java Comments

    DataDog/dd-trace-java

    Official

    Clarify or review Java Javadocs, Javadoc tags, and explanatory code comments for legibility, accuracy, and source alignment.

    736 GitHub stars~2.3k tokensUpdated today
    Auto-check: notes
  • Migrate Groovy To Java

    DataDog/dd-trace-java

    Official

    Converts Spock/Groovy test files in a Gradle module to equivalent JUnit 5 Java tests.

    736 GitHub stars~1.3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Apm Integrations

What does Apm Integrations do?

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.

When should I use Apm Integrations?

Apm Integrations fits situations like: the user ask to add a new APM integration; A library instrumentation.

How do I install Apm Integrations in Claude Code?

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.

How do I install Apm Integrations in Codex?

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.

Can I use Apm Integrations in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Apm Integrations need to run?

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.

Does Apm Integrations access the network?

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.

Is Apm Integrations safe to install?

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.

What licence does Apm Integrations use?

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.

How many tokens does Apm Integrations use?

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.

What are the alternatives to Apm Integrations?

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.

Who maintains Apm Integrations?

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.