mirror of
https://github.com/langgenius/dify.git
synced 2026-05-06 02:18:08 +08:00
refactor(telemetry): migrate to type-safe enum-based event routing with centralized enterprise filtering
Changes: - Change TelemetryEvent.name from str to TraceTaskName enum for type safety - Remove hardcoded trace_task_name_map from facade (no mapping needed) - Add centralized enterprise-only filter in TelemetryFacade.emit() - Rename is_telemetry_enabled() to is_enterprise_telemetry_enabled() - Update all 11 call sites to pass TraceTaskName enum values - Remove redundant enterprise guard from draft_trace.py - Add unit tests for TelemetryFacade.emit() routing (6 tests) - Add unit tests for TraceQueueManager telemetry guard (5 tests) - Fix test fixture scoping issue for full test suite compatibility - Fix tenant_id handling in agent tool callback handler Benefits: - 100% type-safe: basedpyright catches errors at compile time - No string literals: eliminates entire class of typo bugs - Single point of control: centralized filtering in facade - All guards removed except facade - Zero regressions: 4887 tests passing Verification: - make lint: PASS - make type-check: PASS (0 errors, 0 warnings) - pytest: 4887 passed, 8 skipped
This commit is contained in:
@ -55,7 +55,7 @@ from core.model_runtime.model_providers.__base.large_language_model import Large
|
||||
from core.ops.ops_trace_manager import TraceQueueManager
|
||||
from core.prompt.utils.prompt_message_util import PromptMessageUtil
|
||||
from core.prompt.utils.prompt_template_parser import PromptTemplateParser
|
||||
from core.telemetry import TelemetryContext, TelemetryEvent, TelemetryFacade
|
||||
from core.telemetry import TelemetryContext, TelemetryEvent, TelemetryFacade, TraceTaskName
|
||||
from events.message_event import message_was_created
|
||||
from extensions.ext_database import db
|
||||
from libs.datetime_utils import naive_utc_now
|
||||
@ -411,7 +411,7 @@ class EasyUIBasedGenerateTaskPipeline(BasedGenerateTaskPipeline):
|
||||
if trace_manager:
|
||||
TelemetryFacade.emit(
|
||||
TelemetryEvent(
|
||||
name="message",
|
||||
name=TraceTaskName.MESSAGE_TRACE,
|
||||
context=TelemetryContext(
|
||||
tenant_id=self._application_generate_entity.app_config.tenant_id,
|
||||
app_id=self._application_generate_entity.app_config.app_id,
|
||||
|
||||
Reference in New Issue
Block a user