# dd-trace: Node.js APM Tracer ## Docs - [AppSec API](https://mintlify.wiki/datadog/dd-trace-js/api/appsec.md): The Application Security Management SDK lets you track user events, check for blocked users, and send custom security events from application code. - [Data Streams Checkpointer API](https://mintlify.wiki/datadog/dd-trace-js/api/data-streams.md): The Data Streams Checkpointer API lets you manually instrument producers and consumers for Data Streams Monitoring. - [DogStatsD API](https://mintlify.wiki/datadog/dd-trace-js/api/dogstatsd.md): The DogStatsD client lets you send custom metrics from your application to the Datadog Agent via the StatsD protocol. - [LLMObs API](https://mintlify.wiki/datadog/dd-trace-js/api/llmobs.md): The LLM Observability SDK lets you trace LLM calls, annotate spans with inputs/outputs, submit evaluations, and manage ML application context. - [OpenTelemetry Logs](https://mintlify.wiki/datadog/dd-trace-js/api/opentelemetry/logs.md): Use the OpenTelemetry Logs API with dd-trace as a drop-in LoggerProvider. Enable with DD_LOGS_OTEL_ENABLED=true. - [OpenTelemetry Metrics](https://mintlify.wiki/datadog/dd-trace-js/api/opentelemetry/metrics.md): Use the OpenTelemetry Metrics API with dd-trace as a drop-in MeterProvider. Enable with DD_METRICS_OTEL_ENABLED=true. - [OpenTelemetry Tracing](https://mintlify.wiki/datadog/dd-trace-js/api/opentelemetry/tracing.md): Use the OpenTelemetry Tracing API with dd-trace as a drop-in TracerProvider. Spans created via @opentelemetry/api are sent to Datadog. - [OpenTracing Compatibility](https://mintlify.wiki/datadog/dd-trace-js/api/opentracing.md): dd-trace is fully OpenTracing-compliant. Use the OpenTracing API with the Datadog tracer as the global tracer. - [Scope](https://mintlify.wiki/datadog/dd-trace-js/api/scope.md): The Scope manager provides context propagation across synchronous and asynchronous code boundaries. Access it via tracer.scope(). - [Span](https://mintlify.wiki/datadog/dd-trace-js/api/span.md): A Span represents a single unit of work within a trace. Use Span methods to add tags, set names, add links, and finish the span. - [SpanContext](https://mintlify.wiki/datadog/dd-trace-js/api/span-context.md): SpanContext holds the state needed to identify and propagate a span across process boundaries, including trace ID, span ID, and sampling information. - [Tracer](https://mintlify.wiki/datadog/dd-trace-js/api/tracer.md): The main entry point for the dd-trace Node.js APM library. Initialize tracing, start spans, and manage context propagation. - [Environment variables](https://mintlify.wiki/datadog/dd-trace-js/configuration/environment-variables.md): All DD_* environment variables for dd-trace, grouped by category, with their programmatic option equivalents. - [Configuration options](https://mintlify.wiki/datadog/dd-trace-js/configuration/options.md): Full reference for all dd-trace TracerOptions, grouped by category, with types, defaults, and environment variable equivalents. - [Sampling configuration](https://mintlify.wiki/datadog/dd-trace-js/configuration/sampling.md): Control which traces are kept, at what rate, using priority sampling, sampling rules, and span sampling rules. - [IAST: Code-Level Vulnerability Detection](https://mintlify.wiki/datadog/dd-trace-js/features/appsec/iast.md): Detect exploitable code vulnerabilities in your running Node.js application with Datadog IAST's taint-tracking engine. - [Application Security (AppSec)](https://mintlify.wiki/datadog/dd-trace-js/features/appsec/overview.md): Protect your Node.js application against OWASP Top 10 threats, injection attacks, and more with dd-trace AppSec. - [CI Visibility](https://mintlify.wiki/datadog/dd-trace-js/features/ci-visibility/overview.md): Capture test results, timing, and failures from your Node.js test suites and correlate them with CI pipeline data in Datadog. - [Data Streams Monitoring](https://mintlify.wiki/datadog/dd-trace-js/features/data-streams/overview.md): Monitor end-to-end latency, throughput, and consumer lag across your Kafka, RabbitMQ, SQS, and other streaming pipelines with Datadog Data Streams Monitoring. - [Dynamic Instrumentation](https://mintlify.wiki/datadog/dd-trace-js/features/debugger/overview.md): Add log probes and metric probes to your running Node.js application without redeploying using Datadog Dynamic Instrumentation. - [LLM Observability Overview](https://mintlify.wiki/datadog/dd-trace-js/features/llmobs/overview.md): Monitor, debug, and evaluate your LLM-powered applications with Datadog LLM Observability. - [LLM Observability SDK](https://mintlify.wiki/datadog/dd-trace-js/features/llmobs/sdk.md): Manually instrument LLM calls, annotate spans, submit evaluations, and control LLMObs programmatically using the tracer.llmobs SDK. - [Continuous Profiler](https://mintlify.wiki/datadog/dd-trace-js/features/profiling/overview.md): Collect CPU, heap, and wall-time profiles from your Node.js application continuously with Datadog's profiler. - [Node.js Version Compatibility](https://mintlify.wiki/datadog/dd-trace-js/guides/compatibility/nodejs-versions.md): Which Node.js versions are supported by each dd-trace release line. - [Release Lines & Support Policy](https://mintlify.wiki/datadog/dd-trace-js/guides/compatibility/release-lines.md): dd-trace release lines, their Node.js requirements, support status, and end-of-life policy. - [Custom Tags & Metadata](https://mintlify.wiki/datadog/dd-trace-js/guides/custom-tags.md): How to add custom tags and metadata to spans using dd-trace, including span-level tags, bulk tags, and global tags. - [Distributed Tracing](https://mintlify.wiki/datadog/dd-trace-js/guides/distributed-tracing.md): How to propagate trace context across services with dd-trace, including supported formats and custom inject/extract patterns. - [Log Correlation](https://mintlify.wiki/datadog/dd-trace-js/guides/log-correlation.md): How to correlate application logs with traces in Datadog using automatic or manual log injection. - [Migrating from v3 to v4](https://mintlify.wiki/datadog/dd-trace-js/guides/migrating-v3-to-v4.md): Step-by-step guide for upgrading dd-trace from v3 to v4, covering all breaking changes. - [Migrating from v4 to v5](https://mintlify.wiki/datadog/dd-trace-js/guides/migrating-v4-to-v5.md): Step-by-step guide for upgrading dd-trace from v4 to v5, covering all breaking changes. - [User Identification](https://mintlify.wiki/datadog/dd-trace-js/guides/user-identification.md): How to link authenticated users to traces using tracer.setUser(), including integration with AppSec. - [Bundling with esbuild and webpack](https://mintlify.wiki/datadog/dd-trace-js/installation/bundling.md): How to use dd-trace with application bundlers. Includes the official datadog-esbuild plugin and caveats for other bundlers. - [ESM support](https://mintlify.wiki/datadog/dd-trace-js/installation/esm.md): How to use dd-trace with ECMAScript modules (ESM) using the --import flag or the legacy --loader approach. - [Install dd-trace](https://mintlify.wiki/datadog/dd-trace-js/installation/nodejs.md): Install and initialize the dd-trace Node.js APM library in your application. - [Serverless and Lambda](https://mintlify.wiki/datadog/dd-trace-js/installation/serverless.md): Using dd-trace in serverless environments including AWS Lambda, Google Cloud Functions, and Azure Functions. - [Automatic Instrumentation](https://mintlify.wiki/datadog/dd-trace-js/instrumentation/automatic.md): How dd-trace automatically instruments supported Node.js libraries using the plugin system. - [Scope Manager](https://mintlify.wiki/datadog/dd-trace-js/instrumentation/manual/scope.md): Use the scope manager to propagate span context across asynchronous boundaries. - [Working with Spans](https://mintlify.wiki/datadog/dd-trace-js/instrumentation/manual/spans.md): Add tags, handle errors, and manipulate spans created manually or by plugins. - [Manual Tracing](https://mintlify.wiki/datadog/dd-trace-js/instrumentation/manual/tracing.md): Create and manage spans manually using tracer.trace() and tracer.wrap(). - [Supported Plugins](https://mintlify.wiki/datadog/dd-trace-js/instrumentation/plugins-overview.md): Complete list of all dd-trace plugins organized by category. - [AI/ML integrations](https://mintlify.wiki/datadog/dd-trace-js/integrations/ai-ml.md): Automatic LLM Observability tracing for OpenAI, Anthropic, LangChain, LangGraph, Vertex AI, Google GenAI, and AWS Bedrock. - [Database integrations](https://mintlify.wiki/datadog/dd-trace-js/integrations/databases.md): Automatic tracing for PostgreSQL, MySQL, MongoDB, Redis, Elasticsearch, and other databases. - [Messaging and queue integrations](https://mintlify.wiki/datadog/dd-trace-js/integrations/messaging.md): Automatic tracing and Data Streams monitoring for Kafka, RabbitMQ, BullMQ, Google Cloud Pub/Sub, AWS SQS/SNS, Azure Event Hubs, and more. - [Test framework integrations](https://mintlify.wiki/datadog/dd-trace-js/integrations/testing.md): Automatic CI Visibility tracing for Jest, Mocha, Cucumber, Cypress, Playwright, Vitest, and Selenium. - [Web framework integrations](https://mintlify.wiki/datadog/dd-trace-js/integrations/web-frameworks.md): Automatic tracing for Express, Fastify, Koa, Hapi, Next.js, Hono, Restify, Connect, and Moleculer. - [Introduction](https://mintlify.wiki/datadog/dd-trace-js/introduction.md): dd-trace is the Datadog APM client library for Node.js. It captures distributed trace data from your application and sends it to the Datadog backend via a local Agent. - [Quickstart](https://mintlify.wiki/datadog/dd-trace-js/quickstart.md): Get dd-trace running in your Node.js application in under 5 minutes.