> ## Documentation Index
> Fetch the complete documentation index at: https://enterprise-docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 数据推送数据字典

> Dify Enterprise 数据推送功能所发出全部遥测信号的字段级参考

本页是 Dify Enterprise 通过数据推送发出的全部遥测信号的字段级参考。推送服务的配置与运维见 [数据推送](/zh/3.13.x/administer/data-push)。

## 快速检索与排查指南

不必逐行阅读所有字典表。请根据实际的可观测性诊断需求，直接查阅对应信号层级。

### 场景与信号映射表

| 排查场景与业务需求 | 优先使用信号 | 对应目标平台 | 关键信号/事件示例 |
| :- | :- | :- | :- |
| 请求总数、成功率、错误率、token 消耗统计 | `Metrics` (Counter) | Prometheus / Grafana | `dify.requests.total`、`dify.tokens.total` |
| 系统吞吐量、响应延时分布 (P50/P95/P99) | `Metrics` (Histogram) | Prometheus / Grafana | `dify.workflow.duration`、`dify.message.time_to_first_token` |
| 工作流为何变慢、瓶颈节点与错误定位 | `Traces` (Spans) | Jaeger / Tempo | `dify.workflow.run`、`dify.node.execution` |
| 某次运行的详细输入输出、工具参数、检索结果 | `Structured Logs` | Loki / Elasticsearch | `span_detail`、`dify.tool.execution` |

### 遥测数据流向与系统路由

Dify 导出的遥测信号完全遵循 OpenTelemetry 规范，可通过标准 OTel Collector 进行拆分与路由：

```text theme={null}
Dify Enterprise 遥测引擎 (OTel Exporter)
 ├── Metrics  ──► Prometheus Exporter ──► Prometheus / Grafana Dashboard
 ├── Traces   ──► OTel / OTLP gRPC   ──► Jaeger / Grafana Tempo
 └── Logs     ──► Pod 标准输出（JSON）──► 自备日志采集器 ──► Loki / Elasticsearch
```

***

## 传输规则与通用属性

### 资源属性（Resource Attributes）

附加在每一个导出的 OTel 信号上的全局通用环境信息：

| 属性 | 类型 | 示例 | 说明 |
| :- | :- | :- | :- |
| `service.name` | string | `dify` | 产生遥测数据的服务名称 |
| `host.name` | string | `dify-api-7f8b` | 产生遥测实例的主机或 Pod 标识 |

### 链路与实体定位通用属性

Span 上使用带 `dify.` 前缀的形式；指标标签与日志中的关联键（`trace_id`、`span_id`、`tenant_id`、`user_id`）使用无前缀形式。表中并列两个名称的行即为这类成对字段。

| 属性 | 类型 | 说明 |
| :- | :- | :- |
| `tenant_id` / `dify.tenant_id` | string | 租户标识符 |
| `app_id` / `dify.app_id` | string | 应用标识符；指标与日志查询筛选的核心维度 |
| `dify.workflow.id` | string | Workflow 定义 ID |
| `dify.workflow.run_id` | string | Workflow 单次运行实例 ID |
| `dify.message.id` | string | 消息唯一 ID |
| `dify.conversation.id` | string | 会话上下文 ID（可选） |
| `trace_id` / `dify.trace_id` | string | OTel 关联 Trace ID（32 位十六进制字符串） |
| `span_id` | string | OTel Span ID（16 位十六进制字符串） |
| `user_id` / `gen_ai.user.id` | string | 触发请求的终端用户标识（可选） |
| `apprunner.environment_id` | string | 部署环境：本次运行所属的环境 ID |
| `apprunner.deployment_id` | string | 部署环境：本次运行所属的应用部署 ID |
| `apprunner.revision_id` | string | 部署环境：本次运行使用的部署修订版本 ID |

三个 `apprunner.*` 属性适用于部署环境的工作流 Span（`dify.workflow.run`）、节点 Span（`dify.node.execution`）及其伴随日志，不作为指标标签。

