mirror of
https://github.com/open-webui/open-webui.git
synced 2025-12-12 04:15:25 +00:00
refac: lazySpanExporter no longer needed
This commit is contained in:
parent
cb487d3f61
commit
aa83ebae58
2 changed files with 3 additions and 33 deletions
|
|
@ -1,31 +0,0 @@
|
||||||
import threading
|
|
||||||
|
|
||||||
from opentelemetry.sdk.trace import ReadableSpan
|
|
||||||
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
|
||||||
|
|
||||||
|
|
||||||
class LazyBatchSpanProcessor(BatchSpanProcessor):
|
|
||||||
def __init__(self, *args, **kwargs):
|
|
||||||
super().__init__(*args, **kwargs)
|
|
||||||
self.done = True
|
|
||||||
with self.condition:
|
|
||||||
self.condition.notify_all()
|
|
||||||
self.worker_thread.join()
|
|
||||||
self.done = False
|
|
||||||
self.worker_thread = None
|
|
||||||
|
|
||||||
def on_end(self, span: ReadableSpan) -> None:
|
|
||||||
if self.worker_thread is None:
|
|
||||||
self.worker_thread = threading.Thread(
|
|
||||||
name=self.__class__.__name__, target=self.worker, daemon=True
|
|
||||||
)
|
|
||||||
self.worker_thread.start()
|
|
||||||
super().on_end(span)
|
|
||||||
|
|
||||||
def shutdown(self) -> None:
|
|
||||||
self.done = True
|
|
||||||
with self.condition:
|
|
||||||
self.condition.notify_all()
|
|
||||||
if self.worker_thread:
|
|
||||||
self.worker_thread.join()
|
|
||||||
self.span_exporter.shutdown()
|
|
||||||
|
|
@ -1,15 +1,16 @@
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from opentelemetry import trace
|
from opentelemetry import trace
|
||||||
|
|
||||||
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
|
from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter
|
||||||
from opentelemetry.exporter.otlp.proto.http.trace_exporter import (
|
from opentelemetry.exporter.otlp.proto.http.trace_exporter import (
|
||||||
OTLPSpanExporter as HttpOTLPSpanExporter,
|
OTLPSpanExporter as HttpOTLPSpanExporter,
|
||||||
)
|
)
|
||||||
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
|
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
|
||||||
from opentelemetry.sdk.trace import TracerProvider
|
from opentelemetry.sdk.trace import TracerProvider
|
||||||
|
from opentelemetry.sdk.trace.export import BatchSpanProcessor
|
||||||
from sqlalchemy import Engine
|
from sqlalchemy import Engine
|
||||||
from base64 import b64encode
|
from base64 import b64encode
|
||||||
|
|
||||||
from open_webui.utils.telemetry.exporters import LazyBatchSpanProcessor
|
|
||||||
from open_webui.utils.telemetry.instrumentors import Instrumentor
|
from open_webui.utils.telemetry.instrumentors import Instrumentor
|
||||||
from open_webui.utils.telemetry.metrics import setup_metrics
|
from open_webui.utils.telemetry.metrics import setup_metrics
|
||||||
from open_webui.env import (
|
from open_webui.env import (
|
||||||
|
|
@ -50,7 +51,7 @@ def setup(app: FastAPI, db_engine: Engine):
|
||||||
insecure=OTEL_EXPORTER_OTLP_INSECURE,
|
insecure=OTEL_EXPORTER_OTLP_INSECURE,
|
||||||
headers=headers,
|
headers=headers,
|
||||||
)
|
)
|
||||||
trace.get_tracer_provider().add_span_processor(LazyBatchSpanProcessor(exporter))
|
trace.get_tracer_provider().add_span_processor(BatchSpanProcessor(exporter))
|
||||||
Instrumentor(app=app, db_engine=db_engine).instrument()
|
Instrumentor(app=app, db_engine=db_engine).instrument()
|
||||||
|
|
||||||
# set up metrics only if enabled
|
# set up metrics only if enabled
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue