|
5 | 5 | from typing import Any
|
6 | 6 |
|
7 | 7 | from opentelemetry._events import Event, EventLogger, EventLoggerProvider
|
8 |
| -from opentelemetry.instrumentation.google_genai import GoogleGenAiSdkInstrumentor |
9 | 8 | from opentelemetry.trace import get_current_span
|
10 | 9 | from typing_extensions import TypeAlias
|
11 | 10 |
|
12 | 11 | import logfire
|
13 | 12 | from logfire._internal.utils import handle_internal_errors, safe_repr
|
14 | 13 |
|
| 14 | +try: |
| 15 | + from opentelemetry.instrumentation.google_genai import GoogleGenAiSdkInstrumentor |
| 16 | +except ImportError: |
| 17 | + raise RuntimeError( |
| 18 | + 'The `logfire.instrument_google_genai()` method ' |
| 19 | + 'requires the `opentelemetry-instrumentation-google-genai` package.\n' |
| 20 | + 'You can install this with:\n' |
| 21 | + " pip install 'logfire[google-genai]'" |
| 22 | + ) |
| 23 | + |
15 | 24 | try:
|
16 | 25 | from opentelemetry.instrumentation.google_genai import dict_util
|
17 | 26 |
|
@@ -67,9 +76,12 @@ def get_event_logger(self, *args: Any, **kwargs: Any) -> SpanEventLogger:
|
67 | 76 | return SpanEventLogger(*args, **kwargs)
|
68 | 77 |
|
69 | 78 |
|
70 |
| -def instrument_google_genai(logfire_instance: logfire.Logfire): |
| 79 | +def instrument_google_genai(logfire_instance: logfire.Logfire, **kwargs: Any): |
71 | 80 | GoogleGenAiSdkInstrumentor().instrument(
|
72 |
| - event_logger_provider=SpanEventLoggerProvider(), |
73 |
| - tracer_provider=logfire_instance.config.get_tracer_provider(), |
74 |
| - meter_provider=logfire_instance.config.get_meter_provider(), |
| 81 | + **{ |
| 82 | + 'event_logger_provider': SpanEventLoggerProvider(), |
| 83 | + 'tracer_provider': logfire_instance.config.get_tracer_provider(), |
| 84 | + 'meter_provider': logfire_instance.config.get_meter_provider(), |
| 85 | + **kwargs, |
| 86 | + } |
75 | 87 | )
|
0 commit comments