Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(llmobs): fix parenting logic with apm spans mixed in [backport 3.3] #12827

Open
wants to merge 3 commits into
base: 3.3
Choose a base branch
from

Conversation

github-actions[bot]
Copy link
Contributor

Backport 1aa3946 from #12815 to 3.3.

Fixes the parenting logic for llmobs when there is a root apm span.

Previously with this logic:

    while new_active and new_active.finished:
      new_active = new_active._parent
      if new_active and not new_active.finished and new_active.span_type == SpanTypes.LLM:
        break
  1. We activate a non-LLMObs span when we break out of the while loop by bumping into an unfinished non-LLMObs span.
  2. We always stop traversing up when we find an unfinished span (apm or llmobs). Instead, we should keep going until we hit the top of the tree OR we hit an unfinished llmobs span.

We update for updating the active span to:

  1. traverse up until we find an unfinished LLM Obs span - if we do, we activate and return it
  2. if we bump into the end of the tree, we activate and return None

Checklist

  • PR author has checked that all the criteria below are met
  • The PR description includes an overview of the change
  • The PR description articulates the motivation for the change
  • The change includes tests OR the PR description describes a testing strategy
  • The PR description notes risks associated with the change, if any
  • Newly-added code is easy to change
  • The change follows the library release note guidelines
  • The change includes or references documentation updates if necessary
  • Backport labels are set (if applicable)

Reviewer Checklist

  • Reviewer has checked that all the criteria below are met
  • Title is accurate
  • All changes are related to the pull request's stated goal
  • Avoids breaking API changes
  • Testing strategy adequately addresses listed risks
  • Newly-added code is easy to change
  • Release note makes sense to a user of the library
  • If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment
  • Backport labels are set in a manner that is consistent with the release branch maintenance policy

Fixes the parenting logic for llmobs when there is a root apm span.

Previously with this logic:
```
    while new_active and new_active.finished:
      new_active = new_active._parent
      if new_active and not new_active.finished and new_active.span_type == SpanTypes.LLM:
        break
```
1. We activate a non-LLMObs span when we break out of the while loop by
bumping into an unfinished non-LLMObs span.
2. We always stop traversing up when we find an unfinished span (apm or
llmobs). Instead, we should keep going until we hit the top of the tree
OR we hit an unfinished llmobs span.

We update for updating the active span to:
1. traverse up until we find an unfinished LLM Obs span - if we do, we
activate and return it
2. if we bump into the end of the tree, we activate and return `None`

## Checklist
- [x] PR author has checked that all the criteria below are met
- The PR description includes an overview of the change
- The PR description articulates the motivation for the change
- The change includes tests OR the PR description describes a testing
strategy
- The PR description notes risks associated with the change, if any
- Newly-added code is easy to change
- The change follows the [library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
- The change includes or references documentation updates if necessary
- Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))

## Reviewer Checklist
- [x] Reviewer has checked that all the criteria below are met
- Title is accurate
- All changes are related to the pull request's stated goal
- Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- Testing strategy adequately addresses listed risks
- Newly-added code is easy to change
- Release note makes sense to a user of the library
- If necessary, author has acknowledged and discussed the performance
implications of this PR as reported in the benchmarks PR comment
- Backport labels are set in a manner that is consistent with the
[release branch maintenance
policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)

---------

Co-authored-by: lievan <evan.li@datadoqhq.com>
(cherry picked from commit 1aa3946)
@github-actions github-actions bot requested review from a team as code owners March 20, 2025 19:19
@github-actions github-actions bot requested review from P403n1x87 and wconti27 March 20, 2025 19:19
@lievan lievan enabled auto-merge (squash) March 21, 2025 21:21
Copy link
Contributor Author

CODEOWNERS have been resolved as:

releasenotes/notes/fix-llmobs-parenting-fa9b420d1c9c098e.yaml           @DataDog/apm-python
ddtrace/llmobs/_context.py                                              @DataDog/ml-observability
tests/llmobs/test_llmobs_service.py                                     @DataDog/ml-observability

Copy link
Contributor Author

github-actions bot commented Mar 21, 2025

Bootstrap import analysis

Comparison of import times between this PR and main.

Summary

