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)