📣TiDB Cloud BYOC、TiDB Cloud Filesystem 和 PostgreSQL-compatible TiDB Cloud Starter 全新发布,开放公测中。此页面由 AI 自动翻译,英文原文请见此处。

在文件系统中使用 Journals



在 TiDB Cloud Filesystem 中,你可以使用文件系统日志(Journal)来按顺序、持久地记录 agent 和自动化事件,例如任务开始、完成和交接。你可以读取或搜索这些条目,以追踪发生了什么,以及每个操作是由哪个 agent 执行的。

条目是仅追加的:你可以添加事件,但不能修改已有条目。条目之间通过哈希链关联,因此你可以验证其完整性和顺序。

将产物和工作文件作为文件系统中的常规文件存储。日志(Journal)用于记录事件;它不会重放操作,也不会替代工作流输出。

前提条件

开始之前,请确保:

创建日志(Journal)

为你要记录的工作流创建一个日志(Journal):

ti fs-journal create-journal \ --journal-kind agent \ --title "review task" \ --actor agent:reviewer

如果你省略日志 ID,服务会自动生成一个。请保存返回的 ID,以便后续追加、读取和验证条目。

日志类型、标题和 actor 可提供上下文信息,也有助于你稍后查找相关的工作流记录。

追加条目

向日志(Journal)追加一个事件:

ti fs-journal append-journal-entries \ --journal-id "<journal-id>" \ --idempotency-key review-started \ --entry-json '{"type":"review_started"}'

每个条目都需要一个 type,除非你通过 --entry-type 提供。你还可以包含 summary、actor 和 occurred_at 等字段。

重试此事件时,复用相同的 --idempotency-key 以避免重复条目。对于不同事件,请使用新的 key。

有关所有支持的字段和输入格式,请参见 append-journal-entries 参考文档。

读取和搜索条目

读取单个日志(Journal)

要查看某个日志(Journal)的历史记录,请读取其条目:

ti fs-journal read-journal-entries \ --journal-id "<journal-id>"

默认情况下,条目会按顺序返回,每次调用最多返回 100 条。要获取下一页,请将 <last-seq> 替换为上一页最后一个返回条目的 seq:

ti fs-journal read-journal-entries \ --journal-id "<journal-id>" \ --after-seq "<last-seq>" \ --limit 100

从每一页的最后一个序号继续读取,直到某次成功响应返回空的 entries 数组为止。如果请求失败,请从相同序号重试。你在读取时,活动中的日志(Journal)仍可能接收更多条目;分页不会创建快照。

跨日志(Journal)搜索

在所选文件系统中的多个日志(Journal)里查找 review_started 事件:

ti fs-journal search-journal-entries \ --entry-type review_started \ --limit 100

默认情况下,搜索每次调用最多返回 100 个匹配项。将最后一个匹配项的 cursor 传给下一次请求,并保持相同的过滤条件:

ti fs-journal search-journal-entries \ --entry-type review_started \ --limit 100 \ --cursor "<last-match-cursor>"

持续进行,直到某次成功响应返回空的 matches 数组为止。如果请求失败,请使用相同的 cursor 重试。若要将搜索限制在固定时间范围内,请提供 RFC3339 格式的 --since 和 --until 值,并在分页过程中保持不变。

如果要获取包含完整条目内容的单页结果,请添加 --include-entries。分页时请省略该选项:这种输出不会保留匹配项 cursor。

若要单独获取某个匹配条目,请使用其 journal_id 调用 read-journal-entries,将 --after-seq 设置为该条目 seq 减一后的值,并将 --limit 设置为 1。例如,要读取序号为 42 的条目,请使用 --after-seq 41 --limit 1。

验证日志(Journal)

要检查已存储的日志(Journal)历史在内部是否一致,请验证其哈希链:

ti fs-journal verify-journal \ --journal-id "<journal-id>"

验证成功表示已存储的序列和哈希链是一致的。但这并不能确认 agent 或应用程序所报告事件的准确性。

后续操作

文档内容是否有帮助?