|
35 | 35 | from google.genai import types |
36 | 36 | from google.genai.models import Models |
37 | 37 | from opentelemetry import _logs |
| 38 | +from opentelemetry import context as otel_context |
38 | 39 | from opentelemetry import trace |
39 | 40 | from opentelemetry._logs import LogRecord |
40 | 41 | from opentelemetry.semconv._incubating.attributes.gen_ai_attributes import GEN_AI_AGENT_DESCRIPTION |
@@ -444,7 +445,8 @@ def use_generate_content_span( |
444 | 445 | _is_gemini_agent(invocation_context.agent) |
445 | 446 | and _instrumented_with_opentelemetry_instrumentation_google_genai() |
446 | 447 | ): |
447 | | - yield None |
| 448 | + with _use_extra_generate_content_attributes(common_attributes): |
| 449 | + yield |
448 | 450 | else: |
449 | 451 | with _use_native_generate_content_span( |
450 | 452 | llm_request=llm_request, |
@@ -492,6 +494,33 @@ def _instrumented_with_opentelemetry_instrumentation_google_genai() -> bool: |
492 | 494 | return False |
493 | 495 |
|
494 | 496 |
|
| 497 | +@contextmanager |
| 498 | +def _use_extra_generate_content_attributes( |
| 499 | + extra_attributes: Mapping[str, AttributeValue], |
| 500 | +): |
| 501 | + try: |
| 502 | + from opentelemetry.instrumentation.google_genai import GENERATE_CONTENT_EXTRA_ATTRIBUTES_CONTEXT_KEY |
| 503 | + except (ImportError, AttributeError): |
| 504 | + logger.warning( |
| 505 | + 'opentelemetry-instrumentor-google-genai is installed but has' |
| 506 | + ' insufficient version,' |
| 507 | + + ' so some tracing dependent features may not work properly.' |
| 508 | + + ' Please upgrade to version to 0.6b0 or above.' |
| 509 | + ) |
| 510 | + yield |
| 511 | + return |
| 512 | + |
| 513 | + tok = otel_context.attach( |
| 514 | + otel_context.set_value( |
| 515 | + GENERATE_CONTENT_EXTRA_ATTRIBUTES_CONTEXT_KEY, extra_attributes |
| 516 | + ) |
| 517 | + ) |
| 518 | + try: |
| 519 | + yield |
| 520 | + finally: |
| 521 | + otel_context.detach(tok) |
| 522 | + |
| 523 | + |
495 | 524 | def _is_gemini_agent(agent: BaseAgent) -> bool: |
496 | 525 | from ..agents.llm_agent import LlmAgent |
497 | 526 |
|
|
0 commit comments