Skip to main content
将应用运行指标、token 消耗、用户行为等业务数据,通过 OpenTelemetry(OTel)开源标准实时推送至企业自有监控系统、BI 平台或数据仓库。 跨工作空间汇总这些数据,可支撑运营分析、成本分摊与合规报告。 推送在企业管理后台配置:打开侧边栏的 数据推送 即可。各遥测信号的字段级定义详见 数据推送数据字典。

开始之前

  • 一个 Dify 部署可访问的 OpenTelemetry Collector,并已启用与所选传输协议匹配的 OTLP receiver(按惯例 HTTP 用 4318 端口,gRPC 用 4317)。出口连接由平台内置的 Dify Enterprise Collector 发起。
  • 企业管理后台的访问权限。

推送哪些数据

数据推送通过 OTLP 传输的是 Metrics 和 Traces。Logs 不经推送通道:结构化事件日志以 JSON 形式写入 API/Worker Pod 标准输出。如需检索,自行部署 Promtail、Fluent Bit 或 Vector 等采集器接入 Loki/OpenSearch。该日志管道独立于本页配置的 OTel Collector。

配置连接

  1. 在企业管理后台侧边栏打开 数据推送。
  2. 点击右上角 参数配置,打开配置弹窗。
  3. 选择 配置模式:统一配置 将 Metrics 和 Traces 推送到同一个端点(使用 OpenTelemetry Collector 时推荐);分别配置 在 Traces 和 Metrics 两个标签页中分别设置端点。
  4. 填写连接参数:
    • Endpoint URL:OpenTelemetry Collector 端点地址,协议头须为 http://、https://、grpc:// 或 grpcs://(如 http://otel-collector:4318)。使用 https:// 或 grpcs:// 端点即启用 TLS;协议头不决定传输格式,传输格式由 Transport Protocol 单独选择,需与 Collector 的 receiver 匹配。
    • Transport Protocol:http/protobuf(推荐)、grpc(性能更高,适合企业内部稳定网络)或 http/json(仅用于调试,性能较低)。
    • Compression:gzip(推荐)或 none。
    • Timeout:推送超时时间,以秒为单位的时长写法,如 5s。
    • Headers:用于鉴权等用途的键值对(如 Authorization: Bearer <token>),点击 添加 Header 逐条添加。
    • 高级设置(TLS 端点适用):上传 Certificate File (CA),即签发 Collector 服务端证书的 CA 证书(自签名证书上传自有 CA,公网可信证书上传对应公共 CA 的证书,如 Let’s Encrypt 根证书)。仅在开启 跳过证书验证 时可省略(生产环境不建议跳过)。如需 双向 TLS (mTLS),再上传 Client Key File 与 Client Certificate File。
  5. 点击 测试连通性,校验连接并提示成功或失败原因(网络不通、证书无效等)。
  6. 点击 保存配置,在确认弹窗中点击 确认重启并应用。服务运行中保存会自动重启推送服务,可能产生短暂的数据传输中断。
生产环境使用 TLS 端点,并配置鉴权 Headers。

启动与停止推送服务

  • 启动:未运行状态下,点击 连接并推送数据 并确认,状态变为 服务运行中。
  • 停止:运行中状态下,点击 停止推送服务 并确认,状态变为 服务未运行;停止会中断数据传输。

验证配置

以下检查默认你的 Collector 已将指标路由至 Prometheus、链路路由至 Jaeger;若查询无结果,先排查这段路由。Prometheus 中的指标名为下划线形式(dify.requests.total 对应 dify_requests_total)。
  1. 在 数据推送配置 页面确认状态显示为 服务运行中。
  2. 触发运行已发布工作流,确认 Prometheus 可查询到 dify_requests_total{type="workflow"}。
  3. 运行多节点工作流,确认 Jaeger 可查看到完整 dify.workflow.run 与 dify.node.execution 链路。
  4. 在 Studio(Dify 应用编排界面)调试工作流,确认 Prometheus 可查询到 dify_requests_total{type="draft_node"},Jaeger 中出现 dify.node.execution.draft Span。
  5. 验证工具调用、知识库检索与内容审核事件可正确在日志平台展现(依赖「推送哪些数据」一节所述的标准输出日志管道)。
  6. 在内容推送关闭(默认状态,见「控制 Input/Output 内容推送」)的情况下,验证敏感字段已被 ref:{id_type}={uuid} 脱敏替代。门控字段清单见 数据推送数据字典。
Trace 平台的 Operation Name 下拉框只会显示当前后端已经接收到的 Span 名称,不会预先列出全部产品支持的 Span。

监控推送服务

进入 数据推送配置 页面(即侧边栏 数据推送 打开的页面)后,默认展示服务的实时运行状态。 状态 1:服务未运行
  • 页面提示「未连接,请配置参数并启动连接」。
  • 点击右侧 连接并推送数据 开始连接,或点击右上方 参数配置 进入配置流程。
