forked from phoenix/litellm-mirror
feat - use traceparent to proporgate OTEL traces
This commit is contained in:
parent
c9bb4b29c7
commit
7ce1289548
2 changed files with 20 additions and 0 deletions
|
@ -454,6 +454,23 @@ class OpenTelemetry(CustomLogger):
|
||||||
def _get_span_name(self, kwargs):
|
def _get_span_name(self, kwargs):
|
||||||
return LITELLM_REQUEST_SPAN_NAME
|
return LITELLM_REQUEST_SPAN_NAME
|
||||||
|
|
||||||
|
def get_traceparent_from_header(self, headers):
|
||||||
|
if headers is None:
|
||||||
|
return None
|
||||||
|
_traceparent = headers.get("traceparent", None)
|
||||||
|
if _traceparent is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
from opentelemetry.trace.propagation.tracecontext import (
|
||||||
|
TraceContextTextMapPropagator,
|
||||||
|
)
|
||||||
|
|
||||||
|
verbose_logger.debug("OpenTelemetry: GOT A TRACEPARENT {}".format(_traceparent))
|
||||||
|
propagator = TraceContextTextMapPropagator()
|
||||||
|
_parent_context = propagator.extract(carrier={"traceparent": _traceparent})
|
||||||
|
verbose_logger.debug("OpenTelemetry: PARENT CONTEXT {}".format(_parent_context))
|
||||||
|
return _parent_context
|
||||||
|
|
||||||
def _get_span_context(self, kwargs):
|
def _get_span_context(self, kwargs):
|
||||||
from opentelemetry.trace.propagation.tracecontext import (
|
from opentelemetry.trace.propagation.tracecontext import (
|
||||||
TraceContextTextMapPropagator,
|
TraceContextTextMapPropagator,
|
||||||
|
|
|
@ -533,6 +533,9 @@ async def user_api_key_auth(
|
||||||
parent_otel_span = open_telemetry_logger.tracer.start_span(
|
parent_otel_span = open_telemetry_logger.tracer.start_span(
|
||||||
name="Received Proxy Server Request",
|
name="Received Proxy Server Request",
|
||||||
start_time=_to_ns(datetime.now()),
|
start_time=_to_ns(datetime.now()),
|
||||||
|
context=open_telemetry_logger.get_traceparent_from_header(
|
||||||
|
headers=request.headers
|
||||||
|
),
|
||||||
)
|
)
|
||||||
### USER-DEFINED AUTH FUNCTION ###
|
### USER-DEFINED AUTH FUNCTION ###
|
||||||
if user_custom_auth is not None:
|
if user_custom_auth is not None:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue