Skip to content

Commit 4cbe77e

Browse files
committed
Initial Commit removing deprecated events stuff from openai
1 parent c4347e0 commit 4cbe77e

File tree

4 files changed

+37
-42
lines changed

4 files changed

+37
-42
lines changed

instrumentation-genai/opentelemetry-instrumentation-openai-v2/src/opentelemetry/instrumentation/openai_v2/__init__.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
from wrapt import wrap_function_wrapper
4646

47-
from opentelemetry._events import get_event_logger
47+
from opentelemetry._logs import get_logger
4848
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
4949
from opentelemetry.instrumentation.openai_v2.package import _instruments
5050
from opentelemetry.instrumentation.openai_v2.utils import is_content_enabled
@@ -73,12 +73,12 @@ def _instrument(self, **kwargs):
7373
tracer_provider,
7474
schema_url=Schemas.V1_28_0.value,
7575
)
76-
event_logger_provider = kwargs.get("event_logger_provider")
77-
event_logger = get_event_logger(
76+
logger_provider = kwargs.get("logger_provider")
77+
logger = get_logger(
7878
__name__,
7979
"",
8080
schema_url=Schemas.V1_28_0.value,
81-
event_logger_provider=event_logger_provider,
81+
logger_provider=logger_provider,
8282
)
8383
meter_provider = kwargs.get("meter_provider")
8484
self._meter = get_meter(
@@ -94,15 +94,15 @@ def _instrument(self, **kwargs):
9494
module="openai.resources.chat.completions",
9595
name="Completions.create",
9696
wrapper=chat_completions_create(
97-
tracer, event_logger, instruments, is_content_enabled()
97+
tracer, logger, instruments, is_content_enabled()
9898
),
9999
)
100100

101101
wrap_function_wrapper(
102102
module="openai.resources.chat.completions",
103103
name="AsyncCompletions.create",
104104
wrapper=async_chat_completions_create(
105-
tracer, event_logger, instruments, is_content_enabled()
105+
tracer, logger, instruments, is_content_enabled()
106106
),
107107
)
108108

instrumentation-genai/opentelemetry-instrumentation-openai-v2/src/opentelemetry/instrumentation/openai_v2/patch.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
from openai import Stream
2020

21-
from opentelemetry._events import Event, EventLogger
21+
from opentelemetry._logs import LogRecord, Logger
2222
from opentelemetry.semconv._incubating.attributes import (
2323
gen_ai_attributes as GenAIAttributes,
2424
)
@@ -40,7 +40,7 @@
4040

4141
def chat_completions_create(
4242
tracer: Tracer,
43-
event_logger: EventLogger,
43+
logger: Logger,
4444
instruments: Instruments,
4545
capture_content: bool,
4646
):
@@ -57,7 +57,7 @@ def traced_method(wrapped, instance, args, kwargs):
5757
end_on_exit=False,
5858
) as span:
5959
for message in kwargs.get("messages", []):
60-
event_logger.emit(message_to_event(message, capture_content))
60+
logger.emit(message_to_event(message, capture_content))
6161

6262
start = default_timer()
6363
result = None
@@ -66,15 +66,15 @@ def traced_method(wrapped, instance, args, kwargs):
6666
result = wrapped(*args, **kwargs)
6767
if is_streaming(kwargs):
6868
return StreamWrapper(
69-
result, span, event_logger, capture_content
69+
result, span, logger, capture_content
7070
)
7171

7272
if span.is_recording():
7373
_set_response_attributes(
74-
span, result, event_logger, capture_content
74+
span, result, logger, capture_content
7575
)
7676
for choice in getattr(result, "choices", []):
77-
event_logger.emit(choice_to_event(choice, capture_content))
77+
logger.emit(choice_to_event(choice, capture_content))
7878

7979
span.end()
8080
return result
@@ -98,7 +98,7 @@ def traced_method(wrapped, instance, args, kwargs):
9898

9999
def async_chat_completions_create(
100100
tracer: Tracer,
101-
event_logger: EventLogger,
101+
logger: Logger,
102102
instruments: Instruments,
103103
capture_content: bool,
104104
):
@@ -115,7 +115,7 @@ async def traced_method(wrapped, instance, args, kwargs):
115115
end_on_exit=False,
116116
) as span:
117117
for message in kwargs.get("messages", []):
118-
event_logger.emit(message_to_event(message, capture_content))
118+
logger.emit(message_to_event(message, capture_content))
119119

120120
start = default_timer()
121121
result = None
@@ -124,15 +124,15 @@ async def traced_method(wrapped, instance, args, kwargs):
124124
result = await wrapped(*args, **kwargs)
125125
if is_streaming(kwargs):
126126
return StreamWrapper(
127-
result, span, event_logger, capture_content
127+
result, span, logger, capture_content
128128
)
129129

130130
if span.is_recording():
131131
_set_response_attributes(
132-
span, result, event_logger, capture_content
132+
span, result, logger, capture_content
133133
)
134134
for choice in getattr(result, "choices", []):
135-
event_logger.emit(choice_to_event(choice, capture_content))
135+
logger.emit(choice_to_event(choice, capture_content))
136136

