ソースを参照

added otel lgos specific config

expruc 2 ヶ月 前
コミット
58180c0586
2 ファイル変更26 行追加11 行削除
  1. 15 0
      backend/open_webui/env.py
  2. 11 11
      backend/open_webui/utils/telemetry/logs.py

+ 15 - 0
backend/open_webui/env.py

@@ -651,12 +651,18 @@ OTEL_EXPORTER_OTLP_ENDPOINT = os.environ.get(
 OTEL_METRICS_EXPORTER_OTLP_ENDPOINT = os.environ.get(
     "OTEL_METRICS_EXPORTER_OTLP_ENDPOINT", OTEL_EXPORTER_OTLP_ENDPOINT
 )
+OTEL_LOGS_EXPORTER_OTLP_ENDPOINT = os.environ.get(
+    "OTEL_LOGS_EXPORTER_OTLP_ENDPOINT", OTEL_EXPORTER_OTLP_ENDPOINT
+)
 OTEL_EXPORTER_OTLP_INSECURE = (
     os.environ.get("OTEL_EXPORTER_OTLP_INSECURE", "False").lower() == "true"
 )
 OTEL_METRICS_EXPORTER_OTLP_INSECURE = (
     os.environ.get("OTEL_METRICS_EXPORTER_OTLP_INSECURE", "False").lower() == "true"
 )
+OTEL_LOGS_EXPORTER_OTLP_INSECURE = (
+    os.environ.get("OTEL_LOGS_EXPORTER_OTLP_INSECURE", "False").lower() == "true"
+)
 OTEL_SERVICE_NAME = os.environ.get("OTEL_SERVICE_NAME", "open-webui")
 OTEL_RESOURCE_ATTRIBUTES = os.environ.get(
     "OTEL_RESOURCE_ATTRIBUTES", ""
@@ -673,6 +679,12 @@ OTEL_METRICS_BASIC_AUTH_USERNAME = os.environ.get(
 OTEL_METRICS_BASIC_AUTH_PASSWORD = os.environ.get(
     "OTEL_METRICS_BASIC_AUTH_PASSWORD", OTEL_BASIC_AUTH_PASSWORD
 )
+OTEL_LOGS_BASIC_AUTH_USERNAME = os.environ.get(
+    "OTEL_LOGS_BASIC_AUTH_USERNAME", OTEL_BASIC_AUTH_USERNAME
+)
+OTEL_LOGS_BASIC_AUTH_PASSWORD = os.environ.get(
+    "OTEL_LOGS_BASIC_AUTH_PASSWORD", OTEL_BASIC_AUTH_PASSWORD
+)
 
 OTEL_OTLP_SPAN_EXPORTER = os.environ.get(
     "OTEL_OTLP_SPAN_EXPORTER", "grpc"
@@ -682,6 +694,9 @@ OTEL_METRICS_OTLP_SPAN_EXPORTER = os.environ.get(
     "OTEL_METRICS_OTLP_SPAN_EXPORTER", OTEL_OTLP_SPAN_EXPORTER
 ).lower()  # grpc or http
 
+OTEL_LOGS_OTLP_SPAN_EXPORTER = os.environ.get(
+    "OTEL_LOGS_OTLP_SPAN_EXPORTER", OTEL_OTLP_SPAN_EXPORTER
+).lower()  # grpc or http
 
 ####################################
 # TOOLS/FUNCTIONS PIP OPTIONS

+ 11 - 11
backend/open_webui/utils/telemetry/logs.py

@@ -13,31 +13,31 @@ from opentelemetry._logs import set_logger_provider
 from opentelemetry.sdk.resources import SERVICE_NAME, Resource
 from open_webui.env import (
     OTEL_SERVICE_NAME,
-    OTEL_EXPORTER_OTLP_ENDPOINT,
-    OTEL_EXPORTER_OTLP_INSECURE,
-    OTEL_BASIC_AUTH_USERNAME,
-    OTEL_BASIC_AUTH_PASSWORD,
-    OTEL_OTLP_SPAN_EXPORTER,
+    OTEL_LOGS_EXPORTER_OTLP_ENDPOINT,
+    OTEL_LOGS_EXPORTER_OTLP_INSECURE,
+    OTEL_LOGS_BASIC_AUTH_USERNAME,
+    OTEL_LOGS_BASIC_AUTH_PASSWORD,
+    OTEL_LOGS_OTLP_SPAN_EXPORTER,
 )
 
 
 def setup_logging():
     headers = []
-    if OTEL_BASIC_AUTH_USERNAME and OTEL_BASIC_AUTH_PASSWORD:
-        auth_string = f"{OTEL_BASIC_AUTH_USERNAME}:{OTEL_BASIC_AUTH_PASSWORD}"
+    if OTEL_LOGS_BASIC_AUTH_USERNAME and OTEL_LOGS_BASIC_AUTH_PASSWORD:
+        auth_string = f"{OTEL_LOGS_BASIC_AUTH_USERNAME}:{OTEL_LOGS_BASIC_AUTH_PASSWORD}"
         auth_header = b64encode(auth_string.encode()).decode()
         headers = [("authorization", f"Basic {auth_header}")]
     resource = Resource.create(attributes={SERVICE_NAME: OTEL_SERVICE_NAME})
 
-    if OTEL_OTLP_SPAN_EXPORTER == "http":
+    if OTEL_LOGS_OTLP_SPAN_EXPORTER == "http":
         exporter = HttpOTLPLogExporter(
-            endpoint=OTEL_EXPORTER_OTLP_ENDPOINT,
+            endpoint=OTEL_LOGS_EXPORTER_OTLP_ENDPOINT,
             headers=headers,
         )
     else:
         exporter = OTLPLogExporter(
-            endpoint=OTEL_EXPORTER_OTLP_ENDPOINT,
-            insecure=OTEL_EXPORTER_OTLP_INSECURE,
+            endpoint=OTEL_LOGS_EXPORTER_OTLP_ENDPOINT,
+            insecure=OTEL_LOGS_EXPORTER_OTLP_INSECURE,
             headers=headers,
         )
     logger_provider = LoggerProvider(resource=resource)