From b5dbabf5d0b3969a6f8f0201956cf52baea0f076 Mon Sep 17 00:00:00 2001 From: GareArc Date: Tue, 10 Feb 2026 00:09:41 -0800 Subject: [PATCH] feat(telemetry): add missing ID fields for name attributes - Add dify.credential.id to node execution events - Add dify.event.id to all telemetry events (APP_CREATED, APP_UPDATED, APP_DELETED, FEEDBACK_CREATED) This ensures all .name fields have corresponding .id fields for reliable aggregation and deduplication. --- api/enterprise/telemetry/enterprise_trace.py | 1 + api/enterprise/telemetry/metric_handler.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/api/enterprise/telemetry/enterprise_trace.py b/api/enterprise/telemetry/enterprise_trace.py index 38919ae290..a6893c7c88 100644 --- a/api/enterprise/telemetry/enterprise_trace.py +++ b/api/enterprise/telemetry/enterprise_trace.py @@ -366,6 +366,7 @@ class EnterpriseOtelTrace: "dify.node.loop_index": info.loop_index, "dify.plugin.name": metadata.get("plugin_name"), "dify.credential.name": metadata.get("credential_name"), + "dify.credential.id": metadata.get("credential_id"), "dify.dataset.ids": self._maybe_json(metadata.get("dataset_ids")), "dify.dataset.names": self._maybe_json(metadata.get("dataset_names")), } diff --git a/api/enterprise/telemetry/metric_handler.py b/api/enterprise/telemetry/metric_handler.py index e0a6c4998d..381dca3350 100644 --- a/api/enterprise/telemetry/metric_handler.py +++ b/api/enterprise/telemetry/metric_handler.py @@ -213,6 +213,7 @@ class EnterpriseMetricHandler: attrs = { "dify.app.id": payload.get("app_id"), "dify.tenant_id": envelope.tenant_id, + "dify.event.id": envelope.event_id, "dify.app.mode": payload.get("mode"), } @@ -249,6 +250,7 @@ class EnterpriseMetricHandler: attrs = { "dify.app.id": payload.get("app_id"), "dify.tenant_id": envelope.tenant_id, + "dify.event.id": envelope.event_id, } emit_metric_only_event( @@ -283,6 +285,7 @@ class EnterpriseMetricHandler: attrs = { "dify.app.id": payload.get("app_id"), "dify.tenant_id": envelope.tenant_id, + "dify.event.id": envelope.event_id, } emit_metric_only_event( @@ -318,6 +321,7 @@ class EnterpriseMetricHandler: attrs: dict = { "dify.message.id": payload.get("message_id"), "dify.tenant_id": envelope.tenant_id, + "dify.event.id": envelope.event_id, "dify.app_id": payload.get("app_id"), "dify.conversation.id": payload.get("conversation_id"), "gen_ai.user.id": payload.get("from_end_user_id") or payload.get("from_account_id"),