From 3dd8146e6ac7f9fd19ddcf0fad5bc978efe036cd Mon Sep 17 00:00:00 2001 From: sayondutta Date: Wed, 17 Jun 2026 01:53:22 +0530 Subject: [PATCH] Vendor OpenLLMetry fr-v0.52.6.21 --- src/fortifyroot/_vendor/VENDOR_MANIFEST.json | 6 +++--- .../instrumentation/openai/retry_handler.py | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/fortifyroot/_vendor/VENDOR_MANIFEST.json b/src/fortifyroot/_vendor/VENDOR_MANIFEST.json index 189edfa..8ad21fb 100644 --- a/src/fortifyroot/_vendor/VENDOR_MANIFEST.json +++ b/src/fortifyroot/_vendor/VENDOR_MANIFEST.json @@ -1,9 +1,9 @@ { - "vendored_at": "2026-06-15T13:22:33.209910", + "vendored_at": "2026-06-17T01:52:40.767869", "openllmetry_version": "0.52.6", - "git_commit": "12dbb40d183a", + "git_commit": "724081bb6f72", "git_branch": "HEAD", - "git_tag": "fr-v0.52.6.20", + "git_tag": "fr-v0.52.6.21", "instrumentation_package_policy": { "opentelemetry-instrumentation-agno": false, "opentelemetry-instrumentation-alephalpha": false, diff --git a/src/fortifyroot/_vendor/opentelemetry/instrumentation/openai/retry_handler.py b/src/fortifyroot/_vendor/opentelemetry/instrumentation/openai/retry_handler.py index 851baa8..72dd3bd 100644 --- a/src/fortifyroot/_vendor/opentelemetry/instrumentation/openai/retry_handler.py +++ b/src/fortifyroot/_vendor/opentelemetry/instrumentation/openai/retry_handler.py @@ -61,7 +61,10 @@ ) from fortifyroot._vendor.opentelemetry.instrumentation.openai.version import __version__ from opentelemetry.instrumentation.utils import unwrap -from fortifyroot._vendor.opentelemetry.semconv_ai import SUPPRESS_LANGUAGE_MODEL_INSTRUMENTATION_KEY +from fortifyroot._vendor.opentelemetry.semconv_ai import ( + SUPPRESS_LANGUAGE_MODEL_INSTRUMENTATION_KEY, + SpanAttributes, +) from opentelemetry.trace import SpanKind, Status, StatusCode from wrapt import wrap_function_wrapper @@ -413,6 +416,17 @@ def _extract_usage_from_body(span: "trace.Span", response: Any) -> None: span.set_attribute("gen_ai.usage.input_tokens", pt) if isinstance(ct, int): span.set_attribute("gen_ai.usage.output_tokens", ct) + total_tokens = usage.get("total_tokens") + if isinstance(total_tokens, int): + span.set_attribute(SpanAttributes.LLM_USAGE_TOTAL_TOKENS, total_tokens) + prompt_tokens_details = usage.get("prompt_tokens_details") + if isinstance(prompt_tokens_details, dict): + cached_tokens = prompt_tokens_details.get("cached_tokens") + if isinstance(cached_tokens, int): + span.set_attribute( + SpanAttributes.LLM_USAGE_CACHE_READ_INPUT_TOKENS, + cached_tokens, + ) except Exception: logger.debug("failed to extract usage from openai response body", exc_info=True)