Libraries

API and DogStatsD client libraries

The following table lists Datadog-official and community contributed API and DogStatsD client libraries. A few libraries support both the API and DogStatsD, but most focus on one or the other.

LanguagesLibrariesAuthorNotes
ArduinoArduinoStatsdDogStatsDAlexander ElseArduinoStatsd is a lightweight Arduino library that allows your Arduino projects to send metrics (counters, timers, gauges, and more) to StatsD servers over UDP. It supports metric tags compatible with modern StatsD implementations, making it easy to monitor and analyze your embedded devices.
C++cpp-datadogstatsdDogStatsDBoardiesITSolutionsC++ library for sending custom metrics and events from your applications to Datadog via StatsD. Supports UDP and HTTP(S) transmission, tagging, gauge, counter, timer, set, histogram, and event types, with optional asynchronous event submission and flexible tagging APIs.
DogFoodDogStatsDGarrett SicklesDogFood is a lightweight, header-only C++ library for reporting metrics, events, and service checks to a Datadog Agent using the DogStatsD protocol.
C# / .NETdogstatsd-csharp-clientOfficial
DogStatsD
DatadogC# client library for DogStatsD, Datadog’s extension of the StatsD metric server. Features client-side metric aggregation, batching for efficient network usage, and supports Unix domain sockets (UDS) on supported platforms.
DatadogStatsDDogStatsDGregoire VerdierHigh Performance DogStatsD Client for .NET Core
Clojureclojure-statsd-clientDogStatsDUnbounceA pragmatic Clojure wrapper for the official Java DogStatsD client, providing simple global setup and convenient functions to instrument your code with counters, gauges, histograms, and timers—without needing to manually manage a client instance.
CloudFormationcdk-datadog-resourcesAn AWS CDK construct library that wraps the DataDog/datadog-cloudformation-resources.
Crystalstatsd.crDogStatsDMike FiedlerA Crystal client library for sending metrics to StatsD servers. Supports counters, gauges, timers, and Datadog-style tags. Simple API for instrumenting your Crystal applications with real-time metrics.
Delphidatadog-delphiDogStatsDRodrigo Farias Rezinodatadog-delphi is a StatsD client library for Delphi, enabling Delphi applications to send metrics to Datadog via the StatsD protocol.
Elixirex-datadog-plugAPI
Tyr Chen, TubiAn Elixir plug for automatically logging HTTP response times and related metadata to Datadog. Easily configurable to include request methods, customizable metric prefixes, and query parameter tags for enhanced observability of your Phoenix or Plug-based applications.
mtxDogStatsDN2O EcosystemMTX is an Erlang metrics library that provides a front-end API for tracking various metric types, including histograms, meters, counters, gauges, and timings.
statixDogStatsDAleksei MagusevStatix is a fast and efficient Elixir client for StatsD-compatible servers, designed for high-throughput metric collection with low memory usage. It features direct socket communication, UDP packet header caching, and connection pooling to maximize performance, making it ideal for real-time monitoring and analytics in Elixir applications.
Erlang / ElixirdogstatsdeDogStatsDwaisbrotdogstatsde is an Erlang and Elixir client for DogStatsD, Datadog's extension of StatsD that adds support for tags on metrics. The library is easy to integrate into Erlang or Elixir projects and supports tagging, batching, and sample rate for efficient metric reporting to a DogStatsD/StatsD agent.
Godatadog-goOfficial
DogStatsD
DatadogGo client library for DogStatsD, allowing you to send custom metrics, events, and service checks from your Go applications to Datadog.
datadog-api-client-goOfficial
API
DatadogOfficial Go client library for the Datadog API, supporting both v1 and v2 endpoints. It enables developers to interact with Datadog programmatically for tasks such as creating users, managing incidents, querying metrics, and more. The library supports pagination, configurable retries, proxies, and logging, and can be easily integrated into Go applications.
xstatsDogStatsDOlivier Poitreyxstats is a Go package for service instrumentation, providing a unified client to send various types of metrics (counters, timings, etc.) to multiple backends.
go-datadog-apiAPI
Mark Smith from Dropboxgo-datadog-api is a Go client library for interacting with the Datadog API. It supports automating tasks such as managing dashboards, monitors, alerting, and retrieving data like events from Datadog. The library provides pointer-based models with helper functions for safe value handling, and includes accessor methods for working with API objects.
HaskellHaskell Datadog ClientAPI
DogStatsD
Ian DuncanHaskell client for Datadog.
Javajava-dogstatsd-clientOfficial
DogStatsD
DatadogA Java client library for DogStatsD, enabling Java applications to send custom metrics, events, and service checks to the Datadog Agent via UDP or Unix Domain SocketsSupports modern Datadog features like origin detection and client-side aggregation to optimize performance and reduce metric traffic.
datadog-api-client-javaOfficial
API
DatadogOfficial Java client library for the Datadog API. It enables developers to interact programmatically with Datadog’s monitoring, dashboards, alerts, and other resources from Java applications. The client provides both synchronous and asynchronous methods (using CompletableFuture), supports configuration for unstable endpoints, server selection (such as EU instances), proxy settings, request logging, GZIP compression control, retry logic on rate limits or errors, and multiple artifact options including shaded JARs.
java-dogstatsd-clientDogStatsDArnab KarmakarA Java client library for DogStatsD, enabling Java applications to send custom metrics, events, and service checks to the Datadog Agent via UDP or Unix Domain SocketsSupports modern Datadog features like origin detection and client-side aggregation to optimize performance and reduce metric traffic.
metrics-datadogAPI
DogStatsD
CourseraA reporting bridge between Dropwizard metrics and Datadog.
LuaAPISIXDogStatsDApache APISIXSend custom metrics to DogStatsD using the UDP protocol.
Node.jsdatadog-api-clientOfficial
API
DatadogOfficial Node.js client for interacting with the Datadog API, allowing you to programmatically manage monitors, metrics, dashboards, incidents, and more. The client offers flexible configuration for request logging, retry logic, request timeouts, and compression. It also supports unstable endpoints, pagination helpers, and can be extended for custom HTTP behavior such as proxy support.
hot-shotsDogStatsDBrightcovehot-shots is a Node.js client for sending metrics and events to StatsD servers, including Etsy’s StatsD, Datadog’s DogStatsD, and InfluxDB’s Telegraf.
node-dogstatsdDogStatsDYoung Han LeeNode.js client for sending metrics to Datadog's extended StatsD server. It supports Datadog-specific features such as histograms and tags, in addition to standard StatsD metric types like counters and timers. This library allows you to easily instrument your Node.js applications with custom metrics that can be visualized and monitored in Datadog.
node-dogapiAPI
Brett Langdondogapi is a Node.js client library for interacting with the Datadog HTTP API. It allows you to send metrics, events, and more to Datadog programmatically from your Node.js applications. In addition to its programmatic interface, dogapi offers a command-line tool for accessing Datadog API functionality from the terminal.
datadog-metricsAPI
Daniel Baderdatadog-metrics is a Node.js library for collecting and sending custom application metrics to Datadog via its HTTP API, without needing the Datadog Agent. It buffers metrics locally for efficient, periodic submission, minimizing performance impact. datadog-metrics is ideal for environments like serverless or containers where installing the Datadog Agent is not feasible.
Perldogstatsd-perlDogStatsDStefan GoethalsDataDogStatsd is a Perl client for DogStatsd, enabling applications to send metrics and events to Datadog. This module supports counters, gauges, histograms, timings, sets, and events with optional tags and namespaces for flexible metric organization.
PHPphp-datadogstatsdOfficial
DogStatsD
Alex Corleyphp-datadogstatsd is a simple PHP client for sending custom metrics, events, and service checks to Datadog via DogStatsD. The library requires the PHP sockets extension and is suitable for integration into any PHP project; a Laravel-specific wrapper is also available.
dog-statsdDogStatsDgraze.comA fork of thephpleague/statsd with additional Datadog features by Graze.
PythondatadogpyOfficial
API
DogStatsD
DatadogThe Datadog Python library (datadogpy) provides convenient interfaces for interacting with Datadog’s HTTP API and sending metrics, events, and service checks via DogStatsD. It supports both UDP and Unix Domain Socket (UDS) transports for DogStatsD. It also provides a CLI tool ('dog') for API operations.
datadog-api-client-pythonOfficial
API
DatadogOfficial Python client library for the Datadog API, providing both synchronous and asynchronous (asyncio) interfaces, and includes features like pagination, retry on rate limiting, proxy configuration, and support for unstable endpoints.
RdatadogrAPI
A simple R package to query for metrics.
rdogAPI
Alexis Lê-QuôcAn R package to analyze Datadog metrics into R.
Racketracket-dogstatsdDogStatsDDarrenNracket-dogstatsd is a DogStatsD client library for Racket, providing functions to send metrics, events, and service checks to Datadog. It supports counters, gauges, timers, histograms, and tagging, and includes convenient macros like with-timer for measuring code execution time. Requires Racket 6.3 or later.
RubyDogApiOfficial
API
DatadogDogApi is a Ruby client library for interacting with the Datadog API, designed to simplify the process of reporting events and metrics from your Ruby applications or scripts. It provides a higher-level abstraction over Datadog’s HTTP API, making it easy to submit metrics, send events, tag hosts, and retrieve metric data.
datadog_api_clientOfficial
API
DatadogRuby client for interacting with the Datadog API, allowing you to manage and monitor your Datadog resources programmatically. It supports all major Datadog API endpoints, including unstable/beta features, and offers flexible configuration for authentication, server selection, logging, proxy support, pagination, and automatic retries.
dogstatsd-rubyOfficial
DogStatsD
Datadogdogstatsd-ruby enables you to send custom metrics, events, and service checks from your Ruby applications to the Datadog Agent via UDP or Unix Domain Sockets. The library supports advanced features such as asynchronous metric buffering with a dedicated sender thread for high performance, configurable packet sizes, tagging, sample rates, and origin detection for Kubernetes pods.
RustcadenceDogStatsDNick Pillitteri
metrics-exporter-statsdDogStatsDGitHub
datadog-api-client-rustOfficial
API
DatadogRust client library for interacting with the Datadog API, generated from Datadog's public OpenAPI specifications.
Scaladatadog-scalaAPI
Cory WatsonDatadog-Scala is a Scala client library for interacting with the Datadog API.
datadog4sDogStatsDAvastToolkit for monitoring applications written in functional Scala using Datadog.
scaladogAPI
NomadBlackyDatadog API client for Scala.
SwiftDatadogSDKOfficial
API
DatadogThe Datadog SDK for iOS and tvOS enables seamless monitoring and observability for your mobile applications. It provides Swift and Objective-C libraries to collect logs, traces, and Real User Monitoring (RUM) events, with support for WebView tracking to monitor hybrid apps.
SwiftSwift-DogstatsdOfficial
DogStatsD
DatadogSwift Dogstatsd provides an easy way to send Dogstatsd metrics from your Vapor applications. It supports both UDP and UDS transports for metrics delivery and integrates seamlessly with Application and Request contexts, allowing you to increment counters, set gauges, and more with simple method calls.
SwiftSwiftDogAPI
Jacob AronoffSwift library for sending metrics and events to the Datadog API. It allows you to easily report custom metrics and events from your iOS or macOS app, with support for customizable tags, event priorities, and alert types. SwiftDog can be integrated using Swift Package Manager or CocoaPods, and requires a configuration file with your Datadog API and app keys.