### OTel 与 Prometheus 命名转换规则

OTel 标准信号在接入 Prometheus 后会自动转换为下划线格式：Counter 增加 `_total` 后缀；Histogram 会生成 `_bucket`、`_sum` 和 `_count` 序列，并追加单位后缀（单位为 `s` 的指标追加 `_seconds`），见下表示例。下表为常见指标的命名转换示例，其余指标遵循相同规则。

| OTel 标准名称 | Prometheus 查询名称 |
| :- | :- |
| `dify.requests.total` | `dify_requests_total` |
| `dify.errors.total` | `dify_errors_total` |
| `dify.tokens.total` | `dify_tokens_total` |
| `dify.workflow.duration` | `dify_workflow_duration_seconds_bucket` 等 Histogram 序列 |

### 空值与内容门控规则

* **空值行为**：在 Trace Span 中未赋值的属性将被直接省略；在结构化日志 JSON 输出中则显式展示为 `null`。
* **内容门控机制**：包含敏感文本的属性（如 Input/Output/Query/Prompt）由部署侧的 `ENTERPRISE_INCLUDE_CONTENT` 设置门控。内容推送关闭（默认）时，原文会被格式化引用字符串替代（如 `ref:{id_type}={uuid}`），而不会被替换为 `null`。
* **高基数警示**：`tenant_id`、`app_id`、`trace_id` 属于高基数（High-Cardinality）维度，请勿将无限制的文本字段作为 Prometheus 标签存储。

***

## 链路追踪（Traces & Spans）

调用链路完整呈现了单次调用的时序与嵌套拓扑。OTel `trace_id` 由业务运行 ID 确定性推导，同一次运行的所有信号共享同一个值，在 Jaeger / Tempo 中按它检索。

`dify.trace_id` 属性保存原始业务 UUID（如工作流运行 ID），用于与业务数据关联。

### dify.workflow\.run

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.trace_id` | string | 业务 Trace ID （工作流运行 ID） |
| `dify.tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.workflow.id` | string | 工作流定义 ID |
| `dify.workflow.run_id` | string | 本次运行的唯一 ID |
| `dify.workflow.status` | string | `succeeded` （成功）, `failed` （失败）, `stopped` （停止） 等 |
| `dify.workflow.error` | string | 失败时的错误信息 |
| `dify.workflow.elapsed_time` | float | 总执行时间（秒） |
| `dify.invoke_from` | string | `api`、`webapp`、`debug` |
| `dify.conversation.id` | string | 会话 ID（可选） |
| `dify.message.id` | string | 消息 ID（可选） |
| `dify.invoked_by` | string | 触发运行的用户 ID |
| `gen_ai.usage.total_tokens` | int | 所有节点的总 token 数（可选） |
| `gen_ai.user.id` | string | 终端用户标识符（可选） |
| `dify.parent.trace_id` | string | 父工作流 Trace ID（可选） |
| `dify.parent.workflow.run_id` | string | 父工作流运行 ID（可选） |
| `dify.parent.node.execution_id` | string | 父节点执行 ID（可选） |
| `dify.parent.app.id` | string | 父应用 ID（可选） |

### dify.node.execution

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.trace_id` | string | 业务 Trace ID |
| `dify.tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.workflow.id` | string | 工作流定义 ID |
| `dify.workflow.run_id` | string | 工作流运行 ID |
| `dify.message.id` | string | 消息 ID（可选） |
| `dify.conversation.id` | string | 会话 ID（可选） |
| `dify.node.execution_id` | string | 唯一节点执行 ID |
| `dify.node.id` | string | 工作流图中的节点 ID |
| `dify.node.type` | string | 节点类型（见附录） |
| `dify.node.title` | string | 显示标题 |
| `dify.node.status` | string | `succeeded` （成功）, `failed` （失败） |
| `dify.node.error` | string | 失败时的错误信息 |
| `dify.node.elapsed_time` | float | 执行时间（秒） |
| `dify.node.index` | int | 执行顺序索引 |
| `dify.node.predecessor_node_id` | string | 触发节点 ID |
| `dify.node.iteration_id` | string | 迭代 ID（可选） |
| `dify.node.loop_id` | string | 循环 ID（可选） |
| `dify.node.parallel_id` | string | 并行分支 ID（可选） |
| `dify.node.invoked_by` | string | 触发执行的用户 ID |
| `gen_ai.usage.input_tokens` | int | 提示词 token 数（仅限 LLM 节点） |
| `gen_ai.usage.output_tokens` | int | 补全 token 数（仅限 LLM 节点） |
| `gen_ai.usage.total_tokens` | int | 总 token 数（仅限 LLM 节点） |
| `gen_ai.request.model` | string | LLM 模型名称（仅限 LLM 节点） |
| `gen_ai.provider.name` | string | LLM 提供商名称（仅限 LLM 节点） |
| `gen_ai.user.id` | string | 终端用户标识符（可选） |

### dify.node.execution.draft

属性与 `dify.node.execution` 相同，但仅在用户于画布中点击「单节点测试」或「草稿预览运行」时产生，用于分离生产与测试遥测数据。

***

## 监控指标（Metrics）

### 计数器（Counter）

所有计数器都是累积的，且不参与采样：链路采样率（`ENTERPRISE_OTEL_SAMPLING_RATE`，详见 [环境变量参考](/zh/3.13.x/deploy/advanced-configuration/environment-variables)）不影响计数器。

#### token 计数器

| 指标 (Metric) | 单位 | 描述 |
| :- | :- | :- |
| `dify.tokens.total` | `{token}` | 消耗的总 token 数 |
| `dify.tokens.input` | `{token}` | 输入（提示词）token 数 |
| `dify.tokens.output` | `{token}` | 输出（补全）token 数 |

**标签（Labels）**：`tenant_id`、`app_id`、`operation_type`、`model_provider`、`model_name`、`node_type`（仅 `node_execution`）

<Warning>
  工作流级别的 `dify.tokens.total` 已包含所有 `node_execution` 的 token。查询时通过 `operation_type` 过滤，避免重复计算。
</Warning>

**token 层级与查询模式**

token 指标在多个层级发出。理解层级结构可以防止重复计算：

```text theme={null}
App-level total (应用级总计)
├── workflow          ← 所有 node_execution token 的总和 (不要同时相加)
│   └── node_execution ← 每个节点的细分
├── message           ← 独立 (仅限非工作流聊天应用)
├── rule_generate     ← 独立辅助 LLM 调用
├── code_generate     ← 独立辅助 LLM 调用
├── structured_output ← 独立辅助 LLM 调用
└── instruction_modify← 独立辅助 LLM 调用
```

**关键规则**：`workflow` token 已经包含了所有 `node_execution` 的 token。切勿将两者相加。

* **token 指标上的可用标签**：`tenant_id`、`app_id`、`operation_type`、`model_provider`、`model_name`、`node_type`。
* **应用名称** 仅存在于链路侧：见「Span 伴随日志」一节中的 `dify.app.name` 字段，不作为指标标签；指标查询使用 `app_id`。
* **费用**：仅在节点伴随日志的 `dify.node.total_price` 字段提供（见「Span 伴随日志」），没有对应指标。

#### 请求计数器

| 指标 (Metric) | 单位 | 描述 |
| :- | :- | :- |
| `dify.requests.total` | `{request}` | 总操作次数 |

`type` 标签标识操作类型（如 `dify_requests_total{type="workflow"}`），其余标签随 `type` 而异：

