CL3 v1.6.2 今日工作紀錄
CL3 v1.6.2 今日工作紀錄
版本結果
今天已完成 CL3 v1.6.2 的開發收斂、DEV 驗收、STG 驗收與 Git tag 發布。
-
main 已推送
-
v1.6.2tag 已建立並 push -
DEV 驗收通過
-
STG 驗收通過
本次主題
Logging v1 / Admin Log Center MVP 正式落地
這次不是單點修 bug,而是把 CL3 的 log 能力往前推了一個完整層級,從原本偏向容器 stdout 與人工追查,升級為:
-
有結構化欄位
-
可查詢
-
可過濾
-
可追 run_id / symbol / driver
-
可在 Admin 中直接查看
今日完成項目
1. 完成 unified system logs v1
建立 system_logs 的統一欄位結構,正式導入以下核心欄位:
-
timestamp_utc -
level -
service -
module -
module_version -
event_code -
message -
run_id -
symbol -
driver -
source -
extra_json
同時保留相容舊欄位,避免一次性硬切造成舊流程失效。
2. 完成 DB migration
完成並套用:
-
008_logging_audit_foundation_v1.sql -
009_system_logs_schema_v1.sql
成果包括:
-
system_logs新欄位建立 -
舊資料回填
-
查詢索引建立
-
DEV / STG 兩環境 migration 驗證成功
3. 完成共用 structured logger
完成 core / api / admin 共用 logging helper 串接,支援:
-
stdout JSON line 輸出
-
DB best-effort 寫入
-
自動帶入
service/module/module_version -
可附帶
run_id / symbol / driver / source / extra_json
並補強:
-
DB write skipped 可見化
-
DB write failed 可見化
避免 logging 寫失敗時完全 silent swallow。
4. 完成 core lifecycle logging
已成功導入並實測進 DB 的核心事件:
-
CORE_RUNNER_STARTED -
CORE_TICK_START -
CORE_TICK_DONE
這代表 core tick 的生命週期已經可以被正式追蹤,而不是只能看 console 字串。
5. 完成 asset-level logging
已成功導入並實測進 DB 的資產層事件:
-
ASSET_FETCH_START -
ASSET_FETCH_OK -
ASSET_FETCH_EMPTY -
ASSET_WRITE_OK
這對未來追 driver 問題、空資料問題、基金或 yfinance 異常問題非常重要。
6. 完成 Admin Log Center MVP
新增:
-
/admin/logs
支援:
-
system logs 檢視
-
event_code / service / level / symbol / driver / keyword 查詢
-
基本欄位呈現
-
中英文文案整合
這讓 log 不再只能靠 terminal 或直接查 DB,正式進入後台可視化階段。
7. 修正 DEV 環境兩個重要掛載問題
(1) shared 掛載問題
發現 DEV 容器實際載入的是舊版 shared logging,根因是:
-
docker-compose.dev.yml未掛載./shared:/app/shared
修正後,core/admin/api 才真正吃到新版 logger。
(2) locales 掛載問題
發現 Admin UI 顯示 raw i18n keys,根因是:
-
./admin:/app覆蓋掉 image 內/app/locales -
但 DEV compose 未把 repo 的
./locales掛回容器
修正後補上:
-
./locales:/app/locales:ro
Admin Log Center i18n 恢復正常。
今日驗收結果
DEV 驗收
已確認:
-
migration 成功
-
新 event_code 已寫入 DB
-
CORE_TICK_DONE已取代舊CORE_TICK_END -
ASSET_FETCH_*/ASSET_WRITE_OK成功落地 -
Admin Log Center 可正常使用
-
i18n 顯示正常
STG 驗收
已確認:
-
STG migration 成功
-
core/admin/api 成功重建並啟動
-
structured logs 出現在 container logs
-
新事件成功寫入 STG
system_logs
STG 最近 30 分鐘 event 分布已確認包含:
-
ASSET_FETCH_START -
ASSET_WRITE_OK -
ASSET_FETCH_OK -
ASSET_FETCH_EMPTY -
APP_START -
CORE_TICK_DONE -
CORE_TICK_START -
CORE_RUNNER_STARTED
代表本次功能不只在 DEV 成立,也已在 STG 成立。
Git / Release 結果
今日最終 Git 狀態:
-
main 已同步到 origin/main
-
working tree clean
-
已建立並 push:
-
v1.6.2
-
因此本次工作已正式收斂為:
CL3 v1.6.2 released
本次工作的價值
這次最大的價值不是多一個後台頁,而是 CL3 開始擁有比較完整的「工程除錯基礎設施」。
換句話說,後面遇到這些問題時,會比以前好處理很多:
-
driver 為什麼抓不到
-
哪個 symbol 空資料
-
哪次 tick 失敗
-
哪個模組版本開始異常
-
哪次 STG 與 DEV 行為不同
-
哪個事件在 DB 有落地、哪個只有 stdout
這一步很關鍵,因為它會直接影響未來開發速度與穩定度。
下一步建議
下一輪最值得接的三件事:
1. Log Center detail view
可點開單筆 log 檢視 extra_json 與更多上下文。
2. ERROR / WARN 高亮與快捷篩選
讓異常事件在 UI 中更容易被看見。
3. Access / Audit / System 三類 log 體驗整合
把三種 log 的欄位、查詢與導航體驗再整理成更一致的後台介面。
一句收尾
今天這版不是表面功能,而是把 CL3 從「能跑」往「能追、能查、能維運」再往前推進了一步。
留言
張貼留言