状态 2:服务运行中 页面展示以下关键信息:
  • 状态标识:绿色指示灯 + 服务运行中。
  • 本次连接起始时间:当前连接的开始时间(YYYY-MM-DD HH:mm:ss)。
  • 数据统计:已推送数据量(实时更新,单位 MB/GB)与 未推送积压数据量(缓冲区暂存数据)。
  • 最近数据推送记录:展示 OpenTelemetry 反馈的异常日志、网络异常日志等。
状态 3:服务异常
  • 状态标识:橙色指示灯 + 服务异常。需检查 最近数据推送记录 中的日志并修复异常,避免数据丢失。
推送采用异步机制,不影响主业务链路。推送失败或连接中断时,数据自动存入 FIFO 缓冲区,连接恢复后继续推送;内置 Span 队列容量为 2048 个 Span,每 5 秒批量刷出一次,缓冲区满载时丢弃最新数据,确保主业务用户交互不被阻塞。Metrics 指标与结构化事件日志走独立路径,不受此队列限制。页面会提示可能导致数据丢失的场景:推送服务异常、下游消费慢导致缓冲区溢出、系统重启。
定期在此查看运行状态与日志,并在自有 Collector 侧配置告警(如连接中断、数据积压超过阈值等),以便及时介入。

控制 Input/Output 内容推送

是否推送 Input/Output 的具体内容由 Dify API 服务的环境变量 ENTERPRISE_INCLUDE_CONTENT 控制(默认 false),修改后需重新部署生效,详见 环境变量参考。
  • 关闭(默认):内容字段以 ref:{id_type}={uuid} 格式的引用串替代,Message ID、用户 ID、应用 ID 等元数据仍会推送;可凭引用串中的 UUID 在 Dify 数据库中回查对应记录(如工作流运行、消息)。
  • 开启:推送请求输入与模型输出的原文。
对数据隐私有严格要求的场景,保持内容推送关闭。

生产环境规划

架构与责任边界

下图展示了 Dify Enterprise 内部遥测引擎与企业可观测栈的对接架构与责任边界:
  1. Dify API 生成业务 Metric、Trace 和业务事件,先写入内置缓冲区,再由 OTel SDK 异步发送。
  2. Dify Enterprise Collector 通过 OTLP gRPC 接收数据,使用 batch、aggregation 等 Processor 处理,同时将推送服务的运行状态(连接时间、已推送量等)写入 Enterprise DB 供管理后台展示。
  3. 其 Exporter 将数据发送到客户提供的 OpenTelemetry Collector;出口地址、协议、TLS 和鉴权由数据推送配置决定。
  4. 客户 Collector 将数据路由到 Prometheus/Thanos(Metrics)、Jaeger/Tempo(Traces)等后端,Grafana 或企业 BI 工具从这些后端查询展示数据。
责任边界:无需改动 Dify 内部的 Buffer、OTel SDK、Enterprise Collector Processor 或 Enterprise DB。需要自行规划的是出口 Collector、后端存储、查询展示、告警、访问控制和数据保留策略。

规划 Collector 资源

先估算每日数据量:
以下规划对象是客户可观测栈中的 OpenTelemetry Collector,不是 Dify Enterprise Collector。
大规模高并发场景下,优先使用 grpc 协议,并确保 Collector 资源充足:下游消费不及会导致平台侧缓冲区溢出和数据丢失。 各档次的并发阈值因工作流复杂度、节点数量和消息频率差异较大,以上规格为参考起点,应在采购前以实际业务峰值流量压测验证。

数据保留

以下为自有可观测平台的建议起始保留期(Dify 不负责存储,存储成本需自行规划):
  • Metrics 常见起始保留期:15~30 天,趋势分析可延长至 90 天。
  • Trace 常见起始保留期:3~7 天。

故障排查

  • 无法连接到 OpenTelemetry Collector:检查 Endpoint URL 是否正确、网络是否连通;TLS 端点需检查 CA、客户端证书与私钥的有效性和格式。使用 测试连通性 查看具体报错并修正配置。
  • 数据推送中断:查看 最近数据推送记录,排查网络波动或 Collector 异常;检查 Collector 是否正常运行、是否达到接收上限。
  • 数据积压持续增加:Collector 消费速度慢于数据产生速度,或网络延迟较高。积压数据暂存缓冲区,连接恢复后继续推送;缓冲区满载时丢弃新数据。建议优化 Collector 资源配置或扩容实例。
  • 配置保存失败:检查必填项是否填写完整;TLS 端点需确认相关证书文件已正确上传。
  • 数据丢失:可能发生在服务异常、缓冲区溢出或系统重启时(这是保护主业务的降级策略)。若关键数据不可丢失,建议提升 Collector 处理能力,避免长期积压。