Diagnostics

แฟล็กการวินิจฉัย

แฟล็กการวินิจฉัยจะเปิดใช้งานการบันทึกเพิ่มเติมสำหรับระบบย่อยหนึ่งระบบ โดยไม่เพิ่ม logging.level ทั้งระบบ แฟล็กจะไม่มีผล เว้นแต่ระบบย่อยนั้นจะตรวจสอบแฟล็กดังกล่าว

วิธีการทำงาน

  • แฟล็กเป็นสตริงที่ไม่คำนึงถึงตัวพิมพ์เล็กหรือใหญ่ โดยรวบรวมจาก diagnostics.flags ใน การกำหนดค่า ร่วมกับค่าที่เขียนทับจากตัวแปรสภาพแวดล้อม OPENCLAW_DIAGNOSTICS จากนั้นตัดค่าซ้ำและแปลงเป็นตัวพิมพ์เล็ก
  • name.* ตรงกับทั้ง name เองและทุกค่าภายใต้ name. (ตัวอย่างเช่น telegram.* ตรงกับ telegram.http)
  • * หรือ all เปิดใช้งานทุกแฟล็ก
  • รีสตาร์ต Gateway หลังจากเปลี่ยน diagnostics.flags ในการกำหนดค่า เนื่องจากระบบจะไม่ โหลดค่านี้ใหม่แบบทันที

แฟล็กที่รองรับ

แฟล็ก เปิดใช้งาน
telegram.http การบันทึกข้อผิดพลาด HTTP ของ Telegram Bot API
brave.http การบันทึกคำขอ/การตอบกลับ/แคชของ Brave Search
profiler ตัววิเคราะห์ประสิทธิภาพขั้นตอนตอบกลับและตัววิเคราะห์ประสิทธิภาพเซิร์ฟเวอร์แอป Codex (ทั้งคู่)
reply.profiler เฉพาะตัววิเคราะห์ประสิทธิภาพขั้นตอนตอบกลับ
codex.profiler เฉพาะตัววิเคราะห์ประสิทธิภาพเซิร์ฟเวอร์แอป Codex
timeline อาร์ติแฟกต์ไทม์ไลน์ JSONL แบบมีโครงสร้าง (ดูด้านล่าง)

เปิดใช้งานผ่านการกำหนดค่า

json
{  "diagnostics": {    "flags": ["telegram.http"]  }}

หลายแฟล็ก:

json
{  "diagnostics": {    "flags": ["telegram.http", "brave.http", "gateway.*"]  }}

เขียนทับด้วยตัวแปรสภาพแวดล้อม (ครั้งเดียว)

bash
OPENCLAW_DIAGNOSTICS=telegram.http,brave.http

ค่าจะถูกแยกด้วยเครื่องหมายจุลภาคหรือช่องว่าง ค่าพิเศษ:

ค่า ผล
0, false, off, none ปิดใช้งานทุกแฟล็ก รวมถึงเขียนทับการกำหนดค่าด้วย
1, true, all, * เปิดใช้งานทุกแฟล็ก

OPENCLAW_DIAGNOSTICS=0 ปิดใช้งานแฟล็กจากทั้งตัวแปรสภาพแวดล้อมและการกำหนดค่าสำหรับ โปรเซสนั้น ซึ่งมีประโยชน์เมื่อต้องการปิดเสียงแฟล็กตัววิเคราะห์ประสิทธิภาพที่เปิดค้างไว้ในการกำหนดค่าชั่วคราว โดยไม่ต้องแก้ไขไฟล์

แฟล็กตัววิเคราะห์ประสิทธิภาพ

แฟล็กตัววิเคราะห์ประสิทธิภาพควบคุมช่วงการจับเวลาแบบเบา และไม่มีค่าใช้จ่ายเพิ่มเติมเมื่อปิดใช้งาน

เปิดใช้งานช่วงทั้งหมดที่ควบคุมโดยตัววิเคราะห์ประสิทธิภาพสำหรับการเรียกใช้ Gateway หนึ่งครั้ง:

bash
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway run

เปิดใช้งานเฉพาะช่วงตัววิเคราะห์ประสิทธิภาพการส่งต่อการตอบกลับ:

bash
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway run

เปิดใช้งานเฉพาะช่วงตัววิเคราะห์ประสิทธิภาพการเริ่มต้น/เครื่องมือ/เธรดของเซิร์ฟเวอร์แอป Codex:

bash
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway run

profiler เปิดใช้งานทั้งตัววิเคราะห์ประสิทธิภาพการตอบกลับและตัววิเคราะห์ประสิทธิภาพ Codex ให้ใช้ ชื่อแฟล็กที่ระบุขอบเขตเพื่อเปิดใช้งานเพียงรายการเดียว

หรือตั้งค่าในการกำหนดค่า:

json
{  "diagnostics": {    "flags": ["reply.profiler", "codex.profiler"]  }}

