NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #610 most downloaded on PyPI
Datadog APM client library
Last release 2 days ago
01 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
10 years old
853 releases · first in 2017
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Vulnerability Management for Code-level (IAST) is now available in private beta. Use the environment variable DD_IAST_ENABLED=True to enable this feat…
Vulnerability Management for Code-level (IAST) is now available in private beta. Use the environment variable DD_IAST_ENABLED=True to enable this feature.
set_produce_checkpoint and set_consume_checkpointNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
ASM: Adds detection of insecure cookie vulnerabilities on responses.
allow_false keyword argument to BaseSampler.sample(), which defaults to True. allow_false controls the function's return value. If allow_false is False, the function will always return True regardless of the sampling decision it made. This is useful when sample is called only for its side effects, which can include setting span tags.DD_UNLOAD_MODULES_FROM_SITECUSTOMIZE is set to True.ASM: avoid potentially unneeded import of the IAST native module.
ASM: avoid potentially unneeded import of the IAST native module if setup doesn't build extensions correctly.
data_streams: This fix resolves an issue where data stream context propagation would not propagate via SNS if raw message delivery was enabled.
dynamic instrumentation: function duration measurements are now reported in milliseconds to match the expectation from the UI.
dynamic instrumentation: fixed an issue that prevented line probes from being injected in some finally blocks.
dynamic instrumentation: Fixed the programmatic API to ensure that the dynamic instrumentation service is fully enabled when Dynamic Instrumentation.enable() is called.
dynamic instrumentation: fixed a bug that might have caused probe status to fail to update correctly.
django: This fix resolves an issue where 'span.resource' would not include the endpoint when a Handler was interrupted, such as in the case of gunicorn worker timeouts.
CI Visibility: fixes an issue where the Intelligent Test Runner would not work when in EVP proxy mode due to missing X-Datadog-NeedsAppKey header.
CI Visibility: revert to using DD_CIVISIBILITY_ITR_ENABLED (instead of _DISABLED) to conform with other tracers.
profiling: fixed a bug that prevented profiles from being correctly correlated to traces in gevent-based applications, thus causing code hotspot and end point data to be missing from the UI.
docs: Fix undefined variable reference in otel documentation
CI Visibility: fixes that Python 2.7 test results were not visible in UI due to improperly msgpack-ed data
ASM: This fix resolves an issue where <span class="title-ref">track_user_signup_event</span> and <span class="title-ref">track_custom_event</span> where not correctly tagging the span. This could lead to the loss of some events in the sampling.
appsec: Fixes an issue where ddtrace.appsec is imported and assumed to be available in all deployments of ddtrace
lib-inject: This fix resolves an issue where libdl.so.2: cannot open shared object file: No such file or directory errors occurred when the
injection image started.
lib-injection: Resolves permissions errors raised when ddtrace packages are copied from the InitContainer to the shared volume.
mariadb: This fix resolves an issue where MariaDB connection information objects not including the user or port caused exceptions to be raised.
appsec: This fix resolves an issue in which the library attempted to finalize twice a context object used by the Application Security Management product.
propagation: Prevent propagating unsupported non-ascii origin header values.
pymongo: This upgrades the PyMongo integration to work with PyMongo versions 4.5.0 and above by choosing the root function of the integration on the basis of the PyMongo version.
tracing: This fix resolves an issue where the <span class="title-ref">_dd.p.dm</span> and <span class="title-ref">_dd.*_psr</span> tags were applied to spans in ways that did not match their intended semantics, increasing the potential for metrics-counting bugs.
ASM: This fix resolves issue where user information was only set in root span. Now span for user information can be selected.
sqlalchemy: sqlalchemy rollbacks could previously cause intermittent deadlocks in some cases. To fix this DD_TRACE_SPAN_AGGREGATOR_RLOCK was introduced in 1.16.2 with the default as False. We are now changing the default to True.
DD_TRACE_OBFUSCATION_QUERY_STRING_PATTERN to DD_TRACE_OBFUSCATION_QUERY_STRING_REGEXP.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
ASM: The vulnerability report now includes a feature to scrub potentially sensitive information. This scrubbing process looks for common patterns, and…
Data Streams Monitoring (DSM) has added support for AWS Kinesis
Breaking change for CI Visibility: test.suite and test.full_name are changed, so any visualization or monitor that uses these fields is potentially affected.
DD_CALL_BASIC_CONFIG will be removed in the upcoming 2.0.0 release. As an alternative to DD_CALL_BASIC_CONFIG, you can call logging.basicConfig() to configure logging in your application.DD_LOG_FORMAT is deprecated and will be removed in 2.0.0. As an alternative, please follow the log injection formatting as provided in the log injection docs.CI Visibility: added tracing support for pytest-benchmark
ASM: The vulnerability report now includes a feature to scrub potentially sensitive information. This scrubbing process looks for common patterns, and it can be further expanded using environment variables such as DD_IAST_REDACTION_NAME_PATTERN and DD_IAST_REDACTION_VALUE_PATTERN. See the docs for more information.
DSM: Adds DSM support for AWS Kinesis. For information about DSM, see the official documentation. This change requires users to use botocore version 1.26.30 or later and update calls to Kinesis' <span class="title-ref">PutRecord</span>, <span class="title-ref">PutRecords</span>, and <span class="title-ref">GetRecords</span> calls with the StreamARN argument.
pytest: This change introduces an option to the pytest plugin to disable ddtrace: --no-ddtrace
CI visibility: Adds support for tracking repository URLs via the BITBUCKET_GIT_HTTP_ORIGIN environment variable
CI visibility: Adds CodeFresh integration
CI Visibility: Beta release of pytest support for the Intelligent Test Runner .
openai: tiktoken has been introduced as an optional package dependency to calculate the number of
tokens used in a prompt for a streamed completion or streamed chat completion. To enable this feature, install ddtrace[openai] or tiktoken. If tiktoken is not installed, the prompt token count will be continue to be estimated instead.
Allows the use of a new backend for storing and exporting profiling data. This feature can be enabled for now by setting the DD_PROFILING_EXPORT_LIBDD_ENABLED environment variable to true. This should improve performance while decreasing memory overhead.
DD_TRACE_SPAN_AGGREGATOR_RLOCK=True. After testing and feedback we intend to make True the default value.CI Visibility: fixes an issue where the CIVisibility client would raise an exception if it was started in agentless mode without the DD_API_KEY set
core: This fix moves cmake from install_requires to setup_requires.
data_streams: This change fixes a bug in the Kafka & SQS integrations in which the Data Streams product code incorrect set timestamps for statistics. This led to all points being submitted for the same timestamp (the start of the application).
dynamic instrumentation: handle null literal in conditions and expressions.
dynamic instrumentation: fixed a bug that prevented span decoration probes from being received and instrumented.
dynamic instrumentation: ensure that probes that fail to be instrumented because of invalid conditions/expressions are reported with status ERROR in the UI.
CI Visibility: This fix solves an issue where the git unshallow command wasn't called
tracing: Ensures health metrics are tagged with the correct values.
CI Visibility: This fix resolves an issue where test skipping was not working properly.
langchain: This fix resolves an issue where chat messages and embedding arguments
passed in as keyword arguments were not parsed correctly and resulted in an ArgumentError.
langchain: This fix resolves an issue where langchain.embeddings.HuggingFaceEmbeddings embedding
methods, and langchain.vectorstores.Milvus.similarity_search were patched twice due to a nested class hierarchy in langchain.
profiling: prevent deadlocks while recording events of different type.
pytest: This fix resolves an issue where test modules could be non-existent, causing errors in the CI Visibility product.
kafka: Resolves UnicodeDecodeError raised when kafka messages key contain characters that are not supported by UTF-8 encoding.
lib-injection: Adds support for non-root run applications in containers.
This fix resolves an issue causing span tags used by the Datadog backend not to be inherited by spans that exist in a different process from their parents.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Datadog has added support for automatically creating login success or failure events when a configured Django authentication backend is used. This wil
Datadog has added support for automatically creating login success or failure events when a configured Django authentication backend is used. This will automatically fill the following tags in these cases:
- <span class="title-ref">appsec.events.users.login.success.track</span>
- <span class="title-ref">appsec.events.users.login.failure.track</span>
- <span class="title-ref">appsec.events.users.login.success.[email|login|username]</span>
- <span class="title-ref">appsec.events.users.login.failure.usr.exists</span>
ASM: Add support for automatic user login events in Django.
langchain: Adds integration with support for metrics, logs, and traces from LangChain requests.
See the docs<langchain> for more information.
redis: Add support for Async RedisCluster.
benchmarks/ directory in the ddtrace wheels._fixupChildren when retrieving DDLogger"RuntimeError: the memalloc module was not started."google.protobuf import error when module unloading.environ property HTTPS as an HTTP header.cython<3 due to an incompatibility with cython==3.0.0 and typing annotations in profiling code.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
ASM: vulnerabilities related to insecure request cookies will be reported when DD_APPSEC_ENABLED is set to true.
Application Security Management (ASM) has added support for tracing subprocess executions.
Exception Debugging allows capturing debug information from exceptions attached to traces. The information about local variables and function arguments is displayed in the Error Tracking UI and augments the traceback data already collected.
ASM: vulnerabilities related to insecure request cookies will be reported when DD_APPSEC_ENABLED is set to true.
ASM: add support for tracing subprocess executions (like <span class="title-ref">os.system</span>, <span class="title-ref">os.spawn</span>, <span class="title-ref">subprocess.Popen</span> and others) and adding information to a span names <span class="title-ref">command_execution</span> with the new type <span class="title-ref">system</span>. Currently we add the <span class="title-ref">cmd.exec</span> or <span class="title-ref">cmd.shell</span> tags to store the full command line (<span class="title-ref">cmd.shell</span> will be used when the command is run under a shell like with <span class="title-ref">os.system</span> or <span class="title-ref">Popen</span> with <span class="title-ref">shell=True</span>), <span class="title-ref">cmd.exit_code</span> to hold the return code when available, <span class="title-ref">component</span> which will hold the Python module used and the span <span class="title-ref">resource</span> will hold the binary used. This feature requires ASM to be activated using the <span class="title-ref">DD_APPSEC_ENABLED=True</span> configuration environment variable.
botocore: Introduces environment variable DD_BOTOCORE_INSTRUMENT_INTERNALS that opts into tracing certain internal functionality.
botocore: Added message attributes to Amazon Simple Queue Service spans to support data streams monitoring.
exception debugging: Introduced the Exception Debugging feature that allows capturing debug information from exceptions attached to traces. This new feature can be enabled via the <span class="title-ref">DD_EXCEPTION_DEBUGGING_ENABLED</span>` environment variable.
openai: Adds support for metrics, logs, and traces for the models, edits, images, audio, files, fine-tunes, and moderations endpoints. See the docs for more information.
CI Visibility: Updates how pytest modules and test suites are reported. Modules names are now set to the fully qualified name, whereas test suites will be set to the file name. Before this change: {"module": "tests", "suite":"my_module/tests/test_suite.py"} After this change: {"module": "my_module.tests", "suite": "test_suite.py"}
core: Apply DD_TAGS to runtime metrics.
kafka: Adds <span class="title-ref">messaging.kafka.bootstrap.servers</span> tag for the confluent-kafka producer configuration value found in <span class="title-ref">metadata.broker.list</span> or <span class="title-ref">bootstrap.servers</span>
tracing: This reports the GRPC package name (optional) and service name in a single <span class="title-ref">rpc.service</span> tag
TypeError raised when an async cursor object is traced. This fix ensures <span class="title-ref">exc_type</span>, <span class="title-ref">exc_val</span>, and <span class="title-ref">exc_tb</span> are passed down to the wrapped object on <span class="title-ref">__aexit__</span>.ImportError of TypedDict from typing module in Python 3.7.unittest.TestCase classes were used.graphql.execute spans are now marked as measured.HashClient failed when use_pooling was set.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
CI Visibility: This fix resolves the compatibility for Gitlab 16.0 deprecated urls
pyramid.request spans.celery>4.0.DD_DJANGO_USE_HANDLER_RESOURCE_FORMAT=True. This issue impacts django>=4.0.AttributeError exception to be raised on profiler start-up.ValueError raised when dsn connection strings are parsed. This was fixed in ddtrace v1.9.0 and was re-introduced in v1.13.0.DD_TRACE_DEBUG=true. This issue impacts gunicorn applications using gevent and python<=3.6.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
profiling: Code provenance is a feature that enhances the "My code" experience in the Datadog UI by allowing the tracer to report packaging metadata a
profiling: Code provenance is a feature that enhances the "My code" experience in the Datadog UI by allowing the tracer to report packaging metadata about installed source files. This information is used to distinguish between user and third-party code.
aws: Adds span tags for consistency with tags collected by Datadog for AWS metrics and logs.
botocore: Adds the ability to control which botocore submodules will be patched.
ASM: Send WAF metrics over telemetry
pytest: This introduces test suite and module level visibility for the pytest integration. Pytest test traces will now include test session, test module, test suite, and test spans, which correlate to pytest session, pytest package, pytest module, and pytest test functions respectively.
redis: Introducing redis command span tag max length configuration for aioredis<aioredis>, aredis<aredis>, redis<redis>, rediscluster<rediscluster>, and yaaredis<yaaredis> integrations.
profiling: Code provenance is enabled by default.
OpenAI: Add integration with support for metrics, logs and traces from OpenAI requests. See the docs for more information.
dependencies: Resolves an issue where ddtrace installs an incompatible version of cattrs when Python 3.6 is used.
tracing: Resolves an issue where DD_TRACE_<INTEGRATION>_ENABLED=False could not be used to disable the following integrations when ddtrace-run was used: flask, django, bottle, falcon, and pyramid.
asgi: Ensures error.message and error.stack tags are set when an exception is raised in a route.
appsec: Fixes an encoding error when we are unable to cleanup the AppSec request context associated with a span.
ASM: Fixes encoding error when using AppSec and a trace is partial flushed.
CI Visibility: This fix resolves an issue where the tracer was doing extra requests if the DD_CIVISIBILITY_ITR_ENABLED env var was not set.
CI Visibility: This fix resolves an issue where the API call would fail because it is reporting a null service name
bootstrap: fixed an issue with the behavior of ddtrace.auto that could have caused incompatibilities with frameworks such as gevent when used as a programmatic alternative to the ddtrace-run command.
django: Fixed a bug that prevented a Django application from starting with celery and gevent workers if DJANGO_SETTINGS_MODULE was not explicitly set.
tracing: Fixes a cryptic encoding exception message when a span tag is not a string.
ASM: fix extract_body for Django such that users of Django Rest Framework can still use custom parsers.
flask: Remove patching for Flask hooks app.before_first_request and bp.before_app_first_request if Flask version >= 2.3.0.
gevent: Fix a bug that caused traceback objects to fail to pickle when using gevent.
OpenAI: Resolved an issue where OpenAI API keys set in individual requests rather than as an environment variable caused an error in the integration.
profiler: Fixed a bug that caused segmentation faults in applications that use protobuf as a runtime dependency.
redis: Resolves an issue where the aioredis/aredis/yaaredis integrations cross-imported a helper method from the redis integration, which triggered redis patching before the redis integration was fully loaded.
wsgi: Resolves an issue where accessing the __len__ attribute on traced wsgi middlewares raised a TypeError
django: Adds catch to guard against a ValueError, AttributeError, or NotImplementedError from being thrown when evaluating a django cache result for db.row_count tag.
lib-injection: Ensure local package is installed. Previously the package could still be pulled from the internet causing application slowdowns.
kafka: Fixes TypeError raised when arbitrary keyword arguments are passed to confluent_kafka.Consumer
profiler: Fix support for latest versions of protobuf.
psycopg: Resolves an issue where an AttributeError is raised when psycopg.AsyncConnection is traced.
sanic: Resolves sanic_routing.exceptions.InvalidUsage error raised when gevent is installed or DD_UNLOAD_MODULES_FROM_SITECUSTOMIZE is set to True.
elasticsearch: This fix resolves an issue where the tracer would throw an error when patching unsupported versions of elasticsearch (> 8.0). Patching is now skipped if an unsupported version is detected.
error.stack tags from 20 to 30Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
psycopg: This release adds support for the new psycopg3 package. This new integration has all the same tracing functionality as the previous psycopg2-
algoliasearch: This fix resolves an issue where non-text search query arguments caused Type Errors when being added as tags.
ASM: fix calling <span class="title-ref">set_user</span> without a created span raising a <span class="title-ref">ValueError</span>.
django: Adds fix for bug where Django cache return object throws an error if it does not implement __bool__().
kafka: Previously instantiating a subclass of kafka's Producer/Consumer classes would result in attribute errors due to patching the Producer/Consumer classes with an ObjectProxy. This fix resolves this issue by making the traced classes directly inherit from kafka's base Producer/Consumer classes.
profiling: Fixed a regression in the memory collector that caused it to fail to cleanly re-initialize after a fork, causing error messages to be logged.
logging: Ensure that the logging module can report thread information, such as thread names, correctly when a framework like gevent is used that requires modules cleanup.
ASM: This fix resolves an issue where path parameters for the Flask framework were handled at response time instead of at request time for suspicious request blocking. This close a known issue opened in 1.10.0.
lib-injection: Switch installation to install from included wheels. Prior, the wheels were merged together which caused conflicts between versions of dependencies based on Python version.
tracer: Handle exceptions besides ImportError when integrations are loaded.
Your coding agent can read these notes before it upgrades. Set up the MCP server →