APM & Continuous Profiler client libraries

The following table lists Datadog-official and community contributed trace client libraries.

LanguagesLibrariesOfficialAuthorNotes
C++dd-trace-cppDatadogC++ library for instrumenting applications with Datadog distributed tracing. It allows developers to create and manage spans, propagate trace context, and add custom tags. Compatible with C++17, dd-trace-cpp can be built as a static or shared library and is tested on major platforms, including Linux, Windows, and macOS.
.NETdd-trace-dotnetDatadogThe Datadog .NET Tracer enables distributed tracing, application performance monitoring, application security management, continuous integration visibility, and dynamic instrumentation. It supports a wide range of libraries out-of-the-box, with options for custom instrumentation. Also includes a continuous profiler for automatic application profiling.
Rust/C++/CddprofDatadogddprof is a command-line profiler for compiled languages that collects CPU and memory allocation data, capturing profiling information with minimal performance overhead.
ElixirspandexZach DanielSpandex is an Elixir library for instrumenting applications with distributed tracing, with built-in support for exporting trace data to Datadog. It provides macros and functions to create and manage spans, supports asynchronous trace propagation, and integrates with Phoenix via middleware plugs.
Godd-trace-go (v1)DatadogGo package is 'gopkg.in/DataDog/dd-trace-go.v1'.
dd-trace-go (v2)DatadogGo package is 'github.com/DataDog/dd-trace-go/v2'. Note: v2 is in Preview.
datadog-goMatt HoGo client library for DogStatsD, allowing you to send custom metrics, events, and service checks from your Go applications to Datadog.
Javadd-trace-javaDatadogdd-trace-java is Datadog's Java tracer library for Application Performance Monitoring (APM). It enables automatic and manual tracing and profiling of Java applications, providing features such as distributed tracing, continuous profiling, error tracking, CI visibility, deployment tracking, and code hotspot identification. The library supports automatic instrumentation of common Java frameworks and libraries, and offers APIs for custom instrumentation and advanced configuration.
apm-clientChas HontonThe apm-client library provides Java-based instrumentation for tracing servlet requests, JAX-RS client and server requests, and CDI bean methods. It generates spans containing resource and method names, wall time, and duration, which are then sent to a local Datadog APM collector via REST.
Node.jsdd-trace-jsDatadogdd-trace-js is Datadog's APM (Application Performance Monitoring) tracer library for Node.js applications. It enables automatic and manual tracing of application performance, distributed traces, and integrates with the Datadog Agent to report telemetry data. Supports integration with the OpenTelemetry API for custom instrumentation.
PHPdd-trace-phpDatadogdd-trace-php is Datadog’s PHP tracing library that enables Application Performance Monitoring (APM) and distributed tracing for PHP applications. It provides automatic and manual instrumentation for popular PHP frameworks, libraries, and datastores.
Pythondd-trace-pyDatadogThe dd-trace-py library enables Datadog APM features for Python applications, including distributed tracing, continuous profiling, error tracking, CI visibility, deployment tracking, code hotspots, and dynamic instrumentation. It provides automatic and manual instrumentation for various Python frameworks and libraries.
Rubydd-trace-rbDatadogDatadog's official Application Performance Monitoring (APM) tracer. Collects distributed traces and performance metrics from Ruby applications and supports automatic instrumentation for popular Ruby frameworks and libraries.
ddtrace-rb-method-wrapperBrandfolderddtrace-method-wrapper is an extension for ddtrace, Datadog's Ruby tracing library, that provides a convenient way to instrument specific methods within a class or module. By extending your class with DatadogTraceWrapper and specifying methods to trace, this wrapper automatically creates custom spans for those methods.
Rustdatadog-apmPipefyAn unofficial library for integrating Datadog Application Performance Monitoring (APM) with Rust applications. Enables collection and reporting of tracing data to Datadog, allowing developers to monitor and analyze application performance. See the documentation and examples for integration details.