รีสตาร์ต Gateway หลังจากเปลี่ยนแฟล็กในการกำหนดค่า หากต้องการปิดใช้งานแฟล็กตัววิเคราะห์ประสิทธิภาพ ให้นำแฟล็กนั้นออกจาก diagnostics.flags แล้วรีสตาร์ต หรือเริ่มโปรเซสด้วย OPENCLAW_DIAGNOSTICS=0 เพื่อเขียนทับแฟล็กการวินิจฉัยทั้งหมดสำหรับการเรียกใช้ครั้งนั้น

อาร์ติแฟกต์ไทม์ไลน์

แฟล็ก timeline (ชื่อแทน: diagnostics.timeline) จะเขียนเหตุการณ์การจับเวลาการเริ่มต้น และรันไทม์แบบมีโครงสร้างเป็น JSONL สำหรับชุดทดสอบ QA ภายนอก:

bash
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway run

หรือเปิดใช้งานในการกำหนดค่า:

json
{  "diagnostics": {    "flags": ["timeline"]  }}

พาธเอาต์พุตจะมาจาก OPENCLAW_DIAGNOSTICS_TIMELINE_PATH เสมอ แม้ว่า ตัวแฟล็กเองจะตั้งค่าในการกำหนดค่าก็ตาม และไม่มีคีย์การกำหนดค่าสำหรับพาธนี้ เมื่อเปิดใช้งาน timeline จากการกำหนดค่าเพียงอย่างเดียว ช่วงแรกสุดของการโหลดการกำหนดค่า จะหายไป เนื่องจาก OpenClaw ยังไม่ได้อ่านการกำหนดค่า ส่วนช่วงการเริ่มต้นหลังจากนั้น จะถูกบันทึกตามปกติ

OPENCLAW_DIAGNOSTICS=1, =all และ =* จะเปิดใช้งานไทม์ไลน์ด้วย เนื่องจากค่าเหล่านี้ เปิดใช้งานทุกแฟล็ก ควรใช้แฟล็ก timeline ที่ระบุขอบเขตเมื่อคุณต้องการเฉพาะ อาร์ติแฟกต์ JSONL โดยไม่ต้องการแฟล็กการวินิจฉัยอื่นทั้งหมด

ตัวอย่างค่าหน่วงเวลาของลูปเหตุการณ์ในไทม์ไลน์ต้องเลือกรับเพิ่มเติมอีกหนึ่งรายการนอกเหนือจาก timeline: ตั้งค่า OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 (หรือ on/true/yes) พร้อมกับ เปิดใช้งานไทม์ไลน์

ระเบียนไทม์ไลน์ใช้เอนเวโลป openclaw.diagnostics.v1 และอาจประกอบด้วย รหัสโปรเซส ชื่อเฟส ชื่อช่วง ระยะเวลา รหัส Plugin จำนวน การขึ้นต่อกัน ตัวอย่างค่าหน่วงเวลาของลูปเหตุการณ์ ชื่อการดำเนินการของผู้ให้บริการ สถานะการออกของโปรเซสลูก และชื่อ/ข้อความข้อผิดพลาดในการเริ่มต้น ให้ถือว่าไฟล์ไทม์ไลน์เป็นอาร์ติแฟกต์การวินิจฉัยภายในเครื่อง และตรวจสอบก่อนแชร์ออกนอกเครื่องของคุณ

บันทึกถูกเก็บไว้ที่ใด

แฟล็กจะส่งบันทึกไปยังไฟล์บันทึกการวินิจฉัยมาตรฐาน โดยค่าเริ่มต้นคือ:

Code
/tmp/openclaw/openclaw-YYYY-MM-DD.log

หากตั้งค่า logging.file ให้ใช้พาธนั้นแทน บันทึกอยู่ในรูปแบบ JSONL (หนึ่งออบเจ็กต์ JSON ต่อหนึ่งบรรทัด) การปกปิดข้อมูลยังคงใช้ตาม logging.redactSensitive ดู การบันทึก สำหรับรายละเอียดทั้งหมดเกี่ยวกับการกำหนดพาธไฟล์บันทึก การหมุนเวียนไฟล์ และ รูปแบบการปกปิดข้อมูล

แยกข้อมูลบันทึก

เลือกไฟล์บันทึกล่าสุด:

bash
ls -t /tmp/openclaw/openclaw-*.log | head -n 1

กรองการวินิจฉัย HTTP ของ Telegram:

bash
rg "telegram http error" /tmp/openclaw/openclaw-*.log

กรองการวินิจฉัย HTTP ของ Brave Search:

bash
rg "brave http" /tmp/openclaw/openclaw-*.log

หรือติดตามบันทึกขณะทำซ้ำปัญหา:

bash
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 เพื่อเปลี่ยนปลายทาง ระดับ และการปกปิดข้อมูลของบันทึก

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page