8000 Release 3.7.0 · DataDog/dd-trace-py · GitHub
[go: up one dir, main page]

Skip to content

3.7.0

Compare
Choose a tag to compare
@erikayasuda erikayasuda released this 06 May 16:47
ea27de2

New Features

  • AAP (ASM is now AAP)

    • Introduces a new user event sdk available through ddtrace.appsec.track_user_sdk for manual instrumentation.
  • CI Visibility

    • Introduces the ability to gzip the payload when using the agentless setup, incurring in less network bandwidth consumption.
  • LLM Observability

    • Adds support to automatically submit LiteLLM SDK requests to LLM Observability.
  • Tracing

    • baggage: Adds support for automatically adding baggage key-value pairs to span tags. Baggage items from incoming HTTP headers are attached to spans as tags with a baggage. prefix The DD_TRACE_BAGGAGE_TAG_KEYS configuration allows users to specify a comma-separated list of baggage keys for span tagging, by default the value is set to user.id,account.id,session.id. When set to \*, all baggage keys will be converted into span tags. Setting it to an empty value disables baggage tagging.

Bug Fixes

  • Code Security

    • The field representing the class name in IAST vulnerability location reporting was previously incorrectly named as class_name. This fix standardizes the naming and ensures that the correct field name is used (class).
  • Dynamic Instrumentation

    • Fixes incompatibility between code origin and dynamic instrumentation probe on exit span functions.
  • LLM Observability

    • openai: This fix resolves an issue where using client.beta.chat.completions.stream with openai patching caused an attribute error.
    • Resolves an issue where using client.beta.chat.completions.stream with LLM Observability enabled caused an attribute error
    • Resolves an issue where tool call names were not being captured for bedrock converse_stream calls.
    • Resolves an issue where bedrock converse_stream calls contained an extra empty output message.
  • Profiling

    • Fixes an issue where inconsistent state in the native profiler code was causing excessive log messages to be emitted at an unprecedented rate, significantly increasing the size of end-user log files.
  • Tracing

    • azure_functions: Resolves an issue where async functions throw an error when instrumented.
    • datastreams: Resolves an issue where failure to decode the data streams context caused infinite loops in data streams checkpoints.
    • futures: Resolves an edge case where trace context was not propagated to spans generated by the ThreadPoolExecutor.
    • kafka: Fixes an issue where a producer or consumer initialized with an unpacked config resulted in TypeError, causing a failed connection. confluent-kafka supports both unpacked and packed config; this change allows initialization with either.
    • telemetry: Improves periodic telemetry writer performance by removing unnecessary calls to importlib.metadata for reporting imported dependencies.
    • Fixes an issue where empty sampling rules list in remote configuration events caused an AttributeError when reinitializing the DatadogSampler. This prevented sampling rules from being reset. Note: This only affected cases where sampling rules were an empty list. It did not impact cases with at least one rule or when rules were set to null.
    • Fixes a bug in the sampling rule matcher where the pattern ?* was not being matched correctly for DD_TRACE_SAMPLING_RULES tags, due to it matching on spans with no tag matching the specified key.
    • Fixes an issue where span attributes were not truncated before encoding, leading to runtime error and causing spans to be dropped. Spans with resource name, tag key or value larger than 25000 characters will be truncated to 2500 characters.
    • Fixes RuntimeWarning from an unwaited coroutine during tab completion in IPython REPL when asyncio integration is active. Tracer now wraps an asyncio coroutine only when there is an active trace context.
0