Serverless client libraries

The following table lists Datadog-official and community contributed serverless client libraries.

LanguagesLibrariesOfficialAuthorNotes
Lambdadatadog-lambda-pythonDatadogProvides automatic collection of enhanced Lambda metrics, distributed tracing, and enables custom metric submission to Datadog. The library supports tagging telemetry, capturing Lambda request and response payloads, filtering sensitive information from logs and traces, and advanced cold start tracing options. Optional continuous profiling allows collection of CPU and memory snapshots during Lambda execution.
datadog-lambda-jsDatadogdatadog-lambda-js library captures traces, logs, and metrics, and provides options to tag telemetry, scrub sensitive data, and capture Lambda request/response payloads. It also supports cold start tracing, fine-grained payload depth controls, and profiling.
datadog-lambda-rbDatadogThe datadog-lambda-rb library enables enhanced metrics, distributed tracing, and custom metric submission for AWS Lambda functions written in Ruby, with automatic correlation between logs and traces.
datadog-lambda-goDatadogOffical library for Go-based AWS Lambda functions to send enhanced Lambda metrics, custom metrics, and distributed traces to Datadog. It supports integration with Datadog tracing by injecting spans into the function context, allowing for trace propagation and creation of custom spans using dd-trace-go. The library can also unify traces from AWS X-Ray and Datadog.
datadog-lambda-javaDatadogOfficial Java client library for AWS Lambda functions that enables enhanced Lambda metrics, distributed tracing, and submission of custom metrics to Datadog. It supports automatic injection of trace headers for outbound HTTP requests 3, allowing for distributed tracing across serverless and serverful environments.
serverless-plugin-datadogDatadogserverless-plugin-datadog is a Serverless Framework plugin that automates Datadog integration for AWS Lambda applications. . The plugin enables collection of enhanced metrics, distributed traces, and logs, and supports features like AWS X-Ray tracing, App and API Protection (AAP), source code integration, and continuous profiling. Supports Node.js, Python, Ruby, Java, Go, and .NET runtimes.
serverless-datadog-metricsDante Consulting, Inc.This library logs useful metrics from AWS Lambda functions, so that they can be accumulated via Datadog's AWS Lambda integration.

