.agents/skills/apm-integrations/references/reference-plugins.md
When stuck, copy from working code. Match by library type, not library name.
packages/datadog-plugin-pg/
packages/datadog-plugin-mysql/
packages/datadog-plugin-mongodb-core/
packages/datadog-plugin-cassandra-driver/
packages/datadog-plugin-elasticsearch/
packages/datadog-plugin-redis/
packages/datadog-plugin-memcached/
packages/datadog-plugin-ioredis/
packages/datadog-plugin-http/
packages/datadog-plugin-fetch/
packages/datadog-plugin-undici/
packages/datadog-plugin-grpc/
packages/datadog-plugin-express/
packages/datadog-plugin-fastify/
packages/datadog-plugin-koa/
packages/datadog-plugin-hapi/
packages/datadog-plugin-kafkajs/
packages/datadog-plugin-amqplib/
packages/datadog-plugin-google-cloud-pubsub/
packages/datadog-plugin-kafkajs/ (producer + consumer)
packages/datadog-plugin-express/ (tracing + code origin)
packages/datadog-plugin-graphql/
packages/datadog-plugin-winston/
packages/datadog-plugin-bunyan/
packages/datadog-plugin-pino/
packages/datadog-plugin-openai/
packages/datadog-plugin-anthropic/
packages/datadog-plugin-langchain/
For any plugin:
| File | Purpose |
|---|---|
src/index.js | Plugin entry, base class selection |
src/tracing.js | Tracing logic (if CompositePlugin) |
test/index.spec.js | Test patterns |
test/integration-test/ | ESM testing (if exists) |
For instrumentation:
| File | Purpose |
|---|---|
datadog-instrumentations/src/<lib>.js | Hook logic (shimmer) or hooks file (orchestrion) |
datadog-instrumentations/src/helpers/hooks.js | Registration (both shimmer and orchestrion) |
rewriter/instrumentations/<lib>.js | JSON config (orchestrion) |
src/index.js — understand base class choice and bindStart patterntest/index.spec.js — understand test setup and assertions