| 类型 (Type) | 附加标签 |
| :- | :- |
| `workflow` | `tenant_id`、`app_id`、`status`、`invoke_from` |
| `node` | `tenant_id`、`app_id`、`node_type`、`model_provider`、`model_name`、`status` |
| `draft_node` | `tenant_id`、`app_id`、`node_type`、`model_provider`、`model_name`、`status` |
| `message` | `tenant_id`、`app_id`、`model_provider`、`model_name`、`status`、`invoke_from` |
| `tool` | `tenant_id`、`app_id`、`tool_name` |
| `moderation` | `tenant_id`、`app_id` |
| `suggested_question` | `tenant_id`、`app_id`、`model_provider`、`model_name` |
| `dataset_retrieval` | `tenant_id`、`app_id` |
| `generate_name` | `tenant_id`、`app_id` |
| `prompt_generation` | `tenant_id`、`app_id`、`operation_type`、`model_provider`、`model_name`、`status` |

#### 错误计数器

| 指标 (Metric) | 单位 | 描述 |
| :- | :- | :- |
| `dify.errors.total` | `{error}` | 总失败操作数 |

错误计数器同样使用 `type` 标签，其余标签随 `type` 而异：

| 类型 (Type) | 附加标签 |
| :- | :- |
| `workflow` | `tenant_id`、`app_id` |
| `node` | `tenant_id`、`app_id`、`node_type`、`model_provider`、`model_name` |
| `draft_node` | `tenant_id`、`app_id`、`node_type`、`model_provider`、`model_name` |
| `message` | `tenant_id`、`app_id`、`model_provider`、`model_name` |
| `tool` | `tenant_id`、`app_id`、`tool_name` |
| `prompt_generation` | `tenant_id`、`app_id`、`operation_type`、`model_provider`、`model_name` |

#### 其他计数器

| 指标 (Metric) | 单位 | 标签 |
| :- | :- | :- |
| `dify.feedback.total` | `{feedback}` | `tenant_id`、`app_id`、`rating` |
| `dify.dataset.retrievals.total` | `{retrieval}` | `tenant_id`、`app_id`、`dataset_id`、`embedding_model_provider`、`embedding_model`、`rerank_model_provider`、`rerank_model` |
| `dify.app.created.total` | `{app}` | `tenant_id`、`app_id`、`mode` |
| `dify.app.updated.total` | `{app}` | `tenant_id`、`app_id` |
| `dify.app.deleted.total` | `{app}` | `tenant_id`、`app_id` |

### 直方图（Histograms）

<Note>
  Counter 只能计算平均值，而平均值会被极端值扭曲。Histogram 支持计算 **P50 / P95 / P99 分位数**，更准确地描述实际分布。

  Prometheus 中每个 Histogram 展开为三类序列：`_bucket` / `_sum` / `_count`。低流量时间窗中 P95/P99 可能返回 `NaN`，建议扩大时间窗口。当耗时集中在 5 秒以内时（如 TTFT 或工具调用），分位数精度有限，如需高精度评估，建议延长查询窗口或联系 Dify 团队获取 bucket 配置说明。
</Note>

| 指标 (Metric) | 单位 | 标签 |
| :- | :- | :- |
| `dify.workflow.duration` | `s` | `tenant_id`、`app_id`、`status` |
| `dify.node.duration` | `s` | `tenant_id`、`app_id`、`node_type`、`model_provider`、`model_name`、`plugin_name` |
| `dify.message.duration` | `s` | `tenant_id`、`app_id`、`model_provider`、`model_name` |
| `dify.message.time_to_first_token` | `s` | `tenant_id`、`app_id`、`model_provider`、`model_name` |
| `dify.tool.duration` | `s` | `tenant_id`、`app_id`、`tool_name` |
| `dify.prompt_generation.duration` | `s` | `tenant_id`、`app_id`、`operation_type`、`model_provider`、`model_name` |

***

## 结构化日志（Structured Logs）

结构化日志提供业务明细数据。日志分为两类：Span 伴随日志与独立业务日志。