The average import time in this PR is: 280 ± 10 ms.

The average import time in main is: 258 ± 8 ms.

The import time difference between this PR and main is: 20.3 ± 0.5 ms.

Import time breakdown

The following import paths have appeared:

ddtrace.auto 47.275 ms (16.98%)
ddtrace 47.275 ms (16.98%)
ddtrace.internal.module 46.941 ms (16.86%)
ddtrace.internal.wrapping.context 20.963 ms (7.53%)
ddtrace.internal.wrapping 19.840 ms (7.13%)
bytecode 16.673 ms (5.99%)
bytecode.bytecode 13.238 ms (4.76%)
bytecode.flags 12.642 ms (4.54%)
bytecode.instr 11.412 ms (4.10%)
dataclasses 6.252 ms (2.25%)
inspect 5.336 ms (1.92%)
ast 2.704 ms (0.97%)
_ast 1.452 ms (0.52%)
copy 0.213 ms (0.08%)
dis 0.945 ms (0.34%)
bytecode.utils 0.172 ms (0.06%)
opcode 0.684 ms (0.25%)
_opcode 0.194 ms (0.07%)
bytecode.cfg 2.905 ms (1.04%)
bytecode.concrete 1.472 ms (0.53%)
struct 0.426 ms (0.15%)
_struct 0.276 ms (0.10%)
bytecode.version 0.255 ms (0.09%)
ddtrace.internal.wrapping.asyncs 1.579 ms (0.57%)
ddtrace.internal.wrapping.generators 0.766 ms (0.28%)
ddtrace.internal.assembly 0.408 ms (0.15%)
contextvars 0.312 ms (0.11%)
_contextvars 0.171 ms (0.06%)
pathlib 9.950 ms (3.57%)
fnmatch 4.622 ms (1.66%)
re 4.362 ms (1.57%)
enum 2.191 ms (0.79%)
functools 0.766 ms (0.28%)
_functools 0.068 ms (0.02%)
re._compiler 1.449 ms (0.52%)
re._parser 0.869 ms (0.31%)
re._constants 0.379 ms (0.14%)
re._casefix 0.135 ms (0.05%)
_sre 0.078 ms (0.03%)
copyreg 0.194 ms (0.07%)
urllib.parse 3.879 ms (1.39%)
ipaddress 2.223 ms (0.80%)
math 0.354 ms (0.13%)
urllib 0.137 ms (0.05%)
ntpath 0.512 ms (0.18%)
nt 0.348 ms (0.12%)
_winapi 0.073 ms (0.03%)
errno 0.061 ms (0.02%)
ddtrace.internal.logger 6.973 ms (2.50%)
logging 6.638 ms (2.38%)
traceback 3.044 ms (1.09%)
linecache 1.437 ms (0.52%)
tokenize 1.271 ms (0.46%)
token 0.194 ms (0.07%)
_tokenize 0.041 ms (0.01%)
textwrap 0.988 ms (0.35%)
string 0.733 ms (0.26%)
_string 0.039 ms (0.01%)
threading 0.675 ms (0.24%)
atexit 0.045 ms (0.02%)
typing 3.755 ms (1.35%)
contextlib 0.701 ms (0.25%)
collections.abc 0.189 ms (0.07%)
_typing 0.045 ms (0.02%)
collections 1.927 ms (0.69%)
operator 0.380 ms (0.14%)
_operator 0.076 ms (0.03%)
reprlib 0.201 ms (0.07%)
keyword 0.146 ms (0.05%)
itertools 0.127 ms (0.05%)
_collections 0.072 ms (0.03%)
weakref 0.793 ms (0.28%)
_weakrefset 0.232 ms (0.08%)
importlib.util 0.610 ms (0.22%)
types 0.288 ms (0.10%)
importlib._abc 0.207 ms (0.07%)
ddtrace.internal.utils 0.365 ms (0.13%)
importlib._bootstrap 0.206 ms (0.07%)
importlib 0.182 ms (0.07%)
ddtrace.internal 0.198 ms (0.07%)
importlib.machinery 0.056 ms (0.02%)
warnings 0.335 ms (0.12%)

The following import paths have disappeared:

