Skip to content

Commit 2b9dc6c

Browse files
committed
Depend on util-genai helpers
1 parent 3ab9179 commit 2b9dc6c

File tree

6 files changed

+25
-13
lines changed

6 files changed

+25
-13
lines changed

instrumentation-genai/opentelemetry-instrumentation-openai-agents-v2/pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ classifiers = [
2626
dependencies = [
2727
"opentelemetry-api >= 1.37",
2828
"opentelemetry-instrumentation >= 0.58b0",
29-
"opentelemetry-semantic-conventions >= 0.58b0"
29+
"opentelemetry-semantic-conventions >= 0.58b0",
30+
"opentelemetry-util-genai"
3031
]
3132

3233
[project.optional-dependencies]

instrumentation-genai/opentelemetry-instrumentation-openai-agents-v2/src/opentelemetry/instrumentation/openai_agents/span_processor.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,14 @@
1515
from __future__ import annotations
1616

1717
import importlib
18-
import json
1918
import logging
2019
from dataclasses import dataclass
2120
from datetime import datetime, timezone
2221
from enum import Enum
2322
from typing import TYPE_CHECKING, Any, Dict, Iterator, Optional, Sequence
2423
from urllib.parse import urlparse
2524

26-
try: # pragma: no cover - optional dependency
27-
from opentelemetry.util.genai.utils import gen_ai_json_dumps
28-
except Exception: # pragma: no cover - fallback when util not available
29-
30-
def gen_ai_json_dumps(value: Any) -> str:
31-
return json.dumps(value, ensure_ascii=False, default=str)
32-
25+
from opentelemetry.util.genai.utils import gen_ai_json_dumps
3326

3427
try:
3528
from agents.tracing import Span, Trace, TracingProcessor

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
for path in (
1212
PROJECT_ROOT / "opentelemetry-instrumentation" / "src",
1313
GENAI_ROOT / "src",
14+
PROJECT_ROOT / "util" / "opentelemetry-util-genai" / "src",
1415
REPO_ROOT / "openai_agents_lib",
1516
REPO_ROOT / "openai_lib",
1617
TESTS_ROOT / "stubs",
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class ObjectProxy:
2+
"""Minimal stand-in for wrapt.ObjectProxy used in tests."""
3+
4+
def __init__(self, wrapped):
5+
self.__wrapped__ = wrapped
6+
7+
def __getattr__(self, item):
8+
return getattr(self.__wrapped__, item)
9+
10+
def __setattr__(self, key, value):
11+
if key == "__wrapped__":
12+
super().__setattr__(key, value)
13+
else:
14+
setattr(self.__wrapped__, key, value)
15+
16+
def __call__(self, *args, **kwargs):
17+
return self.__wrapped__(*args, **kwargs)

instrumentation-genai/opentelemetry-instrumentation-openai-agents-v2/tests/test_z_span_processor_unit.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,8 @@ class Fallback:
114114
def __str__(self) -> str:
115115
return "fallback"
116116

117-
assert sp.safe_json_dumps({"foo": "bar"}) == json.dumps(
118-
{"foo": "bar"}, ensure_ascii=False, default=str
119-
)
120-
assert json.loads(sp.safe_json_dumps(Fallback())) == "fallback"
117+
assert sp.safe_json_dumps({"foo": "bar"}) == '{"foo":"bar"}'
118+
assert sp.safe_json_dumps(Fallback()) == "fallback"
121119

122120

123121
def test_infer_server_attributes_variants(monkeypatch):

uv.lock

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)