Skip to content

Commit

Permalink
fix(llmobs): fix propagation memory usage [backport 2.9] (#9392)
Browse files Browse the repository at this point in the history
Backport be9936b from #9387 to 2.9.

This PR is a follow up of #9152, and attempts to minimize any added
memory overhead by moving the `llmobs` utility import to inside the
conditional check that `LLMObs` is enabled.

By importing inside the `ddtrace.llmobs.` directory we are implicitly
running the `ddtrace.llmobs.__init__.py` code, which involves
instantiating a `LLMObs` instance. This is likely the largest culprit of
the memory overhead.

Moving the import to only happening if LLMObs is enabled should avoid
that added overhead, given that LLMObs is only running in a select few
customer applications at the moment.

## Checklist

- [x] Change(s) are motivated and described in the PR description
- [x] Testing strategy is described if automated tests are not included
in the PR
- [x] Risks are described (performance impact, potential for breakage,
maintainability)
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] [Library release note
guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html)
are followed or label `changelog/no-changelog` is set
- [x] Documentation is included (in-code, generated user docs, [public
corp docs](https://github.com/DataDog/documentation/))
- [x] Backport labels are set (if
[applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting))
- [x] If this PR changes the public interface, I've notified
`@DataDog/apm-tees`.

## Reviewer Checklist

- [x] Title is accurate
- [x] All changes are related to the pull request's stated goal
- [x] Description motivates each change
- [x] Avoids breaking
[API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces)
changes
- [x] Testing strategy adequately addresses listed risks
- [x] Change is maintainable (easy to change, telemetry, documentation)
- [x] Release note makes sense to a user of the library
- [x] Author has acknowledged and discussed the performance implications
of this PR as reported in the benchmarks PR comment
- [x] 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: Yun Kim <[email protected]>
  • Loading branch information
github-actions[bot] and Yun-Kim authored May 28, 2024
1 parent 9db7603 commit 079f76d
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion ddtrace/propagation/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
from ..internal.sampling import SamplingMechanism
from ..internal.sampling import validate_sampling_decision
from ..internal.utils.http import w3c_tracestate_add_p
from ..llmobs._utils import _inject_llmobs_parent_id
from ._utils import get_wsgi_header


Expand Down Expand Up @@ -978,6 +977,8 @@ def parent_call():
headers[_HTTP_BAGGAGE_PREFIX + key] = span_context._baggage[key]

if config._llmobs_enabled:
from ddtrace.llmobs._utils import _inject_llmobs_parent_id

_inject_llmobs_parent_id(span_context)

if PROPAGATION_STYLE_DATADOG in config._propagation_style_inject:
Expand Down

0 comments on commit 079f76d

Please sign in to comment.