mirror of
https://github.com/BerriAI/litellm.git
synced 2026-08-28 05:25:59 +00:00
Merge 2d0802f5ec into 6e569ee0c7
This commit is contained in:
commit
4de8bd9ecb
2 changed files with 32 additions and 2 deletions
|
|
@ -1612,13 +1612,13 @@ class OpenTelemetry(OTELGenAISemconvMixin, CustomLogger):
|
|||
def _record_metrics(self, kwargs, response_obj, start_time, end_time):
|
||||
duration_s: Final = (end_time - start_time).total_seconds()
|
||||
params: Final = kwargs.get("litellm_params") or {}
|
||||
provider: Final = params.get("custom_llm_provider", "Unknown")
|
||||
provider: Final = params.get("custom_llm_provider") or kwargs.get("custom_llm_provider") or "Unknown"
|
||||
|
||||
common_attrs = {
|
||||
"gen_ai.operation.name": (
|
||||
self._gen_ai_operation_name(kwargs) if self._gen_ai_semconv_latest_experimental else "chat"
|
||||
),
|
||||
"gen_ai.system": provider,
|
||||
("gen_ai.provider.name" if self._gen_ai_semconv_latest_experimental else "gen_ai.system"): provider,
|
||||
"gen_ai.request.model": kwargs.get("model"),
|
||||
"gen_ai.framework": "litellm",
|
||||
}
|
||||
|
|
|
|||
|
|
@ -208,3 +208,33 @@ class TestOpentelemetryUnitTests(BaseLoggingCallbackTest):
|
|||
mock_span.set_attribute.assert_called_with(
|
||||
ErrorAttributes.ERROR_MESSAGE, "Fallback error message"
|
||||
)
|
||||
|
||||
def test_record_metrics_semconv_provider_name(self):
|
||||
"""
|
||||
Test that _record_metrics emits gen_ai.provider.name under semconv mode.
|
||||
"""
|
||||
from litellm.integrations.opentelemetry import OpenTelemetry
|
||||
from litellm.integrations.opentelemetry_utils.gen_ai_semconv import OTELSemconvCategory
|
||||
|
||||
otel_integration = OpenTelemetry()
|
||||
mock_histogram = MagicMock()
|
||||
otel_integration._operation_duration_histogram = mock_histogram
|
||||
|
||||
kwargs = {
|
||||
"litellm_params": {"custom_llm_provider": "anthropic"},
|
||||
"model": "claude-3-5-sonnet",
|
||||
}
|
||||
start = datetime.now()
|
||||
end = datetime.now()
|
||||
otel_integration._record_metrics(kwargs, None, start, end)
|
||||
call_attrs = mock_histogram.record.call_args[1]["attributes"]
|
||||
assert call_attrs.get("gen_ai.system") == "anthropic"
|
||||
|
||||
otel_integration.config.semconv_stability_opt_in = {
|
||||
OTELSemconvCategory.GEN_AI_LATEST_EXPERIMENTAL
|
||||
}
|
||||
otel_integration._record_metrics(kwargs, None, start, end)
|
||||
call_attrs = mock_histogram.record.call_args[1]["attributes"]
|
||||
assert call_attrs.get("gen_ai.provider.name") == "anthropic"
|
||||
assert "gen_ai.system" not in call_attrs
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue