Skip to content

Commit 4d1497e

Browse files
committed
Use gen_ai.embeddings.dimension.count
1 parent f9c2a1e commit 4d1497e

File tree

4 files changed

+24
-17
lines changed

4 files changed

+24
-17
lines changed

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,9 @@ def traced_method(wrapped, instance, args, kwargs):
173173
)
174174
}
175175

176-
# Using a custom attribute "gen_ai.embeddings.dimensions". Will propose to semantic conventions.
176+
# Using a custom attribute "gen_ai.embeddings.dimension.count". Will propose to semantic conventions.
177177
if "dimensions" in kwargs and kwargs["dimensions"] is not None:
178-
span_attributes["gen_ai.embeddings.dimensions"] = kwargs[
178+
span_attributes["gen_ai.embeddings.dimension.count"] = kwargs[
179179
"dimensions"
180180
]
181181

@@ -240,7 +240,7 @@ async def traced_method(wrapped, instance, args, kwargs):
240240

241241
# Set embeddings dimensions if specified in the request
242242
if "dimensions" in kwargs and kwargs["dimensions"] is not None:
243-
span_attributes["gen_ai.embeddings.dimensions"] = kwargs[
243+
span_attributes["gen_ai.embeddings.dimension.count"] = kwargs[
244244
"dimensions"
245245
]
246246

@@ -303,10 +303,10 @@ def _record_metrics(
303303
],
304304
}
305305

306-
if "gen_ai.embeddings.dimensions" in span_attributes:
307-
common_attributes["gen_ai.embeddings.dimensions"] = span_attributes[
308-
"gen_ai.embeddings.dimensions"
309-
]
306+
if "gen_ai.embeddings.dimension.count" in span_attributes:
307+
common_attributes["gen_ai.embeddings.dimension.count"] = (
308+
span_attributes["gen_ai.embeddings.dimension.count"]
309+
)
310310

311311
if error_type:
312312
common_attributes["error.type"] = error_type
@@ -425,7 +425,7 @@ def _set_embeddings_response_attributes(
425425
if getattr(first_embedding, "embedding", None):
426426
set_span_attribute(
427427
span,
428-
"gen_ai.embeddings.dimensions",
428+
"gen_ai.embeddings.dimension.count",
429429
len(first_embedding.embedding),
430430
)
431431

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,9 @@ def get_llm_request_attributes(
242242
):
243243
# Add embedding dimensions if specified
244244
if "dimensions" in kwargs and kwargs["dimensions"] is not None:
245-
attributes["gen_ai.embeddings.dimensions"] = kwargs["dimensions"]
245+
attributes["gen_ai.embeddings.dimension.count"] = kwargs[
246+
"dimensions"
247+
]
246248

247249
# Add encoding format if specified
248250
# Using a custom attribute "gen_ai.embeddings.encoding_format". Will propose to semantic conventions.

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,9 @@ async def test_async_embeddings_with_dimensions(
146146
assert_embedding_attributes(spans[0], model_name, response)
147147

148148
# Verify dimensions attribute is set correctly
149-
assert spans[0].attributes["gen_ai.embeddings.dimensions"] == dimensions
149+
assert (
150+
spans[0].attributes["gen_ai.embeddings.dimension.count"] == dimensions
151+
)
150152

151153
# Verify actual embedding dimensions match the requested dimensions
152154
assert len(response.data[0].embedding) == dimensions
@@ -283,10 +285,10 @@ def assert_embedding_attributes(
283285
# Assert embeddings-specific attributes
284286
if (
285287
hasattr(span, "attributes")
286-
and "gen_ai.embeddings.dimensions" in span.attributes
288+
and "gen_ai.embeddings.dimension.count" in span.attributes
287289
):
288290
# If dimensions were specified, verify that they match the actual dimensions
289-
assert span.attributes["gen_ai.embeddings.dimensions"] == len(
291+
assert span.attributes["gen_ai.embeddings.dimension.count"] == len(
290292
response.data[0].embedding
291293
)
292294

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

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,9 @@ def test_embeddings_with_dimensions(
144144
assert_embedding_attributes(spans[0], model_name, response)
145145

146146
# Verify dimensions attribute is set correctly
147-
assert spans[0].attributes["gen_ai.embeddings.dimensions"] == dimensions
147+
assert (
148+
spans[0].attributes["gen_ai.embeddings.dimension.count"] == dimensions
149+
)
148150

149151
# Verify actual embedding dimensions match the requested dimensions
150152
assert len(response.data[0].embedding) == dimensions
@@ -166,9 +168,10 @@ def test_embeddings_with_dimensions(
166168

167169
# Verify the dimensions attribute is present in metrics
168170
for point in duration_metric.data.data_points:
169-
if "gen_ai.embeddings.dimensions" in point.attributes:
171+
if "gen_ai.embeddings.dimension.count" in point.attributes:
170172
assert (
171-
point.attributes["gen_ai.embeddings.dimensions"] == dimensions
173+
point.attributes["gen_ai.embeddings.dimension.count"]
174+
== dimensions
172175
)
173176
break
174177
else:
@@ -415,10 +418,10 @@ def assert_embedding_attributes(
415418
# Assert embeddings-specific attributes
416419
if (
417420
hasattr(span, "attributes")
418-
and "gen_ai.embeddings.dimensions" in span.attributes
421+
and "gen_ai.embeddings.dimension.count" in span.attributes
419422
):
420423
# If dimensions were specified, verify that they match the actual dimensions
421-
assert span.attributes["gen_ai.embeddings.dimensions"] == len(
424+
assert span.attributes["gen_ai.embeddings.dimension.count"] == len(
422425
response.data[0].embedding
423426
)
424427

0 commit comments

Comments
 (0)