Skip to content

Commit 3ee1d40

Browse files
committed
made SpanManager class and method private
1 parent 2c59207 commit 3ee1d40

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

instrumentation-genai/opentelemetry-instrumentation-langchain/src/opentelemetry/instrumentation/langchain/callback_handler.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from langchain_core.messages import BaseMessage # type: ignore
2020
from langchain_core.outputs import LLMResult # type: ignore
2121

22-
from opentelemetry.instrumentation.langchain.span_manager import SpanManager
22+
from opentelemetry.instrumentation.langchain.span_manager import _SpanManager
2323
from opentelemetry.semconv._incubating.attributes import (
2424
gen_ai_attributes as GenAI,
2525
)
@@ -37,7 +37,7 @@ def __init__(
3737
) -> None:
3838
super().__init__() # type: ignore
3939

40-
self.span_manager = SpanManager(
40+
self.span_manager = _SpanManager(
4141
tracer=tracer,
4242
)
4343

instrumentation-genai/opentelemetry-instrumentation-langchain/src/opentelemetry/instrumentation/langchain/span_manager.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
from opentelemetry.trace import Span, SpanKind, Tracer, set_span_in_context
2727
from opentelemetry.trace.status import Status, StatusCode
2828

29+
__all__ = ["_SpanManager"]
30+
2931

3032
@dataclass
3133
class _SpanState:
@@ -34,7 +36,7 @@ class _SpanState:
3436
children: List[UUID] = field(default_factory=list)
3537

3638

37-
class SpanManager:
39+
class _SpanManager:
3840
def __init__(
3941
self,
4042
tracer: Tracer,
@@ -44,29 +46,28 @@ def __init__(
4446
# Map from run_id -> _SpanState, to keep track of spans and parent/child relationships
4547
self.spans: Dict[UUID, _SpanState] = {}
4648

47-
def create_span(
49+
def _create_span(
4850
self,
4951
run_id: UUID,
5052
parent_run_id: Optional[UUID],
5153
span_name: str,
5254
kind: SpanKind = SpanKind.INTERNAL,
5355
) -> Span:
5456
if parent_run_id is not None and parent_run_id in self.spans:
55-
parent_span = self.spans[parent_run_id].span
57+
parent_state = self.spans[parent_run_id]
58+
parent_span = parent_state.span
5659
ctx = set_span_in_context(parent_span)
5760
span = self._tracer.start_span(
5861
name=span_name, kind=kind, context=ctx
5962
)
63+
parent_state.children.append(run_id)
6064
else:
6165
# top-level or missing parent
6266
span = self._tracer.start_span(name=span_name, kind=kind)
6367

6468
span_state = _SpanState(span=span, context=get_current())
6569
self.spans[run_id] = span_state
6670

67-
if parent_run_id is not None and parent_run_id in self.spans:
68-
self.spans[parent_run_id].children.append(run_id)
69-
7071
return span
7172

7273
def create_llm_span(
@@ -75,7 +76,7 @@ def create_llm_span(
7576
parent_run_id: Optional[UUID],
7677
request_model: str,
7778
) -> Span:
78-
span = self.create_span(
79+
span = self._create_span(
7980
run_id=run_id,
8081
parent_run_id=parent_run_id,
8182
span_name=f"{GenAI.GenAiOperationNameValues.CHAT.value} {request_model}",

0 commit comments

Comments
 (0)