pypi ddtrace 2.3.0

latest releases: 2.9.2, 2.10.0rc2, 2.9.1...
7 months ago

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.hash tag 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 behavior DD_TRACE_PROPAGATION_EXTRACT_FIRST=true can 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_SIZE environment 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 ValueError was raised when using different path drives on Windows
  • build: Fixes an issue where ddtrace could not be installed from source when using setuptools>=69 due 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 decode in file.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's produce method with key=None would 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_HANDLER which defaults to true.
  • structlog: Fixes TypeError raised when ddtrace log processor is configured with a tuple

Don't miss a new ddtrace release

NewReleases is sending notifications on new releases.