Releases: DataDog/dd-trace-py
1.20.14
Bug Fixes
- tracing: This fix resolves an issue where concurrent mutations to the
context._metadict caused RuntimeError: dictionary changed size during iteration. - Fixes an issue where ddtrace could not be installed from source when using
setuptools>=69due to a change in the license field. - tracing: Fixes an issue where the thread responsible for sending traces is killed due to concurrent dictionary modification.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where certain aspects incorrectly expected at least one argument, leading to an IndexError when none were provided. The solution removes this constraint and incorporates regression tests for stability assurance.
- tracing: This fix resolves an issue where unserializable tracer attributes caused crashes when
DD_TRACE_DEBUGwas set.
2.3.1
Bug Fixes
- propagation: This fix resolves an issue where a
Contextgenerated from extracted headers could lack a span_id or trace_id, leadingSpanLinkencoding errors.
2.2.1
Bug Fixes
- CI Visibility: fixes the fact that the GITHUB_SERVER_URL environment variable was not being sanitized for credentials
- dynamic instrumentation: Needs to update the pubsub instance when the application forks because the probe mechanism should run in the child process. For that, DI needs the callback as the method of an instance of Debugger, which lives in the child process.
- CI Visibility: Fixes an issue where a
ValueErrorwas raised when using different path drives on Windows - build: Fixes an issue where ddtrace could not be installed from source when using
setuptools>=69due to a change in the license field. - tracing: Fixes an issue where the thread responsible for sending traces is killed due to concurrent dictionary modification.
- structlog: Fixes
TypeErrorraised when ddtrace log processor is configured with a tuple - Vulnerability Management for Code-level (IAST): Generates cookies vulnerabilities report if IAST is enabled. Before this fix, Cookies vulnerabilities were only generated if both IAST and Appsec were enabled.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where, at AST patching to replace code with IAST aspects, passing the original function/method as an extra parameter for accurate patching unintentionally triggers side effects in methods obtained from an expression (like
decodeinfile.read(n).decode()), resulting in unexpected multiple calls to the expression (file.read(n)in the example). - tracing: This fix resolves an issue where ddtrace's signal handlers could cause Flask apps not to respond correctly to SIGINT.
2.3.0
New Features
- propagation: 128-bit trace ids are now used by default for propagation. Previously the default was 64-bit. This change is backwards compatible with tracers that still use 64-bit trace ids and should not cause any breaking behavior.
- dsm: Adds DSM
pathway.hashtag to spans when DSM is enabled. This allows traces from the instrumented service to show up in the DSM traces tab. - propagation: When the tracer is configured to extract and inject
tracecontext, the tracer will propagate the tracestate values from other vendors so long as the traceparent trace-id matches the first found trace context, regardless of propagator configuration order. To disable this behaviorDD_TRACE_PROPAGATION_EXTRACT_FIRST=truecan be set. - opentelemetry: Map reserved OpenTelemetry attributes to Datadog span model.
- opentelemetry: datadog operation name from semantic conventions
- propagation: If a valid context is extracted from headers, and the following extracted trace context's
trace_ids do not match the valid context's, then add a span link to the root span to represent the broken propagation. - tracing: This change treats spans that terminated with
sys.exit(0)as successful non-error spans. - tracing: This introduces the
DD_TRACE_SPAN_TRACEBACK_MAX_SIZEenvironment variable, allowing the maximum size of tracebacks included on spans to be configured.
Bug Fixes
-
CI Visibility: fixes the fact that the GITHUB_SERVER_URL environment variable was not being sanitized for credentials
-
dynamic instrumentation: Needs to update the pubsub instance when the application forks because the probe mechanism should run in the child process. For that, DI needs the callback as the method of an instance of Debugger, which lives in the child process.
-
CI Visibility: Fixes an issue where a
ValueErrorwas raised when using different path drives on Windows -
build: Fixes an issue where ddtrace could not be installed from source when using
setuptools>=69due to a change in the license field. -
tracing: Fixes an issue where the thread responsible for sending traces is killed due to concurrent dictionary modification.
-
Vulnerability Management for Code-level (IAST): Generates cookies vulnerabilities report if IAST is enabled. Before this fix, Cookies vulnerabilities were only generated if both IAST and Appsec were enabled.
-
Vulnerability Management for Code-level (IAST): This fix resolves an issue where, at AST patching to replace code with IAST aspects, passing the original function/method as an extra parameter for accurate patching unintentionally triggers side effects in methods obtained from an expression (like
decodeinfile.read(n).decode()), resulting in unexpected multiple calls to the expression (file.read(n)in the example). -
Vulnerability Management for Code-level (IAST): This fix eliminates some reference leaks and C-API usage when IAST reports a vulnerability and calls
get_info_frame. -
kafka: This fix resolves an issue where calls to
confluent_kafka'sproducemethod withkey=Nonewould cause an exception to be raised. -
tracing: This fix resolves an issue where ddtrace's signal handlers could cause Flask apps not to respond correctly to SIGINT.
-
lambda: This change disables the use of
multiprocessing.queuein Lambda, because it is not supported in Lambda -
logging: A log handler is automatically added to the ddtrace logger upon ddtrace import, when not using ddtrace-run. This can lead to duplicate logging if users add additional loggers and do not explicitly modify the ddtrace logger. This fix adds a feature flag that can be used to toggle this behavior off
DD_TRACE_LOG_STREAM_HANDLERwhich defaults totrue. -
structlog: Fixes
TypeErrorraised when ddtrace log processor is configured with a tuple
2.3.0rc1
New Features
- dsm: Adds DSM
pathway.hashtag to spans when DSM is enabled. This allows traces from the instrumented service to show up in the DSM traces tab. - opentelemetry: Map reserved OpenTelemetry attributes to Datadog span model.
- opentelemetry: datadog operation name from semantic conventions
- propagation: 128-bit trace ids are now used by default for propagation. Previously the default was 64-bit. This change is backwards compatible with tracers that still use 64-bit trace ids and should not cause any breaking behavior.
- propagation: When the tracer is configured to extract and inject
tracecontext, the tracer will propagate the tracestate values from other vendors so long as the traceparent trace-id matches the first found trace context, regardless of propagator configuration order. To disable this behaviorDD_TRACE_PROPAGATION_EXTRACT_FIRST=truecan be set. - propagation: If a valid context is extracted from headers, and the following extracted trace context's
trace_ids do not match the valid context's, then add a span link to the root span to represent the broken propagation. - tracing: This change treats spans that terminated with
sys.exit(0)as successful non-error spans. - tracing: This introduces the
DD_TRACE_SPAN_TRACEBACK_MAX_SIZEenvironment variable, allowing the maximum size of tracebacks included on spans to be configured.
Bug Fixes
- build: Fixes an issue where ddtrace could not be installed from source when using
setuptools>=69due to a change in the license field. - CI Visibility: fixes the fact that the GITHUB_SERVER_URL environment variable was not being sanitized for credentials
- dynamic instrumentation: Needs to update the pubsub instance when the application forks because the probe mechanism should run in the child process. For that, DI needs the callback as the method of an instance of Debugger, which lives in the child process.
- CI Visibility: Fixes an issue where a
ValueErrorwas raised when using different path drives on Windows - kafka: This fix resolves an issue where calls to
confluent_kafka'sproducemethod withkey=Nonewould cause an exception to be raised. - logging: A log handler is automatically added to the ddtrace logger upon ddtrace import, when not using ddtrace-run. This can lead to duplicate logging if users add additional loggers and do not explicitly modify the ddtrace logger. This fix adds a feature flag that can be used to toggle this behavior off
DD_TRACE_LOG_STREAM_HANDLERwhich defaults totrue. - tracing: Fixes an issue where the thread responsible for sending traces is killed due to concurrent dictionary modification.
- tracing: This fix resolves an issue where ddtrace's signal handlers could cause Flask apps not to respond correctly to SIGINT.
- Vulnerability Management for Code-level (IAST): Generates cookies vulnerabilities report if IAST is enabled. Before this fix, Cookies vulnerabilities were only generated if both IAST and Appsec were enabled.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where, at AST patching to replace code with IAST aspects, passing the original function/method as an extra parameter for accurate patching unintentionally triggers side effects in methods obtained from an expression (like
decodeinfile.read(n).decode()), resulting in unexpected multiple calls to the expression (file.read(n)in the example). - Vulnerability Management for Code-level (IAST): This fix eliminates some reference leaks and C-API usage when IAST reports a vulnerability and calls
get_info_frame.
2.0.10
New Features
- wsgi: This change introduces the keyword argument app_is_iterator to the DDWSGIMiddleware constructor. It's provided as a workaround for an issue where the Datadog WSGI middleware would fail to handle WSGI apps that are not their own iterators. This condition can arise when a Django app attempts to send its "request finished" signal, in which case it may cause connection leaks. Standard methods of distinguishing an iterable from its iterator, such as checking for the presence of iter and next dunder methods, don't work in this case for unknown reasons. Instead of adding brittle special-case detection logic to the middleware, this new argument allows users to indicate when this is the case.
Bug Fixes
- CI Visibility: fixes the fact that the GITHUB_SERVER_URL environment variable was not being sanitized for credentials
- dynamic instrumentation: Needs to update the pubsub instance when the application forks because the probe mechanism should run in the child process. For that, DI needs the callback as the method of an instance of Debugger, which lives in the child process.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where, at AST patching to replace code with IAST aspects, passing the original function/method as an extra parameter for accurate patching unintentionally triggers side effects in methods obtained from an expression (like
decodeinfile.read(n).decode()), resulting in unexpected multiple calls to the expression (file.read(n)in the example). - tracing: This fix resolves an issue where unserializable tracer attributes caused crashes when
DD_TRACE_DEBUGwas set. - kafka: This fix resolves an issue where calls to
confluent_kafka'sproducemethod withkey=Nonewould cause an exception to be raised. - tracing: This fix resolves an issue where ddtrace's signal handlers could cause Flask apps not to respond correctly to SIGINT.
- logging: A log handler is automatically added to the ddtrace logger upon ddtrace import, when not using ddtrace-run. This can lead to duplicate logging if users add additional loggers and do not explicitly modify the ddtrace logger. This fix adds a feature flag that can be used to toggle this behavior off
DD_TRACE_LOG_STREAM_HANDLERwhich defaults totrue. - This fix resolves an issue where type-checking would fail on valid application code due to a type hint on
Span.set_tagsthat was too restrictive.
1.20.13
Bug Fixes
- CI Visibility: fixes the fact that the GITHUB_SERVER_URL environment variable was not being sanitized for credentials
- dynamic instrumentation: Needs to update the pubsub instance when the application forks because the probe mechanism should run in the child process. For that, DI needs the callback as the method of an instance of Debugger, which lives in the child process.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where, at AST patching to replace code with IAST aspects, passing the original function/method as an extra parameter for accurate patching unintentionally triggers side effects in methods obtained from an expression (like
decodeinfile.read(n).decode()), resulting in unexpected multiple calls to the expression (file.read(n)in the example). - kafka: This fix resolves an issue where calls to
confluent_kafka'sproducemethod withkey=Nonewould cause an exception to be raised. - tracing: This fix resolves an issue where ddtrace's signal handlers could cause Flask apps not to respond correctly to SIGINT.
2.1.8
Bug Fixes
- CI Visibility: fixes the fact that the GITHUB_SERVER_URL environment variable was not being sanitized for credentials
- dynamic instrumentation: Needs to update the pubsub instance when the application forks because the probe mechanism should run in the child process. For that, DI needs the callback as the method of an instance of Debugger, which lives in the child process.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where, at AST patching to replace code with IAST aspects, passing the original function/method as an extra parameter for accurate patching unintentionally triggers side effects in methods obtained from an expression (like
decodeinfile.read(n).decode()), resulting in unexpected multiple calls to the expression (file.read(n)in the example). - tracing: This fix resolves an issue where unserializable tracer attributes caused crashes when
DD_TRACE_DEBUGwas set. - kafka: This fix resolves an issue where calls to
confluent_kafka'sproducemethod withkey=Nonewould cause an exception to be raised. - tracing: This fix resolves an issue where ddtrace's signal handlers could cause Flask apps not to respond correctly to SIGINT.
- logging: A log handler is automatically added to the ddtrace logger upon ddtrace import, when not using ddtrace-run. This can lead to duplicate logging if users add additional loggers and do not explicitly modify the ddtrace logger. This fix adds a feature flag that can be used to toggle this behavior off
DD_TRACE_LOG_STREAM_HANDLERwhich defaults totrue.
2.2.0
New Features
-
CI Visibility: adds ITR support for
unittest -
CI Visibility: adds start/end line support for
pytesttest spans -
CI Visibility: adds start/end line source file data to
unittesttest spans -
aiohttp: This introduces basic tracing of streaming responses that stay open long after the on_prepare signal has been sent.
-
CI Visibility: introduce pytest hooks for modifying the module, suite, and test naming logic
-
CI Visibility: add support for AWS Codepipeline to CI env var gathering
-
datastreams: this change adds message payload size metrics and aggregations for Kafka.
-
structlog: Wraps get_logger function in order to add datadog injection processor regardless of configuration
-
openai: This adds support for openai v1.
-
Source Code: filters Git repo URLs from env vars and setuptools
-
logbook: This introduces log correlation for the logbook library. Refer to
logbook-docs <ddtrace.contrib.logbook>for more details. -
loguru: This introduces log correlation for the loguru library. Refer to
loguru-docs <ddtrace.contrib.loguru>for more details. -
openai: This adds support for tagging function call arguments when using OpenAI's function calling feature.
-
Adds ARM64 support for Single-Step instrumentation
-
structlog: This introduces log correlation for the structlog library. Refer to
structlog-docs <ddtrace.contrib.structlog>for more details. -
celery: Adds Python 3.11 and 3.12 support for the celery integration.
-
CI Visibility: adds full test suite level visibility for unittest
-
ASM: Add support for automatic user login events in Flask when using flask_login.
-
tracer: This introduces collection of inferred service names. The agent version v7.46.0 contains a new field "extra_services" in the remote config client, that allows clients to list any additional services that are used within tracer spans. Knowing all service names used by a tracer instance help the UI give better feedback to the user.
-
tracer: Adds support for
DD_TRACE_METHODS. This feature enables the
specification of custom methods to be instrumented by the tracer when usingddtrace-run. See the configuration documentation for more information: https://ddtrace.readthedocs.io/en/v2.1.0/configuration.html. -
openai: This introduces official tracing support for Azure OpenAI services, specifically for completions, chat completions, and embeddings using models deployed on Azure OpenAI endpoints.
-
elasticsearch: This introduces tracing for Elasticsearch 8 and the async Elasticsearch client.
-
Vulnerability Management for Code-level (IAST): Server-Side Request Forgery (SSRF) vulnerability detection, which will be displayed on your DataDog Vulnerability Explorer dashboard. See the Application Vulnerability Management documentation for more information about this feature.
-
Vulnerability Management for Code-level (IAST): Weak randomness vulnerability detection.
-
pymemcache: add
DD_TRACE_MEMCACHED_COMMAND_ENABLEDenvironment variable for configuring the collection of memcached commands. This feature is disabled by default. -
wsgi: This change introduces the keyword argument app_is_iterator to the DDWSGIMiddleware constructor. It's provided as a workaround for an issue where the Datadog WSGI middleware would fail to handle WSGI apps that are not their own iterators. This condition can arise when a Django app attempts to send its "request finished" signal, in which case it may cause connection leaks. Standard methods of distinguishing an iterable from its iterator, such as checking for the presence of iter and next dunder methods, don't work in this case for unknown reasons. Instead of adding brittle special-case detection logic to the middleware, this new argument allows users to indicate when this is the case.
Known Issues
- ASM: fix a body read problem on some corner case where passing empty content length makes wsgi.input.read() blocks.
Upgrade Notes
- The
wraptandpsutilpackages are vendored to help users avoid building these packages if wheels were not available for a given platform. This reverses a change released in v2.0.0. - pymemcache: The
memcached.queryspan tag will no longer be set by the integration. This command includes keys that can potentially contain sensitive information. If you require this span tag, you can retain the existing functionality by settingDD_TRACE_MEMCACHED_COMMAND_ENABLED=true. This span tag can be redacted usingDD_APM_REPLACE_TAGSin your Agent configuration.
Bug Fixes
- Application Security Management (ASM): fix a body read error when
Transfer-Encoding: chunkedheader is sent - CI Visibility: fixes an issue where class-based test methods with the same name across classes would be considered duplicates, and cause one (or more) tests to be dropped from results, by adding
--ddtrace-include-class-nameas an optional flag (defaulting to false) to prepend the class name to the test name. - CI Visibility: fixes a crash where the unittest integration would try to enable coverage when tests are run even if the Intelligent Test Runner is not enabled.
- data_streams: This fix resolves an issue where tracing would crash if a kafka client produced a message with no key or value.
- CI: fixes an issue which prevented the library from filtering user credentials for SSH Git repository URLs
- dynamic instrumentation: fix an issue that caused function probes on the same module to fail to instrument and be reported in the
ERRORstatus in the UI if the module was not yet imported. - Use a unique default service name across all the products provided by the library when one is not given via the configuration interface.
- sampling: This fix reverts a refactor which affected how the tracer handled the trace-agent's recommended trace sampling rates, leading to an unintended increase in traces sampled.
- tracing: Fixes a msgpack import error when
DD_TRACE_APIis set tov0.5 - fix(profiling): numeric type exception in memalloc When pushing allocation samples, an exception was being thrown due to a float being passed instead of an integer. We now cast the ceiled value to an integer.
- CI Visibility: fixes
unittestdata not being initialized properly - CI Visibility: fixes an issue where just importing unittest enabled CIVisibility and potentially caused unexpected logs and API requests
- Vulnerability Management for Code-level (IAST): This fix addresses AST patching issues where custom functions or methods could be replaced by aspects with differing argument numbers, causing runtime errors as a result. Furthermore, it addresses a case during patching where the module is inadvertently passed as the first argument to the aspect.
- Vulnerability Management for Code-level (IAST): Fix potential string id collisions that could cause false positives with non tainted objects being marked as tainted.
- IAST: This fix resolves an issue where JSON encoder would throw an exception while encoding a tainted dict or list.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where SimpleJSON encoder would throw an exception while encoding a tainted dict or list.
- ASM: add support for psycopg2 adapt mechanism to LazyTaintList, preventing a ProgrammingError when using psycopg2 with IAST.
- tracing: This fix resolves an issue where unserializable tracer attributes caused crashes when
DD_TRACE_DEBUGwas set. - This fix resolves an issue where
confluent_kafka'sSerializingProducerandDeserializingConsumerclasses were incorrectly patched, causing crashes when these classes are in use with Datadog patching. - langchain: This fix resolves an issue with tagging pydantic SecretStr type api keys.
- lib injection: Fix permissions error raised when non-root users copy single step instrumentation files.
- redis: The Datadog Agent removes command arguments from the resource name. However there are cases, like compressed keys, where this obfuscation cannot correctly remove command arguments. To safeguard that situation, the resource name set by the tracer will only be the command (e.g. SET) with no arguments. To retain the previous behavior and keep arguments in the span resource, with the potential risk of some command arguments not being fully obfuscated, set
DD_REDIS_RESOURCE_ONLY_COMMAND=false. - CI Visibility: fixes distributed tracing when using the CI Visibility integration
- dbm: this fixes an issue with attributing metrics to incorrect services when peer.service is enabled
- This fix resolves an issue where the library failed to install due to dependency conflicts caused by restrictive version specifiers on the psutil and Wrapt libraries.
- tracing: Encoding traces in the v05 format has a known issue for applications generating spans at a high frequency, causing approximately 1/10000000 spans to be misencoded. This change sets
DD_TRACE_API_VERSIONtov04by default. - DSM: fix off-by-one metric issue and error where statistics weren't calculated when the core API was used.
- tracing: Fix an issue with some integrations, such as OpenAI, that caused an exception on start-up when using gevent.
- dynamic instrumentation: fix an issue that caused the probe instrumentation error details from being reported for visualization in the UI.
- IAST: fix executed sink telemetry metric as it is not really linked to vulnerability report.
- CI Visibility: Fixes incorrect Git version extraction
- This fix eliminates some reference leaks and C-API usage in the
_iastmodule. - kafka: Fixes
ValueErrorraised whenConsumer.commit(offsets=...)is called. - Resolves issues with the import machinery that might have caused the garbage collector to c...
2.2.0rc1
Upgrade Notes
- The
wraptandpsutilpackages are vendored to help users avoid building these packages if wheels were not available for a given platform. This reverses a change released in v2.0.0.
New Features
- CI Visibility: adds ITR support for
unittest - CI Visibility: adds start/end line support for
pytesttest spans - CI Visibility: adds start/end line source file data to
unittesttest spans - aiohttp: This introduces basic tracing of streaming responses that stay open long after the on_prepare signal has been sent.
- CI Visibility: introduce pytest hooks for modifying the module, suite, and test naming logic
- CI Visibility: add support for AWS Codepipeline to CI env var gathering
- datastreams: this change adds message payload size metrics and aggregations for Kafka.
- structlog: Wraps get_logger function in order to add datadog injection processor regardless of configuration
- openai: This adds support for openai v1.
- Source Code: filters Git repo URLs from env vars and setuptools
- logbook: This introduces log correlation for the logbook library. Refer to
logbook-docs <ddtrace.contrib.logbook>for more details. - loguru: This introduces log correlation for the loguru library. Refer to
loguru-docs <ddtrace.contrib.loguru>for more details. - openai: This adds support for tagging function call arguments when using OpenAI's function calling feature.
- Adds ARM64 support for Single-Step instrumentation
- structlog: This introduces log correlation for the structlog library. Refer to
structlog-docs <ddtrace.contrib.structlog>for more details. - celery: Adds Python 3.11 and 3.12 support for the celery integration.
Known Issues
- ASM: fix a body read problem on some corner case where passing empty content length makes wsgi.input.read() blocks.
Bug Fixes
- Application Security Management (ASM): fix a body read error when
Transfer-Encoding: chunkedheader is sent - CI Visibility: fixes an issue where class-based test methods with the same name across classes would be considered duplicates, and cause one (or more) tests to be dropped from results, by adding
--ddtrace-include-class-nameas an optional flag (defaulting to false) to prepend the class name to the test name. - CI Visibility: fixes a crash where the unittest integration would try to enable coverage when tests are run even if the Intelligent Test Runner is not enabled.
- data_streams: This fix resolves an issue where tracing would crash if a kafka client produced a message with no key or value.
- CI: fixes an issue which prevented the library from filtering user credentials for SSH Git repository URLs
- dynamic instrumentation: fix an issue that caused function probes on the same module to fail to instrument and be reported in the
ERRORstatus in the UI if the module was not yet imported. - Use a unique default service name across all the products provided by the library when one is not given via the configuration interface.
- sampling: This fix reverts a refactor which affected how the tracer handled the trace-agent's recommended trace sampling rates, leading to an unintended increase in traces sampled.
- tracing: Fixes a msgpack import error when
DD_TRACE_APIis set tov0.5 - fix(profiling): numeric type exception in memalloc When pushing allocation samples, an exception was being thrown due to a float being passed instead of an integer. We now cast the ceiled value to an integer.
- CI Visibility: fixes
unittestdata not being initialized properly - CI Visibility: fixes an issue where just importing unittest enabled CIVisibility and potentially caused unexpected logs and API requests
- Vulnerability Management for Code-level (IAST): This fix addresses AST patching issues where custom functions or methods could be replaced by aspects with differing argument numbers, causing runtime errors as a result. Furthermore, it addresses a case during patching where the module is inadvertently passed as the first argument to the aspect.
- Vulnerability Management for Code-level (IAST): Fix potential string id collisions that could cause false positives with non tainted objects being marked as tainted.
- IAST: This fix resolves an issue where JSON encoder would throw an exception while encoding a tainted dict or list.
- Vulnerability Management for Code-level (IAST): This fix resolves an issue where SimpleJSON encoder would throw an exception while encoding a tainted dict or list.
- ASM: add support for psycopg2 adapt mechanism to LazyTaintList, preventing a ProgrammingError when using psycopg2 with IAST.
- tracing: This fix resolves an issue where unserializable tracer attributes caused crashes when
DD_TRACE_DEBUGwas set. - This fix resolves an issue where
confluent_kafka'sSerializingProducerandDeserializingConsumerclasses were incorrectly patched, causing crashes when these classes are in use with Datadog patching. - langchain: This fix resolves an issue with tagging pydantic SecretStr type api keys.
- lib injection: Fix permissions error raised when non-root users copy single step instrumentation files.
- redis: The Datadog Agent removes command arguments from the resource name. However there are cases, like compressed keys, where this obfuscation cannot correctly remove command arguments. To safeguard that situation, the resource name set by the tracer will only be the command (e.g. SET) with no arguments. To retain the previous behavior and keep arguments in the span resource, with the potential risk of some command arguments not being fully obfuscated, set
DD_REDIS_RESOURCE_ONLY_COMMAND=false.
Other Changes
- tags: Previously
DD_TRACE_X_DATADOG_TAGS_MAX_LENGTHhad a max limit setting of 512 characters. This change removes that limit but keeps the default at 512.