Diagnostics
پرچمهای عیبیابی
پرچمهای عیبیابی به شما امکان میدهند بدون فعال کردن ثبت گزارش پرجزئیات در همهجا، گزارشهای اشکالزدایی هدفمند را فعال کنید. پرچمها اختیاری هستند و مگر اینکه یک زیرسامانه آنها را بررسی کند، اثری ندارند.
نحوه کارکرد
- پرچمها رشته هستند (به بزرگی و کوچکی حروف حساس نیستند).
- میتوانید پرچمها را در پیکربندی یا از طریق یک بازنویسی env فعال کنید.
- نویسههای عام پشتیبانی میشوند:
telegram.*باtelegram.httpمطابقت دارد*همه پرچمها را فعال میکند
فعالسازی از طریق پیکربندی
{ "diagnostics": { "flags": ["telegram.http"] }}چند پرچم:
{ "diagnostics": { "flags": ["telegram.http", "brave.http", "gateway.*"] }}پس از تغییر پرچمها، Gateway را دوباره راهاندازی کنید.
بازنویسی env (یکباره)
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payloadغیرفعال کردن همه پرچمها:
OPENCLAW_DIAGNOSTICS=0OPENCLAW_DIAGNOSTICS=0 یک بازنویسی غیرفعالسازی در سطح فرایند است: پرچمهای
env و پیکربندی را برای آن فرایند غیرفعال میکند.
پرچمهای پروفایلگیری
پرچمهای پروفایلر بازههای زمانبندی هدفمند را بدون افزایش سطحهای ثبت گزارش سراسری فعال میکنند. آنها بهطور پیشفرض غیرفعال هستند.
فعالسازی همه بازههای وابسته به پروفایلر برای یک اجرای Gateway:
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway runفعالسازی فقط بازههای پروفایلر ارسال پاسخ:
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway runفعالسازی فقط بازههای پروفایلر راهاندازی/tool/thread سرور برنامه Codex:
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway runفعالسازی پرچمهای پروفایلر از پیکربندی:
{ "diagnostics": { "flags": ["reply.profiler", "codex.profiler"] }}پس از تغییر پرچمهای پیکربندی، Gateway را دوباره راهاندازی کنید. برای غیرفعال کردن یک پرچم پروفایلر،
آن را از diagnostics.flags حذف کنید و دوباره راهاندازی کنید. برای غیرفعال کردن موقت همه
پرچمهای عیبیابی حتی وقتی پیکربندی پرچمهای پروفایلر را فعال میکند، فرایند را با این دستور شروع کنید:
OPENCLAW_DIAGNOSTICS=0 openclaw gateway runمصنوعات خط زمانی
پرچم timeline رویدادهای زمانبندی ساختاریافته راهاندازی و زمان اجرا را برای
هارنسهای QA بیرونی مینویسد:
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway runمیتوانید آن را در پیکربندی هم فعال کنید:
{ "diagnostics": { "flags": ["timeline"] }}مسیر فایل خط زمانی همچنان از
OPENCLAW_DIAGNOSTICS_TIMELINE_PATH میآید. وقتی timeline فقط از
پیکربندی فعال شده باشد، نخستین بازههای بارگذاری پیکربندی منتشر نمیشوند، زیرا OpenClaw هنوز
پیکربندی را نخوانده است؛ بازههای بعدی راهاندازی از پرچم پیکربندی استفاده میکنند.
OPENCLAW_DIAGNOSTICS=1، OPENCLAW_DIAGNOSTICS=all و
OPENCLAW_DIAGNOSTICS=* نیز خط زمانی را فعال میکنند، زیرا همه
پرچمهای عیبیابی را فعال میکنند. وقتی فقط مصنوع زمانبندی JSONL را میخواهید،
timeline را ترجیح دهید.
رکوردهای خط زمانی از پوشش openclaw.diagnostics.v1 استفاده میکنند. رویدادها میتوانند شامل
شناسههای فرایند، نامهای فاز، نامهای بازه، مدتها، شناسههای Plugin، تعداد وابستگیها،
نمونههای تأخیر حلقه رویداد، نامهای عملیات ارائهدهنده، وضعیت خروج فرایند فرزند،
و نامها/پیامهای خطای راهاندازی باشند. فایلهای خط زمانی را بهعنوان
مصنوعات عیبیابی محلی در نظر بگیرید؛ پیش از اشتراکگذاری بیرون از دستگاه خود، آنها را بازبینی کنید.
گزارشها کجا میروند
پرچمها گزارشها را در فایل گزارش عیبیابی استاندارد منتشر میکنند. بهطور پیشفرض:
/tmp/openclaw/openclaw-YYYY-MM-DD.logاگر logging.file را تنظیم کردهاید، بهجای آن از همان مسیر استفاده کنید. گزارشها JSONL هستند (در هر خط یک شیء JSON). ویرایش اطلاعات حساس همچنان بر اساس logging.redactSensitive اعمال میشود.
استخراج گزارشها
جدیدترین فایل گزارش را انتخاب کنید:
ls -t /tmp/openclaw/openclaw-*.log | head -n 1فیلتر کردن عیبیابی HTTP مربوط به Telegram:
rg "telegram http error" /tmp/openclaw/openclaw-*.logفیلتر کردن عیبیابی HTTP مربوط به Brave Search:
rg "brave http" /tmp/openclaw/openclaw-*.logیا هنگام بازتولید، خروجی را دنبال کنید:
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"برای Gatewayهای راهدور، میتوانید از openclaw logs --follow نیز استفاده کنید (نگاه کنید به /cli/logs).
نکات
- اگر
logging.levelبالاتر ازwarnتنظیم شده باشد، ممکن است این گزارشها سرکوب شوند. مقدار پیشفرضinfoمناسب است. brave.httpنشانیهای URL/پارامترهای پرسوجوی درخواست Brave Search، وضعیت/زمانبندی پاسخ، و رویدادهای برخورد/عدم برخورد/نوشتن کش را ثبت میکند. کلیدهای API یا بدنههای پاسخ را ثبت نمیکند، اما پرسوجوهای جستوجو میتوانند حساس باشند.- فعال نگه داشتن پرچمها ایمن است؛ آنها فقط حجم گزارش را برای زیرسامانه مشخصشده تحت تأثیر قرار میدهند.
- برای تغییر مقصدهای گزارش، سطحها و ویرایش اطلاعات حساس، از /logging استفاده کنید.