Diagnostics
Các cờ chẩn đoán
Cờ chẩn đoán cho phép bạn bật các nhật ký gỡ lỗi có mục tiêu mà không cần bật ghi nhật ký chi tiết ở mọi nơi. Các cờ là tùy chọn bật và không có hiệu lực trừ khi một hệ thống con kiểm tra chúng.
Cách hoạt động
- Cờ là chuỗi (không phân biệt chữ hoa chữ thường).
- Bạn có thể bật cờ trong cấu hình hoặc thông qua một ghi đè env.
- Hỗ trợ ký tự đại diện:
telegram.*khớp vớitelegram.http*bật tất cả cờ
Bật qua cấu hình
{ "diagnostics": { "flags": ["telegram.http"] }}Nhiều cờ:
{ "diagnostics": { "flags": ["telegram.http", "brave.http", "gateway.*"] }}Khởi động lại Gateway sau khi thay đổi cờ.
Ghi đè env (một lần)
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payloadTắt tất cả cờ:
OPENCLAW_DIAGNOSTICS=0OPENCLAW_DIAGNOSTICS=0 là một ghi đè tắt ở cấp tiến trình: nó tắt
các cờ từ cả env và cấu hình cho tiến trình đó.
Cờ profiling
Cờ profiler bật các khoảng đo thời gian có mục tiêu mà không nâng cấp độ ghi nhật ký toàn cục. Chúng bị tắt theo mặc định.
Bật tất cả các span được kiểm soát bởi profiler cho một lần chạy Gateway:
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway runChỉ bật các span profiler điều phối phản hồi:
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway runChỉ bật các span profiler khởi động app-server/công cụ/luồng của Codex:
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway runBật cờ profiler từ cấu hình:
{ "diagnostics": { "flags": ["reply.profiler", "codex.profiler"] }}Khởi động lại Gateway sau khi thay đổi cờ cấu hình. Để tắt một cờ profiler,
hãy xóa nó khỏi diagnostics.flags và khởi động lại. Để tạm thời tắt mọi
cờ chẩn đoán ngay cả khi cấu hình bật cờ profiler, hãy khởi động tiến trình với:
OPENCLAW_DIAGNOSTICS=0 openclaw gateway runArtifact timeline
Cờ timeline ghi các sự kiện đo thời gian khởi động và thời gian chạy có cấu trúc cho
các harness QA bên ngoài:
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway runBạn cũng có thể bật cờ này trong cấu hình:
{ "diagnostics": { "flags": ["timeline"] }}Đường dẫn tệp timeline vẫn đến từ
OPENCLAW_DIAGNOSTICS_TIMELINE_PATH. Khi timeline chỉ được bật từ
cấu hình, các span tải cấu hình sớm nhất không được phát ra vì OpenClaw chưa
đọc cấu hình; các span khởi động tiếp theo sử dụng cờ cấu hình.
OPENCLAW_DIAGNOSTICS=1, OPENCLAW_DIAGNOSTICS=all, và
OPENCLAW_DIAGNOSTICS=* cũng bật timeline vì chúng bật mọi
cờ chẩn đoán. Ưu tiên timeline khi bạn chỉ muốn artifact đo thời gian
JSONL.
Bản ghi timeline sử dụng envelope openclaw.diagnostics.v1. Sự kiện có thể bao gồm
id tiến trình, tên pha, tên span, thời lượng, id Plugin, số lượng dependency,
mẫu độ trễ event-loop, tên thao tác provider, trạng thái thoát của tiến trình con,
và tên/thông báo lỗi khởi động. Hãy xem các tệp timeline là artifact chẩn đoán
cục bộ; rà soát chúng trước khi chia sẻ ra ngoài máy của bạn.
Nhật ký được ghi ở đâu
Cờ phát nhật ký vào tệp nhật ký chẩn đoán tiêu chuẩn. Theo mặc định:
/tmp/openclaw/openclaw-YYYY-MM-DD.logNếu bạn đặt logging.file, hãy dùng đường dẫn đó thay thế. Nhật ký là JSONL (một đối tượng JSON trên mỗi dòng). Việc biên tập vẫn áp dụng dựa trên logging.redactSensitive.
Trích xuất nhật ký
Chọn tệp nhật ký mới nhất:
ls -t /tmp/openclaw/openclaw-*.log | head -n 1Lọc chẩn đoán HTTP của Telegram:
rg "telegram http error" /tmp/openclaw/openclaw-*.logLọc chẩn đoán HTTP của Brave Search:
rg "brave http" /tmp/openclaw/openclaw-*.logHoặc tail trong khi tái hiện:
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"Đối với Gateway từ xa, bạn cũng có thể dùng openclaw logs --follow (xem /cli/logs).
Ghi chú
- Nếu
logging.levelđược đặt cao hơnwarn, các nhật ký này có thể bị chặn. Mặc địnhinfolà ổn. brave.httpghi nhật ký URL/tham số truy vấn yêu cầu Brave Search, trạng thái/thời gian phản hồi, và các sự kiện cache hit/miss/write. Nó không ghi nhật ký khóa API hoặc phần thân phản hồi, nhưng truy vấn tìm kiếm có thể nhạy cảm.- Có thể để cờ luôn bật; chúng chỉ ảnh hưởng đến dung lượng nhật ký cho hệ thống con cụ thể.
- Dùng /logging để thay đổi đích, cấp độ, và biên tập nhật ký.