ddtrace.auto 45.416 ms (16.31%)
ddtrace 45.416 ms (16.31%)
ddtrace._logger 37.793 ms (13.58%)
ddtrace.settings._core 22.301 ms (8.01%)
ddtrace.settings 22.301 ms (8.01%)
ddtrace.settings._config 21.795 ms (7.83%)
ddtrace.settings._telemetry 13.418 ms (4.82%)
ddtrace.internal.telemetry 13.418 ms (4.82%)
ddtrace.internal.telemetry.writer 13.418 ms (4.82%)
ddtrace.internal.utils.version 13.418 ms (4.82%)
ddtrace.vendor.packaging.version 13.418 ms (4.82%)
ddtrace.vendor.packaging 13.418 ms (4.82%)
ddtrace.vendor 13.418 ms (4.82%)
ddtrace.internal.module 13.418 ms (4.82%)
ddtrace.internal.wrapping.context 12.599 ms (4.53%)
ddtrace.internal.wrapping 11.511 ms (4.13%)
bytecode 8.489 ms (3.05%)
bytecode.bytecode 4.443 ms (1.60%)
bytecode.flags 3.879 ms (1.39%)
bytecode.instr 3.316 ms (1.19%)
bytecode.utils 0.141 ms (0.05%)
bytecode.cfg 3.535 ms (1.27%)
bytecode.concrete 2.061 ms (0.74%)
bytecode.version 0.254 ms (0.09%)
ddtrace.internal.wrapping.asyncs 1.412 ms (0.51%)
ddtrace.internal.wrapping.generators 0.740 ms (0.27%)
ddtrace.internal.assembly 0.485 ms (0.17%)
contextvars 0.302 ms (0.11%)
_contextvars 0.166 ms (0.06%)
ddtrace.internal.utils.cache 6.957 ms (2.50%)
inspect 6.957 ms (2.50%)
ast 2.627 ms (0.94%)
_ast 1.432 ms (0.51%)
dis 1.555 ms (0.56%)
opcode 0.638 ms (0.23%)
_opcode 0.167 ms (0.06%)
importlib.machinery 0.244 ms (0.09%)
importlib 0.174 ms (0.06%)
ddtrace.settings.endpoint_config 1.099 ms (0.39%)
ddtrace.internal.utils.http 1.099 ms (0.39%)
dataclasses 0.755 ms (0.27%)
email.encoders 0.344 ms (0.12%)
base64 0.344 ms (0.12%)
struct 0.344 ms (0.12%)
_struct 0.215 ms (0.08%)
ddtrace._trace.pin 0.321 ms (0.12%)
wrapt 0.321 ms (0.12%)
wrapt.importer 0.321 ms (0.12%)
importlib.util 0.321 ms (0.12%)
importlib._abc 0.198 ms (0.07%)
ddtrace._hooks 0.506 ms (0.18%)
ddtrace.internal.logger 0.308 ms (0.11%)
copy 0.198 ms (0.07%)
logging 7.915 ms (2.84%)
traceback 4.409 ms (1.58%)
contextlib 1.359 ms (0.49%)
linecache 1.262 ms (0.45%)
tokenize 1.102 ms (0.40%)
token 0.188 ms (0.07%)
_tokenize 0.038 ms (0.01%)
textwrap 0.947 ms (0.34%)
collections.abc 0.171 ms (0.06%)
string 0.701 ms (0.25%)
_string 0.038 ms (0.01%)
weakref 0.453 ms (0.16%)
warnings 0.318 ms (0.11%)
atexit 0.046 ms (0.02%)
ddtrace.internal.utils.formats 4.773 ms (1.71%)
ddtrace.internal.compat 4.427 ms (1.59%)
pathlib 3.037 ms (1.09%)
urllib.parse 1.442 ms (0.52%)
math 0.234 ms (0.08%)
urllib 0.130 ms (0.05%)
ntpath 0.483 ms (0.17%)
nt 0.326 ms (0.12%)
_winapi 0.069 ms (0.02%)
fnmatch 0.163 ms (0.06%)
errno 0.056 ms (0.02%)
ipaddress 1.390 ms (0.50%)
ddtrace.internal.utils 0.346 ms (0.12%)
typing 2.804 ms (1.01%)
_typing 0.042 ms (0.02%)
ddtrace.internal._unpatched 7.623 ms (2.74%)
json 6.389 ms (2.29%)
json.decoder 6.389 ms (2.29%)
re 6.389 ms (2.29%)
enum 4.341 ms (1.56%)
functools 2.168 ms (0.78%)
collections 1.457 ms (0.52%)
reprlib 0.197 ms (0.07%)
itertools 0.192 ms (0.07%)
keyword 0.141 ms (0.05%)
_collections 0.073 ms (0.03%)
_functools 0.055 ms (0.02%)
operator 0.470 ms (0.17%)
_operator 0.082 ms (0.03%)
types 0.284 ms (0.10%)
re._compiler 1.344 ms (0.48%)
re._parser 0.671 ms (0.24%)
re._constants 0.282 ms (0.10%)
re._casefix 0.218 ms (0.08%)
_sre 0.071 ms (0.03%)
copyreg 0.184 ms (0.07%)
threading 1.037 ms (0.37%)
_weakrefset 0.323 ms (0.12%)
ddtrace.internal 0.197 ms (0.07%)