Log management client libraries

The following table lists Datadog-official and community contributed log management client libraries.

TypeLibrariesOfficialAuthorNotes
Laravellaravel-datadog-loggerAurélien SCHILTZLogger, handler, and formatter created for DataDog log management on Laravel framework.

Community-contributed libraries

LibrariesAuthorNotes
MonitorsinterferonAirbnbThe Interferon gem enables you to manage alert configurations as code by defining alerts, hosts, and engineer groups in Ruby DSL and YAML files. It supports integration with Datadog as the alerting destination, allowing you to programmatically generate and update Datadog alerts based on custom logic and inventory sources (such as AWS resources or SmartStack services).
terraform-datadogTerraformOfficial Terraform provider for Datadog
datadog-to-terraformIntercomdatadog-to-terraform is a browser extension that converts Datadog monitor and dashboard JSON configurations into Terraform code. Users can copy JSON from the Datadog UI, provide a resource name, and generate Terraform HCL for use in infrastructure-as-code workflows.
Integrationsk6-datadogIntegration for sending K6 test results to Datadog
pid-statsGitterHQThe pid-stats integration collects resource usage metrics for processes specified by PID files and sends them to StatsD, allowing monitoring in Datadog. It samples metrics such as CPU usage (user, system, guest), memory usage (resident, virtual, percent), memory faults (major, minor), and disk I/O (read, write, cancelled) for each target process.
pulumi-datadogDatadog resource provider for Pulumi
saltstack-datadogSaltStack formula for Datadog
sensu-datadogSensu handlers for sending metrics and events to Datadog
stackstorm-datadogEnables StackStorm to interact with Datadog by providing actions for managing monitors, events, metrics, dashboards (screenboards and timeboards), downtimes, tags, hosts, users, and embeds. It supports posting and querying time-series data, managing and muting monitors, handling events and comments, scheduling downtimes, and managing visualizations.
Agent Portsnixos-dd-agentNixOS package for the Datadog agent