Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
74f6947
Removed telemetry from inference callbacks and added calls to genai u…
wrisa Oct 20, 2025
f7bd1c7
Fixed errors
wrisa Oct 20, 2025
9f48242
Fixed typecheck errors
wrisa Oct 20, 2025
ef53574
Fixed typecheck errors
wrisa Oct 20, 2025
69a88f6
Fixed precommit errors
wrisa Oct 20, 2025
50b99f2
merged main and resolved conflicts
wrisa Jan 7, 2026
4080421
added util dependancy
wrisa Jan 8, 2026
be680ea
updated invocation manager
wrisa Jan 8, 2026
e46dbcc
removed unnecessary dependancies
wrisa Jan 8, 2026
5a89f89
fixed precommit
wrisa Jan 12, 2026
bc94f50
fixed typecheck
wrisa Jan 12, 2026
fb6aab3
Merge branch 'main' into genai-instrumentation-langchain-inference-us…
wrisa Jan 12, 2026
61169ca
fixed precommit
wrisa Jan 12, 2026
69a2a42
Merge branch 'main' into genai-instrumentation-langchain-inference-us…
wrisa Jan 20, 2026
aa55e4a
Merge branch 'main' into genai-instrumentation-langchain-inference-us…
wrisa Jan 21, 2026
463b03d
fixed test
wrisa Jan 21, 2026
09bd485
removed unnecessary line
wrisa Jan 21, 2026
743e9a0
merged main
wrisa Jan 26, 2026
9e6aacb
addressed comments
wrisa Jan 27, 2026
1c3b0c1
fixed errors
wrisa Jan 27, 2026
21587c0
fixed precommit
wrisa Jan 27, 2026
33d160e
Merge branch 'main' into genai-instrumentation-langchain-inference-us…
wrisa Jan 27, 2026
4f60ac8
Merge branch 'main' into genai-instrumentation-langchain-inference-us…
wrisa Jan 29, 2026
7a05f77
removed get_property_value method
wrisa Jan 29, 2026
8ec8dfc
fixed format
wrisa Jan 29, 2026
fa4a8b4
Make tox -e typecheck install langchain, and fixed some of the type
aabmass Jan 29, 2026
64fb042
Please fix reportPossiblyUnboundVariable
aabmass Jan 29, 2026
bc34662
fixed typecheck
wrisa Feb 1, 2026
21cf95a
added and updated tests
wrisa Feb 5, 2026
7922844
Fix conflict
wrisa Feb 5, 2026
8bca198
Fixed conflicts and removed unnecessary changes
wrisa Feb 5, 2026
96f77b1
Fixed precommit
wrisa Feb 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## Unreleased

- Added support to call genai utils handler for langchain LLM invocations.
([https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3889](#3889))

- Added span support for genAI langchain llm invocation.
([#3665](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3665))
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ Next, set up a virtual environment like this:
source .venv/bin/activate
pip install "python-dotenv[cli]"
pip install -r requirements.txt
pip install opentelemetry-instrumentation-langchain
pip install util/opentelemetry-util-genai (once opentelemetry-util-genai package is released remove it from here and add dependency in opentelemetry-instrumentation-langchain)

Run
---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@ classifiers = [
"Programming Language :: Python :: 3.13",
]
dependencies = [
"opentelemetry-api >= 1.31.0",
"opentelemetry-instrumentation ~= 0.57b0",
"opentelemetry-semantic-conventions ~= 0.57b0"
]

[project.optional-dependencies]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,16 @@

from typing import Any, Callable, Collection

from langchain_core.callbacks import BaseCallbackHandler # type: ignore
from langchain_core.callbacks import BaseCallbackHandler
from wrapt import wrap_function_wrapper # type: ignore

from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
from opentelemetry.instrumentation.langchain.callback_handler import (
OpenTelemetryLangChainCallbackHandler,
)
from opentelemetry.instrumentation.langchain.package import _instruments
from opentelemetry.instrumentation.langchain.version import __version__
from opentelemetry.instrumentation.utils import unwrap
from opentelemetry.semconv.schemas import Schemas
from opentelemetry.trace import get_tracer
from opentelemetry.util.genai.handler import get_telemetry_handler


class LangChainInstrumentor(BaseInstrumentor):
Expand All @@ -72,15 +70,12 @@ def _instrument(self, **kwargs: Any):
Enable Langchain instrumentation.
"""
tracer_provider = kwargs.get("tracer_provider")
tracer = get_tracer(
__name__,
__version__,
tracer_provider,
schema_url=Schemas.V1_37_0.value,
)

telemetry_handler = get_telemetry_handler(
tracer_provider=tracer_provider
)
otel_callback_handler = OpenTelemetryLangChainCallbackHandler(
tracer=tracer,
telemetry_handler=telemetry_handler
)

wrap_function_wrapper(
Expand Down Expand Up @@ -109,7 +104,7 @@ def __init__(
def __call__(
self,
wrapped: Callable[..., None],
instance: BaseCallbackHandler, # type: ignore
instance: BaseCallbackHandler,
args: tuple[Any, ...],
kwargs: dict[str, Any],
):
Expand Down
Loading