<Note>
  `ENTERPRISE_OTEL_SAMPLING_RATE` 仅影响发送到 Trace 后端（Jaeger/Tempo）的 Span 数量。结构化日志（`span_detail`、`metric_only`）始终以 100% 的频率写入 Pod 标准输出，不受采样率控制。
</Note>

### Span 伴随日志（Span Companion Logs）

伴随 Span 的日志。信号类型：`span_detail`。这类日志与 Trace Span 强绑定（共享 `trace_id` 和 `span_id`），包含内容门控控制的详细上下文：

#### dify.workflow\.run 伴随日志

**通用属性**：所有 Span 属性（见 Traces 部分）加上：

**事件属性**:

* `dify.event.name`: `dify.workflow.run`
* `dify.event.signal`: `span_detail`
* `trace_id`、`span_id`、`tenant_id`、`user_id`

| 附加属性 | 类型 | 始终存在 | 描述 |
| :- | :- | :- | :- |
| `dify.app.name` | string | 否 | 应用显示名称 |
| `dify.workspace.name` | string | 否 | 工作区显示名称 |
| `dify.workflow.version` | string | 是 | 工作流定义版本 |
| `dify.workflow.inputs` | string/JSON | 是 | 输入参数（受内容门控控制） |
| `dify.workflow.outputs` | string/JSON | 是 | 输出结果（受内容门控控制） |
| `dify.workflow.query` | string | 否 | 用户查询文本（受内容门控控制） |

#### dify.node.execution 和 dify.node.execution.draft 伴随日志

**通用属性**：所有 Span 属性（见 Traces 部分）加上：

**事件属性**:

* `dify.event.name`: `dify.node.execution` 或 `dify.node.execution.draft`
* `dify.event.signal`: `span_detail`
* `trace_id`、`span_id`、`tenant_id`、`user_id`

| 附加属性 | 类型 | 始终存在 | 描述 |
| :- | :- | :- | :- |
| `dify.app.name` | string | 否 | 应用显示名称 |
| `dify.workspace.name` | string | 否 | 工作区显示名称 |
| `dify.invoke_from` | string | 否 | 调用来源 |
| `gen_ai.tool.name` | string | 否 | 工具名称（仅限工具节点） |
| `dify.node.total_price` | float | 否 | 成本（仅限 LLM 节点） |
| `dify.node.currency` | string | 否 | 货币代码（仅限 LLM 节点） |
| `dify.node.iteration_index` | int | 否 | 迭代索引（迭代节点） |
| `dify.node.loop_index` | int | 否 | 循环索引（循环节点） |
| `dify.plugin.name` | string | 否 | 插件名称（工具/知识库节点） |
| `dify.credential.name` | string | 否 | 凭证名称（插件节点） |
| `dify.credential.id` | string | 否 | 凭证 ID（插件节点） |
| `dify.dataset.ids` | JSON array | 否 | 数据集 ID（知识库节点） |
| `dify.dataset.names` | JSON array | 否 | 数据集名称（知识库节点） |
| `dify.node.inputs` | string/JSON | 是 | 节点输入（受内容门控控制） |
| `dify.node.outputs` | string/JSON | 是 | 节点输出（受内容门控控制） |
| `dify.node.process_data` | string/JSON | 否 | 处理数据（受内容门控控制） |

### 独立日志（Standalone Logs）

没有结构化 Span 的日志。信号类型为 `metric_only`：事件只产生指标与这条日志，没有对应的 Span。

