Change8

v3.8.0

📦 datadog-sdkView on GitHub →
5 features🐛 12 fixes🔧 6 symbols

Summary

This release introduces significant new features across LLM Observability, Error Tracking, and CI Visibility, alongside numerous bug fixes addressing stability, performance, and tracing issues.

Migration Steps

  1. If using Error Tracking, review and set the `DD_ERROR_TRACKING_HANDLED_ERRORS` and `DD_ERROR_TRACKING_HANDLED_ERRORS_INCLUDE` environment variables if automatic reporting of handled exceptions is desired.
  2. Users relying on specific truncation behavior for span attributes exceeding 25000 characters should be aware of the fix related to UTF-8 multibyte character counting.

✨ New Features

  • LLM Observability: add processor capability to process span inputs and outputs.
  • CI Visibility: introduces the ability to gzip the payload when using the evp proxy setup, incurring in less network bandwith consumption.
  • Error Tracking: Introduces automatic reporting of handled exceptions, controllable via DD_ERROR_TRACKING_HANDLED_ERRORS and DD_ERROR_TRACKING_HANDLED_ERRORS_INCLUDE environment variables.
  • Code Security: IAST support for langchain v0.1.0 and above.
  • openai: introduces tracing support for the OpenAI Responses endpoint.

🐛 Bug Fixes

  • tracing: Fixes an issue where truncation of span attributes longer than 25000 characters would not consistently count the size of UTF-8 multibyte characters, leading to a `unicode string is too large` error.
  • tracing: Fixes a bug in distributed tracing where pickling `ddtrace.trace.Context` fails in coroutines (regression from v3.7.0).
  • CI Visibility: Resolves an issue where the `DD_CIVISIBILITY_ITR_ENABLED` was not honored properly.
  • CI Visibility: Resolves an issue where pytest-xdist would not exit with the proper status code if ATR was enabled.
  • CI Visibility: Resolves an issue where ddtrace pytest plugin used with xdist would report test suites as failing even when all tests pass.
  • profiling: Fixed an issue in the `SynchronizedSamplePool` where pool could be null when calling into `ddog_ArrayQueue_` functions, leading to segfaults in the uWSGI shutdown.
  • profiling: Improve performance of the memory profiler for large heaps by switching from linear search to a fast hash map for allocation tracking.
  • Code Security (IAST): Avoid excessive filtering of stacktrace locations when finding vulnerabilities; vulnerabilities previously discarded (e.g., found in site-packages or outside the working directory) will now be reported.
  • LLM Observability: Resolves an issue where spans and evaluation metrics were not being sent via Unix sockets.
  • dynamic instrumentation: prevent an exception when trying to remove a probe that did not resolve to a valid source code location.
  • kafka: Resolves an issue where message headers were sent to Kafka brokers that do not support them; headers are now turned off if the Kafka server responds with `UNKNOWN_SERVER_ERROR (-1)`.
  • code origin for spans: fixes a performance issue with exit spans.

🔧 Affected Symbols

ddtrace.trace.ContextSynchronizedSamplePoolddog_ArrayQueue_DD_CIVISIBILITY_ITR_ENABLEDDD_ERROR_TRACKING_HANDLED_ERRORSDD_ERROR_TRACKING_HANDLED_ERRORS_INCLUDE