mirror of
https://github.com/BerriAI/litellm.git
synced 2025-04-26 03:04:13 +00:00
refactor create_litellm_proxy_request_started_spen
This commit is contained in:
parent
f4b7b49e9a
commit
de97cda445
4 changed files with 33 additions and 15 deletions
|
@ -101,3 +101,11 @@ class ArizeLogger(OpenTelemetry):
|
||||||
):
|
):
|
||||||
"""Arize is used mainly for LLM I/O tracing, sending router+caching metrics adds bloat to arize logs"""
|
"""Arize is used mainly for LLM I/O tracing, sending router+caching metrics adds bloat to arize logs"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def create_litellm_proxy_request_started_span(
|
||||||
|
self,
|
||||||
|
start_time: datetime,
|
||||||
|
headers: dict,
|
||||||
|
):
|
||||||
|
"""Arize is used mainly for LLM I/O tracing, sending Proxy Server Request adds bloat to arize logs"""
|
||||||
|
pass
|
||||||
|
|
|
@ -485,12 +485,7 @@ class OpenTelemetry(CustomLogger):
|
||||||
self, span: Span, kwargs, response_obj: Optional[Any]
|
self, span: Span, kwargs, response_obj: Optional[Any]
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
if self.callback_name == "arize":
|
if self.callback_name == "arize_phoenix":
|
||||||
from litellm.integrations.arize.arize import ArizeLogger
|
|
||||||
|
|
||||||
ArizeLogger.set_arize_attributes(span, kwargs, response_obj)
|
|
||||||
return
|
|
||||||
elif self.callback_name == "arize_phoenix":
|
|
||||||
from litellm.integrations.arize.arize_phoenix import ArizePhoenixLogger
|
from litellm.integrations.arize.arize_phoenix import ArizePhoenixLogger
|
||||||
|
|
||||||
ArizePhoenixLogger.set_arize_phoenix_attributes(
|
ArizePhoenixLogger.set_arize_phoenix_attributes(
|
||||||
|
@ -1006,3 +1001,18 @@ class OpenTelemetry(CustomLogger):
|
||||||
)
|
)
|
||||||
management_endpoint_span.set_status(Status(StatusCode.ERROR))
|
management_endpoint_span.set_status(Status(StatusCode.ERROR))
|
||||||
management_endpoint_span.end(end_time=_end_time_ns)
|
management_endpoint_span.end(end_time=_end_time_ns)
|
||||||
|
|
||||||
|
def create_litellm_proxy_request_started_span(
|
||||||
|
self,
|
||||||
|
start_time: datetime,
|
||||||
|
headers: dict,
|
||||||
|
) -> Optional[Span]:
|
||||||
|
"""
|
||||||
|
Create a span for the received proxy server request.
|
||||||
|
"""
|
||||||
|
return self.tracer.start_span(
|
||||||
|
name="Received Proxy Server Request",
|
||||||
|
start_time=self._to_ns(start_time),
|
||||||
|
context=self.get_traceparent_from_header(headers=headers),
|
||||||
|
kind=self.span_kind.SERVER,
|
||||||
|
)
|
||||||
|
|
|
@ -370,14 +370,11 @@ async def _user_api_key_auth_builder( # noqa: PLR0915
|
||||||
)
|
)
|
||||||
|
|
||||||
if open_telemetry_logger is not None:
|
if open_telemetry_logger is not None:
|
||||||
|
parent_otel_span = (
|
||||||
parent_otel_span = open_telemetry_logger.tracer.start_span(
|
open_telemetry_logger.create_litellm_proxy_request_started_span(
|
||||||
name="Received Proxy Server Request",
|
start_time=start_time,
|
||||||
start_time=_to_ns(start_time),
|
headers=dict(request.headers),
|
||||||
context=open_telemetry_logger.get_traceparent_from_header(
|
)
|
||||||
headers=request.headers
|
|
||||||
),
|
|
||||||
kind=open_telemetry_logger.span_kind.SERVER,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
### USER-DEFINED AUTH FUNCTION ###
|
### USER-DEFINED AUTH FUNCTION ###
|
||||||
|
|
|
@ -33,9 +33,12 @@ from litellm.types.utils import (
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from opentelemetry.trace import Span as _Span
|
from opentelemetry.trace import Span as _Span
|
||||||
|
|
||||||
|
from litellm.integrations.opentelemetry import OpenTelemetry
|
||||||
|
|
||||||
Span = _Span
|
Span = _Span
|
||||||
else:
|
else:
|
||||||
Span = Any
|
Span = Any
|
||||||
|
OpenTelemetry = Any
|
||||||
|
|
||||||
|
|
||||||
def showwarning(message, category, filename, lineno, file=None, line=None):
|
def showwarning(message, category, filename, lineno, file=None, line=None):
|
||||||
|
@ -777,7 +780,7 @@ disable_spend_logs = False
|
||||||
jwt_handler = JWTHandler()
|
jwt_handler = JWTHandler()
|
||||||
prompt_injection_detection_obj: Optional[_OPTIONAL_PromptInjectionDetection] = None
|
prompt_injection_detection_obj: Optional[_OPTIONAL_PromptInjectionDetection] = None
|
||||||
store_model_in_db: bool = False
|
store_model_in_db: bool = False
|
||||||
open_telemetry_logger: Optional[Any] = None
|
open_telemetry_logger: Optional[OpenTelemetry] = None
|
||||||
### INITIALIZE GLOBAL LOGGING OBJECT ###
|
### INITIALIZE GLOBAL LOGGING OBJECT ###
|
||||||
proxy_logging_obj = ProxyLogging(
|
proxy_logging_obj = ProxyLogging(
|
||||||
user_api_key_cache=user_api_key_cache, premium_user=premium_user
|
user_api_key_cache=user_api_key_cache, premium_user=premium_user
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue