GenAI Utils | Inference Type and Span Creation#3768
Merged
aabmass merged 43 commits intoopen-telemetry:mainfrom Oct 10, 2025
Merged
GenAI Utils | Inference Type and Span Creation#3768aabmass merged 43 commits intoopen-telemetry:mainfrom
aabmass merged 43 commits intoopen-telemetry:mainfrom
Conversation
Contributor
Author
|
A cleaned up version of: #3732
|
9 tasks
Member
|
@keith-decker thing I was mentioning in the SIG: It's used for both sync and async wrapper, and would work for streaming as well. |
util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/types.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py
Outdated
Show resolved
Hide resolved
…ssages for clarity
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Outdated
Show resolved
Hide resolved
…agement to LLMInvocation class
DylanRussell
approved these changes
Sep 22, 2025
util/opentelemetry-util-genai/src/opentelemetry/util/genai/generators.py
Outdated
Show resolved
Hide resolved
Contributor
|
This looks good to me now. Just added a few comments |
pmcollins
reviewed
Oct 1, 2025
nagkumar91
approved these changes
Oct 2, 2025
Contributor
Author
|
@aabmass genai-file upload on python 3.9 seems to be flakey. I've seen it fail occasionally, and I don't have the ability to restart the test. |
Member
|
Sorry about that tracking here #3812 (no idea why) |
aabmass
approved these changes
Oct 9, 2025
Member
aabmass
left a comment
There was a problem hiding this comment.
Mostly nits, thanks for your patience!
util/opentelemetry-util-genai/src/opentelemetry/util/genai/types.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/handler.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Outdated
Show resolved
Hide resolved
util/opentelemetry-util-genai/src/opentelemetry/util/genai/span_utils.py
Outdated
Show resolved
Hide resolved
…xt manually" This reverts commit be8620b.
11 tasks
6 tasks
6 tasks
sightseeker
added a commit
to sightseeker/opentelemetry-python-contrib
that referenced
this pull request
Mar 11, 2026
* cherry pick changes from previous PR * move span utils to new file * remove span state, use otel context for parent/child * flatten LLMInvocation to use attributes instead of dict keys * helper function and docstrings * refactor: store span and context token in LLMInvocation instead of SpanGenerator * refactor: rename prompts/chat_generations to input_messages/output_messages for clarity * refactor: simplify TelemetryHandler API by moving invocation data management to LLMInvocation class * refactor: update relative imports to absolute imports * Update handler to use a context manager instead of start_llm and stop_llm * resolve tox -e doc failure * safeguard against empty request-model * fix tox typecheck errors for utils * refactor: move tracer to generator, clean up dead code * remove unused linting hint * back off stricter request-model requirements * reintroduce manual start/stop for langchain callback flow * clean up context handler, clarify unit tests * remove generator concept * update token types * code cleanup * Refactor TestTelemetryHandler to use instance method for span exporter setup * refactor: remove unused type properties * refactor: update TelemetryHandler initialization to remove **kwargs * refactor: remove tracer variable * refactor: code style updates * refactor: replace json.dumps with gen_ai_json_dumps for message serialization * refactor: update span lifecycle to use sdk over setting context manually * refactor: don't reinvent span attribute assignment * refactor: pylint update for python 3.13 * Revert "refactor: update span lifecycle to use sdk over setting context manually" This reverts commit be8620b. --------- Co-authored-by: Aaron Abbott <aaronabbott@google.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The GenAI Utils package will include boilerplate and helpers to standardize instrumentation for Generative AI.
This PR provides APIs to minimize the work needed to instrument genai libraries. It provides helpers for starting and stopping LLM invocations, it generates spans aligned with semconvs.
Metrics and Events to come on future PRs
Type of change
How Has This Been Tested?
Does This PR Require a Core Repo Change?
Checklist:
See contributing.md for styleguide, changelog guidelines, and more.