持久化是擷取的一部分。
WAL 不是後續階段崩潰時可以消失的內部佇列。復原以 WAL 中最後一個有效提交標記為權威;ETL 從該邊界開始工作。
記錄應用程式實際做了什麼。Chronicle 將擷取到的證據寫入本機 WAL,轉換為 canonical session,再針對明確授權的 loopback 目標重播。
目前範圍Linux · 明文 HTTP/1.1 · 本機檔案系統
從觀察到的流量,走向明確授權的重播。 擷取 → WAL → ETL → canonical session → 重播
手寫 fixture 只能涵蓋開發者記得明確寫下的內容。Chronicle 從已發生的行為開始:socket 證據、有序位元組,以及協定層級的請求與回應關係。不需要在應用程式加入探針,也不會把生產目標帶進重播。
從工作負載外部擷取,不必把程式碼寫進應用程式。
每個交接只有一個工作。Capture 負責觀察;WAL 讓持久前綴成為權威;ETL 負責重建;canonical model 讓重播不依賴擷取與儲存細節。
從受監督的命令、程序或 cgroup 外部掛接。Chronicle 觀察 socket 生命週期與明文 payload 證據,不需要在應用程式加入 instrumentation。
socket → 證據將證據附加到分段 WAL v1。提交標記與同步操作定義中斷後下游可以信任的範圍。
附加 → 提交讀取復原後已提交的前綴,重建有明確上限的 HTTP/1.1 session,記錄遺失,並針對每個完成定稿的 epoch 發佈一個結果固定且可重現的 canonical session。
復原 → 轉換保存不依賴協定與儲存方式的錄製,包含連線、操作、完整性與重播屬性。
發佈 → 檢查先規劃。只對已授權的 loopback 目標執行;explicit-target mode 在提供 `--execute` 前維持 dry-run。記錄中的生產目的地永遠不會成為 fallback。
規劃 → 驗證WAL 不是後續階段崩潰時可以消失的內部佇列。復原以 WAL 中最後一個有效提交標記為權威;ETL 從該邊界開始工作。
不用傳送流量就能檢查計畫。明確目標執行需要 loopback 對應、主機一致、操作授權與 `--execute`;寫入還需要 `--allow-write`。
最短的實用路徑就在命令介面中:先檢查就緒狀態,再錄製工作負載,檢查結果,最後在新的受監督複本中重播。
chronicle / 公開命令
$ chronicle doctor
$ chronicle record --name checkout -- ./my-app
$ chronicle list
$ chronicle inspect checkout
$ chronicle replay checkout -- ./my-app以下是目前公開的 0.1.x 介面。刻意省略輸出;需要機器可讀合約時使用 `--format json`。
Linux 上有明確上限的明文 HTTP/1.1 live capture;所有平台的 fixture 錄製;本機檔案系統錄製;安全 loopback 重播;`doctor` 就緒檢查。
TLS 解密、HTTP/2+、PostgreSQL/S3 持久化、靜態資料加密、完整資料遮罩、Docker 與 Kubernetes 封裝。