File size: 1,396 Bytes
d491dc1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import logging
from contextlib import contextmanager
logger = logging.getLogger("hyperflow.telemetry")
class DummySpan:
def set_attribute(self, key: str, value: Any) -> None:
pass
def __enter__(self):
return self
def __exit__(self, exc_type, exc_val, exc_tb):
pass
class DummyTracer:
def start_as_current_span(self, name: str):
return DummySpan()
try:
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
def setup_telemetry(service_name: str = "hyperflow-ml"):
try:
provider = TracerProvider()
exporter = OTLPSpanExporter(endpoint="http://localhost:4318/v1/traces")
provider.add_span_processor(BatchSpanProcessor(exporter))
trace.set_tracer_provider(provider)
logger.info("OpenTelemetry exporter configured for endpoint http://localhost:4318/v1/traces")
except Exception as e:
logger.warning(f"OpenTelemetry initialization notice: {e}")
tracer = trace.get_tracer("hyperflow")
except Exception:
def setup_telemetry(service_name: str = "hyperflow-ml"):
logger.info("Telemetry provider initialized in fallback mode.")
tracer = DummyTracer()
|