The following import paths have grown:

ddtrace.auto 35.774 ms (12.85%)
ddtrace 29.123 ms (10.46%)
ddtrace._logger 19.924 ms (7.16%)
ddtrace.settings._core 19.159 ms (6.88%)
ddtrace.settings 19.159 ms (6.88%)
ddtrace.settings._config 18.888 ms (6.78%)
ddtrace.settings.endpoint_config 6.493 ms (2.33%)
ddtrace.internal.utils.http 6.087 ms (2.19%)
http.client 3.974 ms (1.43%)
email.parser 3.274 ms (1.18%)
email.feedparser 3.143 ms (1.13%)
email._policybase 2.777 ms (1.00%)
email.utils 2.165 ms (0.78%)
email._parseaddr 1.302 ms (0.47%)
calendar 1.168 ms (0.42%)
locale 0.882 ms (0.32%)
_locale 0.113 ms (0.04%)
socket 0.699 ms (0.25%)
array 0.239 ms (0.09%)
_socket 0.221 ms (0.08%)
email.header 0.534 ms (0.19%)
email.quoprimime 0.137 ms (0.05%)
email.charset 0.121 ms (0.04%)
email.base64mime 0.113 ms (0.04%)
email.errors 0.220 ms (0.08%)
email.message 0.279 ms (0.10%)
email._encoded_words 0.130 ms (0.05%)
http 0.199 ms (0.07%)
ddtrace.internal.http 1.025 ms (0.37%)
ddtrace.internal.runtime 0.658 ms (0.24%)
uuid 0.317 ms (0.11%)
_uuid 0.138 ms (0.05%)
ddtrace.internal.forksafe 0.186 ms (0.07%)
ddtrace.internal.runtime.container 0.219 ms (0.08%)
email.encoders 0.674 ms (0.24%)
base64 0.326 ms (0.12%)
binascii 0.150 ms (0.05%)
email 0.120 ms (0.04%)
quopri 0.104 ms (0.04%)
ddtrace.internal.uds 0.137 ms (0.05%)
ddtrace.internal.utils.retry 0.261 ms (0.09%)
__future__ 0.124 ms (0.04%)
ddtrace.internal.gitmetadata 4.630 ms (1.66%)
ddtrace.ext.ci 3.535 ms (1.27%)
ddtrace.ext.git 3.136 ms (1.13%)
shutil 1.008 ms (0.36%)
bz2 0.375 ms (0.13%)
_bz2 0.137 ms (0.05%)
_compression 0.119 ms (0.04%)
lzma 0.249 ms (0.09%)
_lzma 0.138 ms (0.05%)
zlib 0.080 ms (0.03%)
subprocess 0.772 ms (0.28%)
selectors 0.139 ms (0.05%)
fcntl 0.134 ms (0.05%)
_posixsubprocess 0.128 ms (0.05%)
select 0.127 ms (0.05%)
msvcrt 0.044 ms (0.02%)
random 0.660 ms (0.24%)
bisect 0.254 ms (0.09%)
_bisect 0.149 ms (0.05%)
_sha2 0.127 ms (0.05%)
_random 0.126 ms (0.05%)
ddtrace.internal.utils.time 0.278 ms (0.10%)
datetime 0.178 ms (0.06%)
_datetime 0.148 ms (0.05%)
tempfile 0.213 ms (0.08%)
ddtrace.ext 0.144 ms (0.05%)
platform 0.050 ms (0.02%)
_wmi 0.050 ms (0.02%)
ddtrace.settings._core 0.943 ms (0.34%)
ddtrace.internal.native 0.333 ms (0.12%)
ddtrace.internal.native._native 0.203 ms (0.07%)
envier 0.298 ms (0.11%)
envier.env 0.174 ms (0.06%)
ddtrace.settings._otel_remapper 0.146 ms (0.05%)
ddtrace.settings._telemetry 3.492 ms (1.25%)
ddtrace.internal.telemetry 3.329 ms (1.20%)
ddtrace.internal.telemetry.writer 3.150 ms (1.13%)
ddtrace.internal.utils.version 1.278 ms (0.46%)
ddtrace.vendor.packaging.version 1.158 ms (0.42%)
ddtrace.vendor.packaging 0.128 ms (0.05%)
ddtrace.vendor 0.128 ms (0.05%)
ddtrace.internal.periodic 0.544 ms (0.20%)
ddtrace.internal._threads 0.262 ms (0.09%)
ddtrace.internal.service 0.147 ms (0.05%)
ddtrace.internal.encoding 0.475 ms (0.17%)
ddtrace.internal._encoding 0.330 ms (0.12%)
ddtrace.internal.atexit 0.272 ms (0.10%)
ddtrace.internal.utils.signals 0.140 ms (0.05%)
ddtrace.internal.agent 0.152 ms (0.05%)
ddtrace.internal.telemetry.data 0.117 ms (0.04%)
ddtrace.internal.packages 0.081 ms (0.03%)
ddtrace.settings.third_party 0.081 ms (0.03%)
ddtrace.internal.schema 1.733 ms (0.62%)
ddtrace.internal.schema.span_attribute_schema 1.595 ms (0.57%)
ddtrace.settings._inferred_base_service 0.145 ms (0.05%)
ddtrace._trace.pin 1.646 ms (0.59%)
wrapt 1.336 ms (0.48%)
wrapt.__wrapt__ 0.513 ms (0.18%)
wrapt._wrappers 0.207 ms (0.07%)
wrapt.wrappers 0.167 ms (0.06%)
wrapt.decorators 0.206 ms (0.07%)
wrapt.arguments 0.134 ms (0.05%)
wrapt.weakrefs 0.191 ms (0.07%)
wrapt.patches 0.147 ms (0.05%)
wrapt.importer 0.139 ms (0.05%)
ddtrace._trace 0.113 ms (0.04%)
ddtrace.settings.integration 0.282 ms (0.10%)
ddtrace.internal.utils.attrdict 0.144 ms (0.05%)
ddtrace.settings.http 0.155 ms (0.06%)
ddtrace.internal.serverless 0.147 ms (0.05%)
ddtrace.internal.utils.cache 0.136 ms (0.05%)
ddtrace._hooks 0.135 ms (0.05%)
ddtrace.internal.utils.formats 0.628 ms (0.23%)
ddtrace.internal.constants 0.294 ms (0.11%)
ddtrace.constants 0.143 ms (0.05%)
ddtrace.internal.compat 0.101 ms (0.04%)
ddtrace.internal._unpatched 7.857 ms (2.82%)
json 7.700 ms (2.77%)
json.decoder 7.398 ms (2.66%)
json.scanner 7.266 ms (2.61%)
_json 7.150 ms (2.57%)
json.encoder 0.166 ms (0.06%)
gc 0.096 ms (0.03%)
ddtrace.trace 0.990 ms (0.36%)
ddtrace._trace.tracer 0.449 ms (0.16%)
ddtrace.internal.dogstatsd 0.211 ms (0.08%)
ddtrace.vendor.dogstatsd 0.211 ms (0.08%)
ddtrace.vendor.dogstatsd.base 0.211 ms (0.08%)
ddtrace.vendor.dogstatsd.container 0.126 ms (0.05%)
ddtrace.internal.debug 0.168 ms (0.06%)
ddtrace.internal.processor.endpoint_call_counter 0.071 ms (0.03%)
ddtrace._trace.filters 0.218 ms (0.08%)
ddtrace._trace.processor 0.218 ms (0.08%)
ddtrace._trace.sampler 0.218 ms (0.08%)
ddtrace._trace.span 0.218 ms (0.08%)
ddtrace._trace._span_pointer 0.155 ms (0.06%)
ddtrace._trace.telemetry 0.109 ms (0.04%)
ddtrace.internal._rand 0.063 ms (0.02%)
ddtrace._trace.context 0.206 ms (0.07%)
ddtrace._trace._span_link 0.142 ms (0.05%)
ddtrace._monkey 0.206 ms (0.07%)
ddtrace.appsec 0.206 ms (0.07%)
ddtrace.internal.core 0.206 ms (0.07%)
ddtrace.internal.core.event_hub 0.140 ms (0.05%)
ddtrace.vendor.debtcollector 0.066 ms (0.02%)
ddtrace.vendor.debtcollector.renames 0.066 ms (0.02%)
ddtrace.internal._file_queue 0.146 ms (0.05%)
secrets 0.146 ms (0.05%)
ddtrace.bootstrap.sitecustomize 6.651 ms (2.39%)
ddtrace.bootstrap.preload 4.652 ms (1.67%)
ddtrace.internal.products 2.571 ms (0.92%)
ddtrace.internal.symbol_db.remoteconfig 1.811 ms (0.65%)
ddtrace.internal.remoteconfig._connectors 1.371 ms (0.49%)
ctypes 1.371 ms (0.49%)
_ctypes 0.096 ms (0.03%)
ddtrace.internal.symbol_db.symbols 0.210 ms (0.08%)
ddtrace.internal.safety 0.111 ms (0.04%)
gzip 0.053 ms (0.02%)
ddtrace.internal.utils.inspection 0.045 ms (0.02%)
multiprocessing.sharedctypes 0.116 ms (0.04%)
multiprocessing.heap 0.116 ms (0.04%)
mmap 0.116 ms (0.04%)
multiprocessing 0.115 ms (0.04%)
multiprocessing.context 0.115 ms (0.04%)
importlib.metadata 0.340 ms (0.12%)
importlib.metadata._adapters 0.089 ms (0.03%)
importlib.abc 0.081 ms (0.03%)
importlib.resources 0.081 ms (0.03%)
importlib.resources._common 0.081 ms (0.03%)
importlib.resources._adapters 0.081 ms (0.03%)
ddtrace.settings.dynamic_instrumentation 0.153 ms (0.05%)
ddtrace.internal.remoteconfig.client 0.113 ms (0.04%)
ddtrace.internal.remoteconfig._pubsub 0.113 ms (0.04%)
ddtrace.internal.remoteconfig._publishers 0.113 ms (0.04%)
ddtrace.internal.uwsgi 0.089 ms (0.03%)
ddtrace.internal.remoteconfig.worker 0.065 ms (0.02%)
ddtrace.settings.profiling 1.687 ms (0.61%)
ddtrace.vendor.psutil 1.423 ms (0.51%)
ddtrace.vendor.psutil._pslinux 0.047 ms (0.02%)
glob 0.047 ms (0.02%)
ddtrace.internal.flare.flare 0.265 ms (0.10%)
logging.handlers 0.156 ms (0.06%)
ddtrace.internal.tracemethods 0.129 ms (0.05%)
ddtrace._trace.trace_handlers 1.689 ms (0.61%)
ddtrace._trace.utils_botocore.span_tags 1.312 ms (0.47%)
ddtrace._trace.utils_botocore.aws_payload_tagging 1.279 ms (0.46%)
ddtrace.vendor.jsonpath_ng 1.279 ms (0.46%)
ddtrace.vendor.jsonpath_ng.parser 1.204 ms (0.43%)
ddtrace.vendor.ply.yacc 1.204 ms (0.43%)
ddtrace.vendor.jsonpath_ng.jsonpath 0.075 ms (0.03%)
ddtrace.vendor.jsonpath_ng.lexer 0.075 ms (0.03%)
ddtrace._trace._inferred_proxy 0.127 ms (0.05%)
ddtrace.propagation.http 0.061 ms (0.02%)
ddtrace.internal._tagset 0.061 ms (0.02%)
ddtrace.contrib.trace_utils 0.068 ms (0.02%)
ddtrace.contrib.internal.trace_utils 0.068 ms (0.02%)
ddtrace._trace.utils 0.068 ms (0.02%)