137137
span.end()
138138
return result
@@ -221,7 +221,7 @@ def _record_metrics(
221221

222222

223223
def _set_response_attributes(
224-
span, result, event_logger: EventLogger, capture_content: bool
224+
span, result, logger: Logger, capture_content: bool
225225
):
226226
set_span_attribute(
227227
span, GenAIAttributes.GEN_AI_RESPONSE_MODEL, result.model
@@ -311,7 +311,7 @@ def __init__(
311311
self,
312312
stream: Stream,
313313
span: Span,
314-
event_logger: EventLogger,
314+
logger: Logger,
315315
capture_content: bool,
316316
):
317317
self.stream = stream
@@ -320,7 +320,7 @@ def __init__(
320320
self._span_started = False
321321
self.capture_content = capture_content
322322

323-
self.event_logger = event_logger
323+
self.logger = logger
324324
self.setup()
325325

326326
def setup(self):
@@ -399,9 +399,9 @@ def cleanup(self):
399399

400400
# this span is not current, so we need to manually set the context on event
401401
span_ctx = self.span.get_span_context()
402-
self.event_logger.emit(
403-
Event(
404-
name="gen_ai.choice",
402+
self.logger.emit(
403+
LogRecord(
404+
event_name="gen_ai.choice",
405405
attributes=event_attributes,
406406
body=body,
407407
trace_id=span_ctx.trace_id,

instrumentation-genai/opentelemetry-instrumentation-openai-v2/src/opentelemetry/instrumentation/openai_v2/utils.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from httpx import URL
2020
from openai import NOT_GIVEN
2121

22-
from opentelemetry._events import Event
22+
from opentelemetry._logs import LogRecord
2323
from opentelemetry.semconv._incubating.attributes import (
2424
gen_ai_attributes as GenAIAttributes,
2525
)
@@ -123,8 +123,8 @@ def message_to_event(message, capture_content):
123123
if tool_call_id:
124124
body["id"] = tool_call_id
125125

126-
return Event(
127-
name=f"gen_ai.{role}.message",
126+
return LogRecord(
127+
event_name=f"gen_ai.{role}.message",
128128
attributes=attributes,
129129
body=body if body else None,
130130
)
@@ -156,8 +156,8 @@ def choice_to_event(choice, capture_content):
156156
message["content"] = content
157157
body["message"] = message
158158

159-
return Event(
160-
name="gen_ai.choice",
159+
return LogRecord(
160+
event_name="gen_ai.choice",
161161
attributes=attributes,
162162
body=body,
163163
)

instrumentation-genai/opentelemetry-instrumentation-openai-v2/tests/conftest.py

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
from opentelemetry.instrumentation.openai_v2.utils import (
1212
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT,
1313
)
14-
from opentelemetry.sdk._events import EventLoggerProvider
1514
from opentelemetry.sdk._logs import LoggerProvider
1615
from opentelemetry.sdk._logs.export import (
1716
InMemoryLogExporter,
@@ -55,15 +54,11 @@ def fixture_tracer_provider(span_exporter):
5554
provider.add_span_processor(SimpleSpanProcessor(span_exporter))
5655
return provider
5756

58-
59-
@pytest.fixture(scope="function", name="event_logger_provider")
60-
def fixture_event_logger_provider(log_exporter):
57+
@pytest.fixture(scope="function", name="logger_provider")
58+
def fixture_logger_provider(log_exporter):
6159
provider = LoggerProvider()
6260
provider.add_log_record_processor(SimpleLogRecordProcessor(log_exporter))
63-
event_logger_provider = EventLoggerProvider(provider)
64-
65-
return event_logger_provider
66-
61+
return provider
6762

6863
@pytest.fixture(scope="function", name="meter_provider")
6964
def fixture_meter_provider(metric_reader):
@@ -106,7 +101,7 @@ def vcr_config():
106101

107102
@pytest.fixture(scope="function")
108103
def instrument_no_content(
109-
tracer_provider, event_logger_provider, meter_provider
104+
tracer_provider, logger_provider, meter_provider
110105
):
111106
os.environ.update(
112107
{OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT: "False"}
@@ -115,7 +110,7 @@ def instrument_no_content(
115110
instrumentor = OpenAIInstrumentor()
116111
instrumentor.instrument(
117112
tracer_provider=tracer_provider,
118-
event_logger_provider=event_logger_provider,
113+
logger_provider=logger_provider,
119114
meter_provider=meter_provider,
120115
)
121116

@@ -126,15 +121,15 @@ def instrument_no_content(
126121

127122
@pytest.fixture(scope="function")
128123
def instrument_with_content(
129-
tracer_provider, event_logger_provider, meter_provider
124+
tracer_provider, logger_provider, meter_provider
130125
):
131126
os.environ.update(
132127
{OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT: "True"}
133128
)
134129
instrumentor = OpenAIInstrumentor()
135130
instrumentor.instrument(
136131
tracer_provider=tracer_provider,
137-
event_logger_provider=event_logger_provider,
132+
logger_provider=logger_provider,
138133
meter_provider=meter_provider,
139134
)
140135

@@ -145,7 +140,7 @@ def instrument_with_content(
145140

146141
@pytest.fixture(scope="function")
147142
def instrument_with_content_unsampled(
148-
span_exporter, event_logger_provider, meter_provider
143+
span_exporter, logger_provider, meter_provider
149144
):
150145
os.environ.update(
151146
{OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT: "True"}
@@ -157,7 +152,7 @@ def instrument_with_content_unsampled(
157152
instrumentor = OpenAIInstrumentor()
158153
instrumentor.instrument(
159154
tracer_provider=tracer_provider,
160-
event_logger_provider=event_logger_provider,
155+
logger_provider=logger_provider,
161156
meter_provider=meter_provider,
162157
)
163158

0 commit comments

Comments
 (0)