1. 功能简介
在企业级使用场景中,Dify 平台的业务数据分散在各个工作空间与应用内,难以统一汇总到企业自有数据系统,导致以下痛点:- 数据孤岛:无法对跨工作空间的应用运行、Token 消耗、用户行为进行全局分析。
- 整合成本高:缺乏标准化数据输出机制,企业需自行开发定制化数据采集方案。
- 隐私风险:数据推送过程中缺乏敏感内容的可控性,易导致合规问题。
1.1 功能价值
- 标准化兼容:基于 OpenTelemetry 协议,对接企业现有监控系统、数据仓库或 BI 平台。
- 全链路数据覆盖:推送细粒度业务数据,支持用户、应用、工作空间等多维度分析。
- 高可靠保障:通过缓冲区机制应对网络波动,优先保障主业务不受影响。
- 隐私可控:提供开关控制是否推送 Input/Output 等敏感内容,满足合规要求。
- 实时性推送:数据实时传输,支持企业及时进行运营复盘与异常响应。
1.2 适用场景
- 全局运营分析:将 Dify 平台应用运行数据同步到自有 BI 系统进行跨部门评估。
- 成本精细化核算:按工作空间/应用/用户维度统计 Token 消耗,进行成本分摊与优化。
- 性能监控与排查:监控请求耗时、失败率等指标,快速定位问题。
- 合规数据管理:严格控制敏感数据输出,仅推送非敏感统计维度数据。
1.3 核心概念
数据传输与标准- 数据推送:将 Dify 平台产生的运行日志、监控指标等数据,通过 OTel 标准协议实时传输至外部系统的服务。
- OpenTelemetry(OTel):用于生成、收集、管理和导出遥测数据(度量、日志、追踪)的开源标准。
- 统一端点:将 Metrics 和 Traces 数据同时推至同一个 endpoint 端点下
- 分离端点:将 Metrics 和 Traces 数据分别推至同一个或不同的 endpoints 端点下
- 缓冲区(Buffer):推送服务与接收端之间的临时存储队列(FIFO),用于应对网络抖动或接收端处理缓慢;缓冲区满载时会丢弃新数据以保护主业务。
- 隐私控制开关:控制是否推送 Input/Output 的具体内容;关闭后仅推送 Message ID 等元数据,需企业自行回查内容。
1.4 数据字典
关于数据推送功能的详细数据字段定义、指标说明及日志格式,请参阅 Data Dictionary。2. 操作说明
2.0 快速开始
数据推送的典型配置流程包括:进入配置页面 > 填写 OTel 参数 > 测试连通性 > 保存配置 > 启动推送服务。- 进入配置页面 登录企业管理后台,进入【数据治理】>【数据推送配置】。
- 填写 OTel 参数 若服务未连接,点击右上角【参数配置】填写 OpenTelemetry Collector 信息。
- 测试与保存 点击【测试连通性】验证网络与配置有效性,确认无误后保存配置并确认重启服务。
- 启动服务 回到主页面点击【连接并推送数据】启动服务。
2.1 查看服务运行状态
进入【数据推送配置】页面后,默认展示服务的实时运行状态。 状态 1:服务未运行- 页面提示:“未连接,请配置参数并启动连接”。
- 点击右侧【连接并推送数据】按钮开始连接,或点击右上方【参数配置】进入配置流程。
- 状态标识:绿色指示灯 + “服务运行中”。
- 连接信息:本次连接起始时间(YYYY-MM-DD HH:mm:ss)。
- 数据统计:已推送数据量(实时更新,单位:MB/GB)、未推送积压数据量(缓冲区暂存数据)。
- 服务日志:展示 OpenTelemetry 反馈的异常日志、网络异常日志等。
- 状态标识:橙色指示灯 + “服务运行异常”。
异常处理机制说明:
- 推送采用异步机制,不影响主业务链路。
- 推送失败或连接中断时,数据自动存入缓冲区,连接恢复后继续推送。
- 缓冲区满载时优先丢弃最晚的数据,确保主业务用户交互不被阻塞。
- 注意:页面会提示可能导致数据丢失的场景(如推送服务异常、下游消费慢导致缓冲区溢出、系统重启)。
2.2 参数配置
点击【参数配置】弹出配置表单,完成以下设置: 1. 必填配置项- Endpoint URL:OpenTelemetry Collector 端点地址(如
http://otel-collector:4318),需确保 Dify 服务器可访问。 - Transport Protocol(传输协议):
- http/protobuf(推荐默认值)
- grpc(性能更高,适合企业内部稳定网络)
- http/json(仅用于调试,性能较低)
- Compression(压缩方式):
- gzip(推荐默认值)
- none(仅用于调试)
- Timeout:推送超时时间,默认 5 秒。
- Headers:自定义请求头用于鉴权等(如
Authorization: Bearer <token>),支持多行输入。 - 启用 TLS 安全连接:开启后需上传证书文件(Certificate File (CA)、Client Key File、Client Certificate File),生产环境推荐开启。
- 测试连通性:连接校验,提示成功/失败原因(网络不通、证书无效等)。
- 保存配置:弹出确认框“保存应用配置并重启服务?”,确认后保存并返回运行状态页面。
2.3 隐私控制设置
在【数据推送配置】页面的隐私控制区域,可设置:- 推送 Input/Output 内容(开关):
- 开启:推送请求 Input 内容与模型 Output 内容。
- 关闭:仅推送 Message ID、用户 ID、应用 ID 等元数据,不包含具体内容。
- 修改后需点击【保存设置】生效。
2.4 启动与停止推送服务
- 启动服务:未连接状态下,点击【连接并推送数据】,状态变为“服务运行中”。
- 停止服务:运行中状态下,点击【停止推送】,确认后停止,状态变为“未连接”。
3. 故障排查
- 无法连接到 OpenTelemetry Collector:检查 Endpoint URL 是否正确、网络是否连通;开启 TLS 时检查 CA/客户端证书/私钥有效性与格式;使用【测试连通性】查看具体报错并修正配置。
- 数据推送中断:查看运行日志,排查网络波动或 Collector 异常;检查 Collector 是否正常运行、是否达到接收上限。
- 数据积压持续增加:通常是 Collector 消费速度不足或网络延迟导致。建议优化 Collector 资源配置或扩容实例。
- 配置保存失败:检查必填项是否填写完整;若开启 TLS,确认相关证书文件已正确上传。
- 数据丢失:可能发生在服务异常、缓冲区溢出或系统重启时(这是保护主业务的降级策略)。若关键数据不可丢失,建议提升 Collector 处理能力,避免长期积压。
4. 常见问题 (FAQ)
数据推送会影响 Dify 平台主业务性能吗?
不会。数据推送采用异步机制,与主业务链路隔离;缓冲区满载时会丢弃新数据,不会阻塞用户交互或应用运行。数据推送包含哪些内容?
涵盖细粒度信息(以下为示例):- 元数据:Message ID、用户 ID、应用 ID、工作空间 ID、时间戳。
- 运行指标:Token 消耗(输入/输出)、请求耗时(RT)、运行状态(成功/失败)。
- 用户行为:点赞/踩反馈。 (注:可通过隐私控制开关决定是否推送 Input/Output 具体内容)。
为什么会出现数据积压?
通常是 Collector 处理速度慢于数据产生速度,或网络延迟导致。积压的数据会进入缓冲区,连接恢复后继续推送;若缓冲区满载,新数据会被丢弃。生产环境推荐配置是什么?
建议传输协议使用http/protobuf 或 grpc,压缩方式选择 gzip。建议开启 TLS 安全连接并配置鉴权 Headers。若有合规要求,建议关闭 Input/Output 内容推送。
5. 最佳实践
- 安全合规优先:生产环境强烈建议开启 TLS,并配置鉴权 Headers;在对数据隐私有严格要求的场景下,务必关闭 Input/Output 内容推送。
- 实时监控与告警:定期查看管理后台的运行状态与日志;建议在企业 Collector 侧配置监控告警(如连接中断、数据积压超过阈值等),以便及时介入。
- 性能调优:大规模高并发场景下,优先使用
grpc协议;同时确保下游 Collector 资源充足,避免因消费不及导致平台侧缓冲区溢出和数据丢失。