Skip to content

ordine-browse-traces

Use when Pipeline 运行失败或结果异常,需要读取 Job 的 Trace 日志、分析错误原因并给出修复建议。触发词:browse traces、job失败、排查运行失败、trace日志、pipeline报错、job error。

Skill 内容

复制以下内容并提供给你的 AI agent:

markdown
---
name: ordine-browse-traces
description: Use when Pipeline 运行失败或结果异常,需要读取 Job 的 Trace 日志、分析错误原因并给出修复建议。触发词:browse traces、job失败、排查运行失败、trace日志、pipeline报错、job error。
---

# 浏览 Trace 日志

## 概述

当 Pipeline 运行后 Job 状态变为 `failed` 或结果不符合预期时,需要通过 Trace 日志定位根因并给出修复方案。

## 诊断流程

### 第一步:获取 Job 状态

```bash
# 查看 Job 详情
curl -s http://localhost:9433/api/jobs/<JOB_ID> | python3 -m json.tool

关注字段:

字段说明
statusfailed = 运行失败,completed = 已完成(可能有部分错误)
error顶层错误信息(如果有)
result运行结果摘要
startedAt / completedAt计算运行耗时,判断是否超时

第二步:读取 Trace 日志

bash
# 获取该 Job 的所有 Trace
curl -s http://localhost:9433/api/jobs/<JOB_ID>/traces | python3 -m json.tool

Trace 数据结构:

字段类型说明
idnumber自增 ID
jobIdstring所属 Job ID
level"info" | "warn" | "error" | "debug"日志级别
messagestring日志内容
createdAttimestamp时间戳

第三步:按级别过滤分析

优先查看 error 级别的 Trace:

bash
# 只看错误日志
curl -s http://localhost:9433/api/jobs/<JOB_ID>/traces | \
  python3 -c "import sys,json; [print(t['message']) for t in json.load(sys.stdin) if t['level']=='error']"

再查看 warn 级别了解潜在问题:

bash
# 只看警告日志
curl -s http://localhost:9433/api/jobs/<JOB_ID>/traces | \
  python3 -c "import sys,json; [print(t['message']) for t in json.load(sys.stdin) if t['level']=='warn']"

第四步:常见失败模式

模式Trace 特征修复方向
Operation 执行失败error 消息包含 Operation ID检查该 Operation 的 executor 配置(script/skill/prompt)
输入路径不存在error 消息包含 ENOENTnot found检查运行时传入的 -i 路径是否正确
Skill 调用超时长时间无新 Trace,最终 failed检查 Skill 服务是否在线,网络是否通畅
脚本权限不足error 消息包含 EACCESpermission denied检查脚本文件的执行权限
节点连接断裂warn 消息提示某节点未收到输入检查 Pipeline DAG 中节点之间的连线

第五步:确认修复

修复问题后重新运行 Pipeline:

bash
# 通过 CLI
ordine run <PIPELINE_ID> -i <INPUT_PATH>

# 通过 API
curl -X POST http://localhost:9433/api/pipelines/<PIPELINE_ID>/run \
  -H "Content-Type: application/json" \
  -d '{ "inputPath": "<INPUT_PATH>" }'

验证新 Job 状态为 completed 且无 error 级别 Trace。

Released under the MIT License.