#### dify.message.run

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.message.run` |
| `dify.event.signal` | string | `metric_only` |
| `trace_id` | string | OTel Trace ID（32 位十六进制） |
| `span_id` | string | OTel Span ID（16 位十六进制） |
| `tenant_id` | string | 租户标识符 |
| `user_id` | string | 用户标识符（可选） |
| `dify.app_id` | string | 应用标识符 |
| `dify.message.id` | string | 消息标识符 |
| `dify.conversation.id` | string | 会话 ID（可选） |
| `dify.workflow.run_id` | string | 工作流运行 ID（可选） |
| `dify.invoke_from` | string | `service-api`、`web-app`、`debugger`、`explore` |
| `gen_ai.provider.name` | string | LLM 提供商 |
| `gen_ai.request.model` | string | LLM 模型 |
| `gen_ai.usage.input_tokens` | int | 输入 token 数 |
| `gen_ai.usage.output_tokens` | int | 输出 token 数 |
| `gen_ai.usage.total_tokens` | int | 总 token 数 |
| `dify.message.status` | string | `succeeded` （成功）, `failed` （失败） |
| `dify.message.error` | string | 错误信息（如果失败） |
| `dify.message.duration` | float | 持续时间（秒） |
| `dify.message.time_to_first_token` | float | 首字时间 (TTFT)（秒） |
| `dify.message.inputs` | string/JSON | 输入（受内容门控控制） |
| `dify.message.outputs` | string/JSON | 输出（受内容门控控制） |

#### dify.tool.execution

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.tool.execution` |
| `dify.event.signal` | string | `metric_only` |
| `trace_id` | string | OTEL Trace ID |
| `span_id` | string | OTEL Span ID |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.message.id` | string | 消息标识符 |
| `dify.tool.name` | string | 工具名称 |
| `dify.tool.duration` | float | 持续时间（秒） |
| `dify.tool.status` | string | `succeeded` （成功）, `failed` （失败） |
| `dify.tool.error` | string | 错误信息（如果失败） |
| `dify.tool.inputs` | string/JSON | 输入（受内容门控控制） |
| `dify.tool.outputs` | string/JSON | 输出（受内容门控控制） |
| `dify.tool.parameters` | string/JSON | 参数（受内容门控控制） |
| `dify.tool.config` | string/JSON | 配置（受内容门控控制） |

#### dify.moderation.check

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.moderation.check` |
| `dify.event.signal` | string | `metric_only` |
| `trace_id` | string | OTEL Trace ID |
| `span_id` | string | OTEL Span ID |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.message.id` | string | 消息标识符 |
| `dify.moderation.type` | string | `input` （输入）, `output` （输出） |
| `dify.moderation.action` | string | `pass` （通过）, `block` （拦截）, `flag` （标记） |
| `dify.moderation.flagged` | boolean | 是否被标记 |
| `dify.moderation.categories` | JSON array | 被标记的类别 |
| `dify.moderation.query` | string | 内容（受内容门控控制） |

#### dify.suggested\_question.generation

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.suggested_question.generation` |
| `dify.event.signal` | string | `metric_only` |
| `trace_id` | string | OTEL Trace ID |
| `span_id` | string | OTEL Span ID |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.message.id` | string | 消息标识符 |
| `dify.suggested_question.count` | int | 问题数量 |
| `dify.suggested_question.duration` | float | 持续时间（秒） |
| `dify.suggested_question.status` | string | `succeeded` （成功）, `failed` （失败） |
| `dify.suggested_question.error` | string | 错误信息（如果失败） |
| `dify.suggested_question.questions` | JSON array | 问题（受内容门控控制） |

#### dify.dataset.retrieval

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.dataset.retrieval` |
| `dify.event.signal` | string | `metric_only` |
| `trace_id` | string | OTEL Trace ID |
| `span_id` | string | OTEL Span ID |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.message.id` | string | 消息标识符 |
| `dify.dataset.id` | string | 数据集标识符 |
| `dify.dataset.name` | string | 数据集名称 |
| `dify.dataset.embedding_providers` | JSON array | 嵌入模型提供商（每个数据集一个） |
| `dify.dataset.embedding_models` | JSON array | 嵌入模型（每个数据集一个） |
| `dify.retrieval.rerank_provider` | string | 重排模型提供商 |
| `dify.retrieval.rerank_model` | string | 重排模型名称 |
| `dify.retrieval.query` | string | 搜索查询（受内容门控控制） |
| `dify.retrieval.document_count` | int | 检索到的文档数 |
| `dify.retrieval.duration` | float | 持续时间（秒） |
| `dify.retrieval.status` | string | `succeeded` （成功）, `failed` （失败） |
| `dify.retrieval.error` | string | 错误信息（如果失败） |
| `dify.dataset.documents` | JSON array | 文档（受内容门控控制） |

#### dify.generate\_name.execution

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.generate_name.execution` |
| `dify.event.signal` | string | `metric_only` |
| `trace_id` | string | OTEL Trace ID |
| `span_id` | string | OTEL Span ID |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.conversation.id` | string | 会话标识符 |
| `dify.generate_name.duration` | float | 持续时间（秒） |
| `dify.generate_name.status` | string | `succeeded` （成功）, `failed` （失败） |
| `dify.generate_name.error` | string | 错误信息（如果失败） |
| `dify.generate_name.inputs` | string/JSON | 输入（受内容门控控制） |
| `dify.generate_name.outputs` | string | 生成的名称（受内容门控控制） |

#### dify.prompt\_generation.execution

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.prompt_generation.execution` |
| `dify.event.signal` | string | `metric_only` |
| `trace_id` | string | OTEL Trace ID |
| `span_id` | string | OTEL Span ID |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.prompt_generation.operation_type` | string | 操作类型（见附录） |
| `gen_ai.provider.name` | string | LLM 提供商 |
| `gen_ai.request.model` | string | LLM 模型 |
| `gen_ai.usage.input_tokens` | int | 输入 token 数 |
| `gen_ai.usage.output_tokens` | int | 输出 token 数 |
| `gen_ai.usage.total_tokens` | int | 总 token 数 |
| `dify.prompt_generation.duration` | float | 持续时间（秒） |
| `dify.prompt_generation.status` | string | `succeeded` （成功）, `failed` （失败） |
| `dify.prompt_generation.error` | string | 错误信息（如果失败） |
| `dify.prompt_generation.instruction` | string | 指令（受内容门控控制） |
| `dify.prompt_generation.output` | string/JSON | 输出（受内容门控控制） |

#### dify.app.created

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.app.created` |
| `dify.event.signal` | string | `metric_only` |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.app.mode` | string | `chat`、`completion`、`agent-chat`、`workflow` |
| `dify.app.created_at` | string | 时间戳 (ISO 8601) |

#### dify.app.updated

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.app.updated` |
| `dify.event.signal` | string | `metric_only` |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.app.updated_at` | string | 时间戳 (ISO 8601) |

#### dify.app.deleted

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.app.deleted` |
| `dify.event.signal` | string | `metric_only` |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.app.deleted_at` | string | 时间戳 (ISO 8601) |

#### dify.feedback.created

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.feedback.created` |
| `dify.event.signal` | string | `metric_only` |
| `trace_id` | string | OTEL Trace ID |
| `span_id` | string | OTEL Span ID |
| `tenant_id` | string | 租户标识符 |
| `dify.app_id` | string | 应用标识符 |
| `dify.message.id` | string | 消息标识符 |
| `dify.feedback.rating` | string | `like` （点赞）, `dislike` （点踩）, `null` |
| `dify.feedback.content` | string | 反馈文本（受内容门控控制） |
| `dify.feedback.created_at` | string | 时间戳 (ISO 8601) |

