ray-llm
44 строки · 1.2 Кб
1import logging
2import os
3import time
4from contextlib import contextmanager
5from typing import Dict, Optional
6
7from opentelemetry import trace
8from opentelemetry.util.types import AttributeValue
9
10from rayllm.backend.observability.tracing.baggage import baggage as set_baggage
11
12# Standard loggers
13serve_logger = logging.getLogger("ray.serve")
14aviary_logger = logging.getLogger("aviary")
15
16# If the AVIARY_DEBUG flag is set, then set the log level to debug
17if os.getenv("AVIARY_DEBUG"):
18aviary_logger.setLevel(logging.DEBUG)
19
20# Standard tracers
21tracer = trace.get_tracer(__name__)
22
23
24@contextmanager
25def step(
26step_name: str,
27request_id: Optional[str] = None,
28attrs: Optional[Dict[str, AttributeValue]] = None,
29baggage: Optional[Dict[str, AttributeValue]] = None,
30):
31if baggage is None:
32baggage = {}
33
34# TODO(tchordia): Add tracing here
35t = time.monotonic()
36try:
37aviary_logger.debug(f"Starting {step_name} at {t}. Id: {request_id}")
38with set_baggage(baggage), tracer.start_as_current_span(
39step_name, attributes=attrs
40) as span:
41yield span
42finally:
43took = time.monotonic() - t
44aviary_logger.debug(f"Completed {step_name}, took {took}s. Id: {request_id}")
45