开始之前
- 一个 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。
配置连接
- 在企业管理后台侧边栏打开 数据推送。
- 点击右上角 参数配置,打开配置弹窗。
- 选择 配置模式:统一配置 将 Metrics 和 Traces 推送到同一个端点(使用 OpenTelemetry Collector 时推荐);分别配置 在 Traces 和 Metrics 两个标签页中分别设置端点。
- 填写连接参数:
- 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。
- Endpoint URL:OpenTelemetry Collector 端点地址,协议头须为
- 点击 测试连通性,校验连接并提示成功或失败原因(网络不通、证书无效等)。
- 点击 保存配置,在确认弹窗中点击 确认重启并应用。服务运行中保存会自动重启推送服务,可能产生短暂的数据传输中断。
生产环境使用 TLS 端点,并配置鉴权 Headers。
启动与停止推送服务
- 启动:未运行状态下,点击 连接并推送数据 并确认,状态变为 服务运行中。
- 停止:运行中状态下,点击 停止推送服务 并确认,状态变为 服务未运行;停止会中断数据传输。
验证配置
以下检查默认你的 Collector 已将指标路由至 Prometheus、链路路由至 Jaeger;若查询无结果,先排查这段路由。Prometheus 中的指标名为下划线形式(dify.requests.total 对应 dify_requests_total)。
- 在 数据推送配置 页面确认状态显示为 服务运行中。
- 触发运行已发布工作流,确认 Prometheus 可查询到
dify_requests_total{type="workflow"}。 - 运行多节点工作流,确认 Jaeger 可查看到完整
dify.workflow.run与dify.node.execution链路。 - 在 Studio(Dify 应用编排界面)调试工作流,确认 Prometheus 可查询到
dify_requests_total{type="draft_node"},Jaeger 中出现dify.node.execution.draftSpan。 - 验证工具调用、知识库检索与内容审核事件可正确在日志平台展现(依赖「推送哪些数据」一节所述的标准输出日志管道)。
- 在内容推送关闭(默认状态,见「控制 Input/Output 内容推送」)的情况下,验证敏感字段已被
ref:{id_type}={uuid}脱敏替代。门控字段清单见 数据推送数据字典。
Trace 平台的 Operation Name 下拉框只会显示当前后端已经接收到的 Span 名称,不会预先列出全部产品支持的 Span。
监控推送服务
进入 数据推送配置 页面(即侧边栏 数据推送 打开的页面)后,默认展示服务的实时运行状态。 状态 1:服务未运行- 页面提示「未连接,请配置参数并启动连接」。
- 点击右侧 连接并推送数据 开始连接,或点击右上方 参数配置 进入配置流程。
- 状态标识:绿色指示灯 + 服务运行中。
- 本次连接起始时间:当前连接的开始时间(YYYY-MM-DD HH:mm:ss)。
- 数据统计:已推送数据量(实时更新,单位 MB/GB)与 未推送积压数据量(缓冲区暂存数据)。
- 最近数据推送记录:展示 OpenTelemetry 反馈的异常日志、网络异常日志等。
- 状态标识:橙色指示灯 + 服务异常。需检查 最近数据推送记录 中的日志并修复异常,避免数据丢失。
控制 Input/Output 内容推送
是否推送 Input/Output 的具体内容由 Dify API 服务的环境变量ENTERPRISE_INCLUDE_CONTENT 控制(默认 false),修改后需重新部署生效,详见 环境变量参考。
- 关闭(默认):内容字段以
ref:{id_type}={uuid}格式的引用串替代,Message ID、用户 ID、应用 ID 等元数据仍会推送;可凭引用串中的 UUID 在 Dify 数据库中回查对应记录(如工作流运行、消息)。 - 开启:推送请求输入与模型输出的原文。
生产环境规划
架构与责任边界
下图展示了 Dify Enterprise 内部遥测引擎与企业可观测栈的对接架构与责任边界:- Dify API 生成业务 Metric、Trace 和业务事件,先写入内置缓冲区,再由 OTel SDK 异步发送。
- Dify Enterprise Collector 通过 OTLP gRPC 接收数据,使用 batch、aggregation 等 Processor 处理,同时将推送服务的运行状态(连接时间、已推送量等)写入 Enterprise DB 供管理后台展示。
- 其 Exporter 将数据发送到客户提供的 OpenTelemetry Collector;出口地址、协议、TLS 和鉴权由数据推送配置决定。
- 客户 Collector 将数据路由到 Prometheus/Thanos(Metrics)、Jaeger/Tempo(Traces)等后端,Grafana 或企业 BI 工具从这些后端查询展示数据。
规划 Collector 资源
先估算每日数据量:大规模高并发场景下,优先使用
grpc 协议,并确保 Collector 资源充足:下游消费不及会导致平台侧缓冲区溢出和数据丢失。
各档次的并发阈值因工作流复杂度、节点数量和消息频率差异较大,以上规格为参考起点,应在采购前以实际业务峰值流量压测验证。数据保留
以下为自有可观测平台的建议起始保留期(Dify 不负责存储,存储成本需自行规划):- Metrics 常见起始保留期:15~30 天,趋势分析可延长至 90 天。
- Trace 常见起始保留期:3~7 天。
故障排查
- 无法连接到 OpenTelemetry Collector:检查 Endpoint URL 是否正确、网络是否连通;TLS 端点需检查 CA、客户端证书与私钥的有效性和格式。使用 测试连通性 查看具体报错并修正配置。
- 数据推送中断:查看 最近数据推送记录,排查网络波动或 Collector 异常;检查 Collector 是否正常运行、是否达到接收上限。
- 数据积压持续增加:Collector 消费速度慢于数据产生速度,或网络延迟较高。积压数据暂存缓冲区,连接恢复后继续推送;缓冲区满载时丢弃新数据。建议优化 Collector 资源配置或扩容实例。
- 配置保存失败:检查必填项是否填写完整;TLS 端点需确认相关证书文件已正确上传。
- 数据丢失:可能发生在服务异常、缓冲区溢出或系统重启时(这是保护主业务的降级策略)。若关键数据不可丢失,建议提升 Collector 处理能力,避免长期积压。