#### dify.telemetry.rehydration\_failed

遥测管道健康诊断事件：缓冲的遥测载荷无法重建（rehydrate）处理时发出。持续出现说明遥测数据在丢失。

| 属性 | 类型 | 描述 |
| :- | :- | :- |
| `dify.event.name` | string | `dify.telemetry.rehydration_failed` |
| `dify.event.signal` | string | `metric_only` |
| `tenant_id` | string | 租户标识符 |
| `dify.telemetry.error` | string | 错误信息 |
| `dify.telemetry.payload_type` | string | 载荷类型（见附录） |
| `dify.telemetry.correlation_id` | string | 关联 ID |

***

## 内容门控属性（Content-Gated Attributes）

以下字段包含用户输入、模型输出、文档内容、工具参数或反馈内容。

仅当部署侧开启内容推送（`ENTERPRISE_INCLUDE_CONTENT`，默认 `false`，详见 [环境变量参考](/zh/3.13.x/deploy/advanced-configuration/environment-variables)）时才会发送原始值；关闭时这些属性被替换为 `ref:{id_type}={uuid}`。

`id_type` 为关联实体名（如 `workflow_run_id`、`node_execution_id`、`message_id`），凭该 ID 在 Dify 数据库中查询对应记录即可取回原文。

| 属性 | 信号 |
| :- | :- |
| `dify.workflow.inputs` | `dify.workflow.run` |
| `dify.workflow.outputs` | `dify.workflow.run` |
| `dify.workflow.query` | `dify.workflow.run` |
| `dify.node.inputs` | `dify.node.execution` |
| `dify.node.outputs` | `dify.node.execution` |
| `dify.node.process_data` | `dify.node.execution` |
| `dify.message.inputs` | `dify.message.run` |
| `dify.message.outputs` | `dify.message.run` |
| `dify.tool.inputs` | `dify.tool.execution` |
| `dify.tool.outputs` | `dify.tool.execution` |
| `dify.tool.parameters` | `dify.tool.execution` |
| `dify.tool.config` | `dify.tool.execution` |
| `dify.moderation.query` | `dify.moderation.check` |
| `dify.suggested_question.questions` | `dify.suggested_question.generation` |
| `dify.retrieval.query` | `dify.dataset.retrieval` |
| `dify.dataset.documents` | `dify.dataset.retrieval` |
| `dify.generate_name.inputs` | `dify.generate_name.execution` |
| `dify.generate_name.outputs` | `dify.generate_name.execution` |
| `dify.prompt_generation.instruction` | `dify.prompt_generation.execution` |
| `dify.prompt_generation.output` | `dify.prompt_generation.execution` |
| `dify.feedback.content` | `dify.feedback.created` |

