fix: Enhances tenant ID handling in telemetry (#20304)

Signed-off-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
-LAN- 2025-05-27 17:44:40 +08:00 committed by GitHub
parent d467c8536b
commit 4c46f04d77
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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)