Diagnostics
Tanılama bayrakları
Tanılama bayrakları, genel olarak logging.level düzeyini yükseltmeden tek bir alt sistem için ek günlük kaydını etkinleştirir. Bir alt sistem tarafından denetlenmediği sürece bayrağın hiçbir etkisi olmaz.
Nasıl çalışır?
- Bayraklar büyük/küçük harfe duyarsız dizelerdir; yapılandırmadaki
diagnostics.flagsileOPENCLAW_DIAGNOSTICSortam değişkeni geçersiz kılma değerinden çözümlenir, yinelenenler kaldırılır ve küçük harfe dönüştürülür. name.*, hemnamedeğerinin kendisiyle hem dename.altındaki her şeyle eşleşir (örneğintelegram.*,telegram.httpile eşleşir).*veyaall, tüm bayrakları etkinleştirir.- Yapılandırmada
diagnostics.flagsdeğiştirildikten sonra Gateway'i yeniden başlatın; bu ayar çalışırken yeniden yüklenmez.
Bilinen bayraklar
| Bayrak | Etkinleştirdiği |
|---|---|
telegram.http |
Telegram Bot API HTTP hata günlükleri |
brave.http |
Brave Search istek/yanıt/önbellek günlükleri |
profiler |
Yanıt aşaması profilleyicisi ve Codex uygulama sunucusu profilleyicisi (ikisi de) |
reply.profiler |
Yalnızca yanıt aşaması profilleyicisi |
codex.profiler |
Yalnızca Codex uygulama sunucusu profilleyicisi |
timeline |
Yapılandırılmış JSONL zaman çizelgesi yapıtı (aşağıya bakın) |
Yapılandırma üzerinden etkinleştirme
{ "diagnostics": { "flags": ["telegram.http"] }}Birden fazla bayrak:
{ "diagnostics": { "flags": ["telegram.http", "brave.http", "gateway.*"] }}Ortam değişkeniyle geçersiz kılma (tek seferlik)
OPENCLAW_DIAGNOSTICS=telegram.http,brave.httpDeğerler virgül veya boşluklardan bölünür. Özel değerler:
| Değer | Etki |
|---|---|
0, false, off, none |
Yapılandırmayı da geçersiz kılarak tüm bayrakları devre dışı bırakır |
1, true, all, * |
Tüm bayrakları etkinleştirir |
OPENCLAW_DIAGNOSTICS=0, söz konusu işlem için hem ortam değişkeninden hem de yapılandırmadan gelen bayrakları devre dışı bırakır. Bu, dosyayı düzenlemeden yapılandırmada açık bırakılan bir profilleyici bayrağını geçici olarak susturmak için kullanışlıdır.
Profilleyici bayrakları
Profilleyici bayrakları, düşük maliyetli zamanlama aralıklarını denetler; kapalı olduklarında ek yük oluşturmazlar.
Tek bir Gateway çalıştırmasında profilleyici tarafından denetlenen tüm aralıkları etkinleştirin:
OPENCLAW_DIAGNOSTICS=profiler openclaw gateway runYalnızca yanıt dağıtımı profilleyici aralıklarını etkinleştirin:
OPENCLAW_DIAGNOSTICS=reply.profiler openclaw gateway runYalnızca Codex uygulama sunucusunun başlangıç/araç/iş parçacığı profilleyici aralıklarını etkinleştirin:
OPENCLAW_DIAGNOSTICS=codex.profiler openclaw gateway runprofiler, hem yanıt profilleyicisini hem de Codex profilleyicisini etkinleştirir; yalnızca birini etkinleştirmek için kapsamı belirtilmiş bayrak adlarını kullanın.
Alternatif olarak yapılandırmada ayarlayın:
{ "diagnostics": { "flags": ["reply.profiler", "codex.profiler"] }}Yapılandırma bayraklarını değiştirdikten sonra Gateway'i yeniden başlatın. Bir profilleyici bayrağını devre dışı bırakmak için bayrağı diagnostics.flags içinden kaldırıp yeniden başlatın veya söz konusu çalıştırmada tüm tanılama bayraklarını geçersiz kılmak için işlemi OPENCLAW_DIAGNOSTICS=0 ile başlatın.
Zaman çizelgesi yapıtları
timeline bayrağı (diagnostics.timeline diğer adı), harici kalite güvencesi düzenekleri için yapılandırılmış başlangıç ve çalışma zamanı zamanlama olaylarını JSONL olarak yazar:
OPENCLAW_DIAGNOSTICS=timeline \OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=/tmp/openclaw-timeline.jsonl \openclaw gateway runAlternatif olarak yapılandırmada etkinleştirin:
{ "diagnostics": { "flags": ["timeline"] }}Bayrağın kendisi yapılandırmada ayarlanmış olsa bile çıktı yolu her zaman OPENCLAW_DIAGNOSTICS_TIMELINE_PATH üzerinden alınır; yol için bir yapılandırma anahtarı yoktur. timeline yalnızca yapılandırmadan etkinleştirildiğinde OpenClaw henüz yapılandırmayı okumamış olduğundan en erken yapılandırma yükleme aralıkları eksik olur; sonraki başlangıç aralıkları normal şekilde kaydedilir.
OPENCLAW_DIAGNOSTICS=1, =all ve =* de tüm bayrakları etkinleştirdikleri için zaman çizelgesini etkinleştirir. Yalnızca JSONL yapıtını istiyor, diğer tüm tanılama bayraklarını istemiyorsanız kapsamı belirtilmiş timeline bayrağını tercih edin.
Zaman çizelgesindeki olay döngüsü gecikmesi örnekleri için timeline dışında bir ek etkinleştirme daha gerekir: zaman çizelgesini etkinleştirmenin yanı sıra OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 (veya on/true/yes) ayarlayın.
Zaman çizelgesi kayıtları openclaw.diagnostics.v1 zarfını kullanır ve işlem kimliklerini, aşama adlarını, aralık adlarını, süreleri, Plugin kimliklerini, bağımlılık sayılarını, olay döngüsü gecikmesi örneklerini, sağlayıcı işlem adlarını, alt işlem çıkış durumunu ve başlangıç hatası adlarını/iletilerini içerebilir. Zaman çizelgesi dosyalarını yerel tanılama yapıtları olarak değerlendirin; makinenizin dışında paylaşmadan önce inceleyin.
Günlüklerin konumu
Bayraklar günlükleri standart tanılama günlük dosyasına yazar. Varsayılan olarak:
/tmp/openclaw/openclaw-YYYY-MM-DD.loglogging.file ayarlarsanız bunun yerine o yolu kullanın. Günlükler JSONL biçimindedir (satır başına bir JSON nesnesi). logging.redactSensitive ayarına göre gizleme uygulanmaya devam eder. Günlük yolu çözümleme, döndürme ve gizleme modelinin tamamı için Günlük Kaydı bölümüne bakın.
Günlükleri çıkarma
En son günlük dosyasını seçin:
ls -t /tmp/openclaw/openclaw-*.log | head -n 1Telegram HTTP tanılamalarını filtreleyin:
rg "telegram http error" /tmp/openclaw/openclaw-*.logBrave Search HTTP tanılamalarını filtreleyin:
rg "brave http" /tmp/openclaw/openclaw-*.logAlternatif olarak sorunu yeniden oluştururken günlüğü canlı izleyin:
tail -f /tmp/openclaw/openclaw-$(date +%F).log | rg "telegram http error"Uzak Gateway'ler için bunun yerine openclaw logs --follow kullanın (bkz. /cli/logs).
Notlar
logging.level,warndüzeyinden daha yüksek bir düzeye ayarlanırsa bayrakla denetlenen günlükler bastırılabilir. Varsayılaninfouygundur.brave.http, Brave Search istek URL'lerini/sorgu parametrelerini, yanıt durumunu/zamanlamasını ve önbellek isabeti/ıskalaması/yazma olaylarını günlüğe kaydeder. API anahtarını (istek başlığı olarak gönderilir) veya yanıt gövdelerini günlüğe kaydetmez; ancak arama sorguları hassas olabilir.- Bayrakları etkin bırakmak güvenlidir; yalnızca ilgili alt sistemin günlük hacmini etkilerler.
- Günlük hedeflerini, düzeylerini ve gizlemeyi değiştirmek için /logging bölümünü kullanın.