`dify.node.execution.draft` 的门控字段与 `dify.node.execution` 相同。

<Warning>
  生产环境建议默认关闭内容推送。确认数据分类、访问控制、脱敏、保留期和审计要求后，再按需在受控环境中开启。
</Warning>

***

## 附录

### 操作类型

`workflow`、`node_execution`、`message`、`rule_generate`、`code_generate`、`structured_output`、`instruction_modify`

以上取值属于 token 指标的 `operation_type` 标签与 `dify.prompt_generation.operation_type`。请求与错误计数器使用独立的 `type` 标签，取值见「计数器」一节。

### 节点类型

`start`、`end`、`answer`、`llm`、`knowledge-retrieval`、`knowledge-index`、`if-else`、`code`、`template-transform`、`question-classifier`、`http-request`、`tool`、`datasource`、`variable-aggregator`、`loop`、`iteration`、`parameter-extractor`、`assigner`、`document-extractor`、`list-operator`、`agent`、`trigger-webhook`、`trigger-schedule`、`trigger-plugin`、`human-input`

### 工作流状态

`running`、`succeeded`、`failed`、`stopped`、`partial-succeeded`、`paused`

### 载荷类型

`workflow`、`node`、`message`、`tool`、`moderation`、`suggested_question`、`dataset_retrieval`、`generate_name`、`prompt_generation`、`app`、`feedback`

### Invoke From 取值

* 工作流 Span（`dify.workflow.run` 上的 `dify.invoke_from`）：`api`、`webapp`、`debug`
* 消息日志（`dify.message.run` 上的 `dify.invoke_from`）：`service-api`、`web-app`、`debugger`、`explore`

### 空值行为

* **Spans**：具有空值的属性将被省略。
* **Logs**：具有空值的属性在 JSON 中显示为 `null`。
* **Content-Gated**：被替换为引用字符串，而不是设置为 `null`。
