全部文档
文档中心数据流3.0问题排查问题自查与信息采集

问题自查与信息采集

当节点运行失败或结果不符合预期时,请先确认问题能够稳定复现,并记录问题环境、发生时间、操作步骤、期望结果、实际结果和影响范围。如果仍无法解决,再通过所在项目认可的支持渠道提交问题。

排查时应优先使用 DeepFOS Logger 采集复现日志。插件导出的 JSON 已包含接口请求、响应、cURL 和环境版本探测结果,通常不需要再按 F12 手工收集接口信息或单独查询版本。只有涉及组件服务节点时,才建议额外补充组件服务调用日志。

  1. 准备最短复现步骤,并记录问题环境、发生时间、问题页面、数据流和节点等基本信息。

  2. 优先使用 DeepFOS Logger 录制一次完整复现过程,导出 JSON 日志并随工单上传。

  3. 如果问题涉及组件服务节点,再补充相关节点日志或完整运行日志。

  4. 只有无法安装、加载或正常使用 DeepFOS Logger 时,才按本文的替代方式手工收集接口信息和版本号。

开始录制后,按最短步骤复现一次问题,再停止录制并导出 JSON 日志。JSON 是排障交付的首选文件,包含本次会话摘要、扩展版本、环境版本探测结果和接口明细,可以替代手工复制 PayloadResponse、cURL 以及单独查询前后端版本等零散操作。

DeepFOS Logger 会采集录制期间浏览器发起的接口请求,帮助研发定位网络错误、接口错误和常见业务错误。它不是录屏工具,不会记录鼠标点击和页面画面;需要展示页面现象时,请另外截图。

安装、录制和导出方法参见问题日志采集(DeepFOS Logger)使用指南。导出后,请将 JSON 文件与问题基本信息一起作为工单附件上传。

导出的 JSON 日志可能包含 Cookie、Authorization、访问令牌、用户标识或业务数据。请将其作为敏感日志处理,仅通过所在项目认可的工单或文件传输渠道提供给授权排查人员。

DeepFOS Logger 主要采集浏览器发起的接口请求。如果组件服务类型的节点报错,或结果与预期不符,还需要查看数据流后端调用其他组件服务时提交的详细数据。此时可以在【设置-PY 设置】的公共脚本中临时加入以下配置:

Copy
from deepfos.options import OPTION

OPTION.api.dump_always = True
OPTION.general.log_level = "DEBUG"

具体配置入口参见全局设置

保存后重新调试相关节点,节点日志会输出调用其他组件服务的详细信息和 cURL。请复制完整节点日志并随工单上传。也可以重新运行整个数据流,然后在运行历史中下载完整日志文件。

DEBUG 日志可能包含请求参数和敏感信息。问题定位完成后,建议移除临时配置或恢复原日志级别,避免长期输出大量详细日志。

仅当项目环境不允许安装扩展、扩展无法正常加载,或录制、导出功能不可用时,才需要按以下方式手工收集。使用 DeepFOS Logger 并成功导出 JSON 后,可以跳过本节。

以调试失败为例,前端会调用名为 debug 的后端接口。保存数据流时通常会调用 update 接口,发布时通常会调用 deploy 接口,其他操作也可以用相同方法定位对应请求。

  1. F12 打开浏览器开发者工具。

  2. 切换到 Network 页签,并清空已有请求记录。

  3. 回到数据流页面,重新执行出现问题的操作。

  4. Network 中选择对应请求,分别记录 PayloadResponse 页签内容;建议截图并随工单上传。

  5. 右键请求,选择“复制”→“复制为 cURL(bash)”,将内容保存为文本附件。

cURL 可能包含 Cookie、Authorization、访问令牌、用户标识或业务数据。向无关人员传递或粘贴到公共渠道前,请先完成脱敏;提供给授权排查人员时,也应遵循所在项目的数据安全要求。

部分问题已在后续版本中修复,因此排查时需要同时提供数据流前端、后端和 deepfos 版本。最准确的版本信息可以由环境运维人员提供;如果项目环境允许,也可以按以下方式自行查看。

  1. 打开任意数据流元素。

  2. 删除浏览器地址中第一个问号及其后的查询参数。

  3. 在地址末尾追加 /git-version

  4. 访问该地址。浏览器会直接显示版本信息,或下载包含版本信息的文件。

更多说明参见服务版本号查询

  1. 打开任意数据流元素。

  2. 删除浏览器地址中第一个问号及其后的查询参数。

  3. 在地址末尾追加 /version.json

  4. 访问该地址,浏览器会直接显示前端版本信息。

  1. 在数据流中添加【PY 代码】节点。

  2. 输入以下代码并调试该节点:

Copy
import deepfos

return deepfos.__version__
  1. 调试结果即为当前数据流后端环境安装的 deepfos 版本。

其他 Python 依赖也可以用相同方式检查,例如 duckdb

出现内存告警、Pod 重启、队列长期不推进或疑似 OOM 时,先暂停相关定时计划和批量调用,避免重复提交继续放大负载。然后记录异常实例 ID、精确时间范围、触发方式、启动参数、异常节点以及同一时段的其他运行实例。

建议保留异常前后至少 1 小时的以下信息:

  • 容器或 Pod 的内存、CPU、重启次数和 memory request/limit;

  • 实例【所有节点】日志、耗时甘特图,以及正常实例作为对照;

  • 数据流运行进程 PID、并行父进程 PID 和对应时间,获取方法参见运行历史

  • 应用日志中的 WORKER TIMEOUTSIGKILLStarted process for runparent process 等关键词;

  • Kubernetes 的 OOMKilled、Pod 事件、容器上一次运行日志,或节点操作系统的 OOM killer 记录。

SIGKILL 也可能来自超时或人工终止,不能单独作为 OOM 结论。应使用“实例 ID + 时间窗口 + PID”把实例日志与进程 RSS、容器内存上限和系统事件对应起来。

具备相应权限时,可由运维人员参考以下命令采集;实际 Pod 名称、命名空间和日志位置以项目部署为准:

Copy
ps -o pid,ppid,rss,%mem,etime,cmd -p <pid1>,<pid2>
kubectl describe pod <pod-name> -n <namespace>
kubectl logs <pod-name> -n <namespace> --previous

如果问题是大量实例处于【队列中】,还应同时提供最早排队时间、队列数量、启动中/进行中/取消中数量和工作进程池配置,并按并发、队列与内存优化区分正常满载与出队、启动链路异常。

  • 问题现象、期望结果和实际结果;

  • 可重复执行的操作步骤;

  • 问题发生时间、数据流名称、节点名称和节点编码;

  • DeepFOS Logger 导出的 JSON 日志;

  • 必要的页面截图;

  • 涉及组件服务节点时,补充相关节点日志或完整运行日志;

  • 问题影响范围,以及是否存在临时绕过方式。

不需要再重复提供 F12 中的 PayloadResponse、cURL 或单独查询前后端版本。

除问题基本信息、复现步骤和必要截图外,请补充:

  • 对应接口的 PayloadResponse 和脱敏后的 cURL;

  • 涉及组件服务节点时,补充相关节点日志或完整运行日志;

  • 数据流前端、后端和 deepfos 版本号。

回到顶部

咨询热线

400-821-9199