pypi ddtrace 3.0.0rc1

12 hours ago

Upgrade Notes

  • CI Visibility

    • Official release of the new version of the pytest plugin, introducing the following features:

      NOTE: this new version of the plugin introduces breaking changes:

      • module, suite, and test names are now parsed from the item.nodeid attribute
      • test names now include the class for class-based tests
      • Test skipping by Test Impact Analysis (formerly Intelligent Test Runner) is now done at the suite level, instead of at the test level

      A beta version of the plugin had been available since v2.18.0, and could be enabled via the DD_PYTEST_USE_NEW_PLUGIN_BETA environment variable. The new version is now the default, and the environment variable is not used anymore.

  • LLM Observability

    • Support for the deprecated environment variable DD_LLMOBS_APP_NAME has been removed.
    • Removes the deprecated parameters argument from LLMObs annotate(). Use metadata instead.
    • openai: Drops tracing and LLM Observability support for OpenAI 0.x versions. To maintain support, upgrade to openai>=1.0.
    • langchain: removed tracing support for langchain.chains.base.Chains. To maintain support, migrate to using Langchain's LCEL instead.
    • langchain: Drops tracing and LLM Observability support for Langchain v0.0.x versions.
  • Profiling

    • Bumps libdatadog dependency to v15.0.0.
  • Tracing

    • Removes deprecated interfaces from all integrations.
    • propagation: Setting DD_TRACE_PROPAGATION_STYLE to b3 single header is no longer supported. Use b3 instead.
    • aws_lambda: Drops support for aws_lambda<=6.105.0.

Deprecation Notes

  • ASM

    • Deprecated env var DD_APPSEC_AUTOMATED_USER_EVENTS_TRACKING is now removed. Please use the new env var DD_APPSEC_AUTO_USER_INSTRUMENTATION_MODE instead.
  • LLM Observability

    • The \_DD_LLMOBS_EVALUATORS environment variable is deprecated and will be removed in ddtrace 3.0.0.
      As an alternative to \_DD_LLMOBS_EVALUATORS, you can use DD_LLMOBS_EVALUATORS instead. To migrate, replace \_DD_LLMOBS_EVALUATORS with DD_LLMOBS_EVALUATORS.
    • The \_DD_LLMOBS_EVALUATOR_SAMPLING_RULES environment variable is deprecated and will be removed in ddtrace 3.0.0.
      As an alternative to \_DD_LLMOBS_EVALUATOR_SAMPLING_RULES, you can use DD_LLMOBS_EVALUATOR_SAMPLING_RULES instead. To migrate, replace \_DD_LLMOBS_EVALUATOR_SAMPLING_RULES with DD_LLMOBS_EVALUATOR_SAMPLING_RULES.
  • Tracing

    • Moves ddtrace.provider.BaseContextProvider to ddtrace.trace.BaseContextProvider. The ddtrace.provider module is deprecated and will be removed in v3.0.0.
    • Deprecates the following constants in ddtrace.constants module:
      • ANALYTICS_SAMPLE_RATE_KEY
      • SAMPLE_RATE_METRIC_KEY
      • SAMPLING_PRIORITY_KEY
      • SAMPLING_AGENT_DECISION
      • SAMPLING_RULE_DECISION
      • SAMPLING_LIMIT_DECISION
      • ORIGIN_KEY
      • USER_ID_KEY
      • HOSTNAME_KEY
      • RUNTIME_FAMILY
      • BASE_SERVICE_KEY
      • SPAN_MEASURED_KEY
      • KEEP_SPANS_RATE_KEY
      • MULTIPLE_IP_HEADERS
      • CONFIG_ENDPOINT_ENV
      • CONFIG_ENDPOINT_RETRIES_ENV
      • CONFIG_ENDPOINT_TIMEOUT_ENV
    • Internalizes the ddtrace.settings.config module and deprecates the following ddtrace.config attributes:
      • http, use DD_TRACE_HEADER_TAGS environment variable instead.
      • http_server, use DD_TRACE_HTTP_SERVER_ERROR_STATUSES environment variable instead.
      • trace_headers, this attribute is internal to the tracer.
      • header_is_traced, this attribute is internal to the tracer.
      • convert_rc_trace_sampling_rules, this attribute is internal to the tracer.
      • enable_remote_configuration, use DD_REMOTE_CONFIGURATION_ENABLED environment variable instead.
      • get_from, use ddtrace.trace.Pin to set instance level configurations.
    • Removes deprecated attributes from ddtrace.config.

New Features

  • Removes code and tests related to Python 3.7, breaking the library's compatibility with this Python version.

  • ASM

    • Introduces use of meta struct for appsec event reports. This will improve performances. ASM will now require at least agent version 7.35.0 to work as expected.
  • Code Security (IAST)

    • Introduces Code Security support to PyMySQL and MySQLDB integrations.
    • XSS detection for Django applications, which will be displayed on your DataDog Vulnerability Explorer dashboard. See the Application Vulnerability Management documentation for more information about this feature.
    • Implements the detection of the Stacktrace-Leak vulnerability for Django, Flask and FastAPI.
  • LLM Observability

    • openai: Introduces tracing support to the OpenAI integration for Python versions 3.12 and 3.13.
    • Introduces an integration with the RAGAS evaluation framework to continuously monitor
      the performance of context-augmented LLM generations in production.
      The integration supports evaluating LLM inferences with the following RAGAS metrics:

Bug Fixes

  • ASM

    • Resolves an issue where IAST modules could be loaded, even if disabled, which could create an ImportError exception on Windows.
  • CI Visibility

    • Fixes an issue where Auto Test Retries with pytest would always consider retries of tests defined inside unittest classes to be successful.
  • Code security (IAST)

    • Resolves an issue where the usage of callonce decorator could trigger an import loop
  • LLM Observability

    • Resolves an issue where successive calls to LLMObs.annotate() on the same span caused overwriting of metrics, metadata, and prompt dictionaries. Now, calling LLMObs.annotate() will merge new metrics/metadata/prompt values with any existing ones.
    • Resolves an issue where spans were being enqueued to an inactive evaluator runner which caused noisy logs related to the evaluator runner buffer being full.
    • Resolves an issue where explicitly only using LLMObs.enable() to configure LLM Observability without environment variables would not automatically propagate distributed tracing headers.
    • Resolves an issue where annotating a span with non latin-1 (but valid utf-8) input/output values resulted in encoding errors.
    • Resolves an issue where extracting token metadata from openai streamed chat completion token chunks caused an IndexError.
    • openai: Fixes a patching issue where asynchronous moderation endpoint calls resulted in coroutine scheduling errors.
    • vertexai: Resolves an issue with chat.send_message() where the content keyword argument was not parsed correctly.
  • Profiling

    • Fixes an issue on arm64 macOS where the profiler was not able to find native extension modules to enable the following features: DD_PROFILING_TIMELINE_ENABLED and DD_PROFILING_STACK_V2_ENABLED.
    • Fixes SystemError from the memory profiler returning NULL when collecting events

Other Changes

  • Tracing
    • Ensures the ddtrace library does not use deprecated APIs internally. Deprecation warnings should only be logged when the user's code is using deprecated APIs.
    • cassandra , cherrypy, flask_cache, starlette: Ensures a deprecation warning is not raised when patching these integrations via ddtrace-run and import ddtrace.auto.
    • Removes the deprecated tracing modules and constants from the ddtrace package.

Don't miss a new ddtrace release

NewReleases is sending notifications on new releases.