The following import paths have shrunk:

ddtrace.auto 20.057 ms (7.20%)
ddtrace 17.108 ms (6.15%)
ddtrace._logger 15.438 ms (5.55%)
ddtrace.settings._core 15.438 ms (5.55%)
ddtrace.settings 15.438 ms (5.55%)
ddtrace.settings._config 15.438 ms (5.55%)
ddtrace.settings._telemetry 15.000 ms (5.39%)
ddtrace.internal.telemetry 15.000 ms (5.39%)
ddtrace.internal.telemetry.writer 15.000 ms (5.39%)
ddtrace.internal.utils.version 15.000 ms (5.39%)
ddtrace.vendor.packaging.version 15.000 ms (5.39%)
ddtrace.vendor.packaging 15.000 ms (5.39%)
ddtrace.internal.gitmetadata 0.438 ms (0.16%)
ddtrace.ext.ci 0.438 ms (0.16%)
platform 0.438 ms (0.16%)
ddtrace.trace 0.188 ms (0.07%)
ddtrace._trace.filters 0.097 ms (0.03%)
ddtrace._trace.processor 0.097 ms (0.03%)
ddtrace._trace.tracer 0.090 ms (0.03%)
ddtrace.internal.dogstatsd 0.090 ms (0.03%)
ddtrace.vendor.dogstatsd 0.090 ms (0.03%)
ddtrace.vendor.dogstatsd.base 0.090 ms (0.03%)
queue 0.090 ms (0.03%)
_queue 0.090 ms (0.03%)
ddtrace.bootstrap.sitecustomize 2.948 ms (1.06%)
ddtrace.bootstrap.preload 2.948 ms (1.06%)
ddtrace.internal.products 2.217 ms (0.80%)
ddtrace.internal.symbol_db.remoteconfig 0.990 ms (0.36%)
multiprocessing 0.836 ms (0.30%)
multiprocessing.context 0.836 ms (0.30%)
multiprocessing.reduction 0.784 ms (0.28%)
pickle 0.784 ms (0.28%)
_compat_pickle 0.784 ms (0.28%)
multiprocessing.process 0.051 ms (0.02%)
multiprocessing.sharedctypes 0.082 ms (0.03%)
multiprocessing.heap 0.082 ms (0.03%)
multiprocessing.util 0.082 ms (0.03%)
ddtrace.internal.remoteconfig._connectors 0.073 ms (0.03%)
ddtrace.internal.remoteconfig.client 0.462 ms (0.17%)
importlib.metadata 0.178 ms (0.06%)
csv 0.064 ms (0.02%)
importlib.abc 0.059 ms (0.02%)
importlib.resources 0.059 ms (0.02%)
importlib.resources._common 0.059 ms (0.02%)
importlib.metadata._collections 0.055 ms (0.02%)
ddtrace.debugging._config 0.073 ms (0.03%)
ddtrace.settings.exception_replay 0.073 ms (0.03%)
ddtrace.settings.profiling 0.657 ms (0.24%)
ddtrace.vendor.psutil 0.657 ms (0.24%)
ddtrace.vendor.psutil._pslinux 0.657 ms (0.24%)
ddtrace.vendor.psutil._psutil_linux 0.060 ms (0.02%)
ddtrace.internal.flare._subscribers 0.074 ms (0.03%)

@pr-commenter
Copy link

pr-commenter bot commented Mar 21, 2025

Benchmarks

Benchmark execution time: 2025-03-24 20:16:37

Comparing candidate commit 07a7b72 in PR branch backport-12815-to-3.3 with baseline commit 4bf3c4d in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 468 metrics, 2 unstable metrics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant