From 4c46f04d777021052fb71ff2d1855c8d687b5bf5 Mon Sep 17 00:00:00 2001 From: -LAN- Date: Tue, 27 May 2025 17:44:40 +0800 Subject: [PATCH] fix: Enhances tenant ID handling in telemetry (#20304) Signed-off-by: -LAN- --- api/extensions/ext_otel.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/api/extensions/ext_otel.py b/api/extensions/ext_otel.py index 59982d96ad..538a88a4fa 100644 --- a/api/extensions/ext_otel.py +++ b/api/extensions/ext_otel.py @@ -12,18 +12,25 @@ from flask_login import user_loaded_from_request, user_logged_in # type: ignore from configs import dify_config from dify_app import DifyApp +from models import Account, EndUser @user_logged_in.connect @user_loaded_from_request.connect -def on_user_loaded(_sender, user): +def on_user_loaded(_sender, user: Union["Account", "EndUser"]): if dify_config.ENABLE_OTEL: from opentelemetry.trace import get_current_span if user: current_span = get_current_span() + if isinstance(user, Account) and user.current_tenant_id: + tenant_id = user.current_tenant_id + elif isinstance(user, EndUser): + tenant_id = user.tenant_id + else: + return if current_span: - current_span.set_attribute("service.tenant.id", user.current_tenant_id) + current_span.set_attribute("service.tenant.id", tenant_id) current_span.set_attribute("service.user.id", user.id)