setup.py 902 B

123456789101112131415161718192021222324
  1. from opentelemetry import trace
  2. from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
  3. from opentelemetry.sdk.resources import SERVICE_NAME, Resource
  4. from opentelemetry.sdk.trace import TracerProvider
  5. from opentelemetry.sdk.trace.sampling import ALWAYS_ON
  6. from open_webui.utils.trace.exporters import LazyBatchSpanProcessor
  7. from open_webui.utils.trace.instrumentors import Instrumentor
  8. from open_webui.env import OT_SERVICE_NAME, OT_HOST, OT_TOKEN
  9. def setup(app):
  10. trace.set_tracer_provider(
  11. TracerProvider(
  12. resource=Resource.create(
  13. {SERVICE_NAME: OT_SERVICE_NAME, "token": OT_TOKEN}
  14. ),
  15. sampler=ALWAYS_ON,
  16. )
  17. )
  18. # otlp
  19. exporter = OTLPSpanExporter(endpoint=OT_HOST)
  20. trace.get_tracer_provider().add_span_processor(LazyBatchSpanProcessor(exporter))
  21. Instrumentor(app=app).instrument()