diagnostics-otel plugin’i aracılığıyla
OTLP/HTTP (protobuf) kullanarak dışa aktarır. Günlükler, konteyner ve
korumalı alan günlük işlem hatları için stdout JSONL olarak da yazılabilir.
OTLP/HTTP kabul eden herhangi bir toplayıcı veya arka uç, kod değişikliği
gerektirmeden çalışır. Yerel dosya günlükleri için
Günlük Kaydı bölümüne bakın.
- Tanılama olayları, model çalıştırmaları, ileti akışı, oturumlar, kuyruklar ve exec için Gateway ile paketlenmiş plugin’ler tarafından yayımlanan, yapılandırılmış işlem içi kayıtlardır.
diagnostics-otel, bu olaylara abone olur ve bunları OTLP/HTTP üzerinden OpenTelemetry metrikleri, izleri ve günlükleri olarak dışa aktarır; ayrıca günlük kayıtlarını stdout JSONL’a yansıtabilir.- Sağlayıcı çağrıları, sağlayıcı aktarımı özel üst bilgileri kabul ettiğinde
OpenClaw’ın güvenilir model çağrısı span bağlamından bir W3C
traceparentüst bilgisi alır. Plugin tarafından yayımlanan iz bağlamı aktarılmaz. - Dışa aktarıcılar yalnızca hem tanılama yüzeyi hem de plugin etkin olduğunda bağlanır; böylece işlem içi maliyet varsayılan olarak sıfıra yakın kalır.
Hızlı başlangıç
openclaw plugins enable diagnostics-otel.
protocol yalnızca http/protobuf destekler. traces ve metrics varsayılan olarak etkin olduğundan, diğer tüm değerler (grpc dâhil) unsupported protocol uyarısıyla diagnostics-otel aboneliğinin tamamını iptal eder; bu, stdout günlük dışa aktarımını da durdurur. Yalnızca OTLP dışı bir protokol değeriyle logsExporter: "stdout" kullanmak istiyorsanız traces: false ve metrics: false değerlerini açıkça ayarlayın.Dışa aktarılan sinyaller
traces, metrics ve logs ayarlarını birbirinden bağımsız olarak değiştirin. diagnostics.otel.enabled true olduğunda izler ve metrikler
varsayılan olarak açık, günlükler ise varsayılan olarak kapalıdır
ve yalnızca diagnostics.otel.logs açıkça true olduğunda dışa aktarılır. Günlük dışa aktarımı
varsayılan olarak OTLP kullanır; stdout üzerinde JSONL için diagnostics.otel.logsExporter değerini
stdout, her ikisi için ise both olarak ayarlayın.
Yapılandırma başvurusu
Ortam değişkenleri
Gizlilik ve içerik yakalama
Ham model/araç içeriği varsayılan olarak dışa aktarılmaz. Span’ler sınırlı tanımlayıcılar (kanal, sağlayıcı, model, hata kategorisi, yalnızca karma değer içeren istek kimlikleri, araç kaynağı, araç sahibi, skill adı/kaynağı) taşır ve hiçbir zaman istem metnini, yanıt metnini, araç girdilerini, araç çıktılarını, skill dosyası yollarını veya oturum anahtarlarını içermez. Kapsamlı aracı oturum anahtarlarına benzeyen değerler (örneğinagent: ile başlayanlar), düşük kardinaliteli özniteliklerde unknown ile değiştirilir. OTLP günlük
kayıtları varsayılan olarak önem derecesini, günlük kaydediciyi, kod konumunu, güvenilir iz bağlamını ve
temizlenmiş öznitelikleri korur; ham günlük ileti gövdesi yalnızca
diagnostics.otel.captureContent boole değeri true olduğunda dışa aktarılır. Ayrıntılı
captureContent.* alt anahtarları günlük gövdelerini hiçbir zaman etkinleştirmez. Talk metrikleri yalnızca
sınırlı olay meta verilerini (mod, aktarım, sağlayıcı, olay türü) dışa aktarır; konuşma dökümleri,
ses yükleri, oturum kimlikleri, tur kimlikleri, çağrı kimlikleri, oda kimlikleri veya
devir token’ları dışa aktarılmaz.
Giden model istekleri yalnızca etkin model çağrısına ait OpenClaw’ın sahip olduğu
tanılama iz bağlamından oluşturulan bir W3C traceparent üst bilgisi içerebilir.
Çağrıyı yapan tarafından sağlanan mevcut traceparent üst bilgileri değiştirilir; böylece plugin’ler veya
özel sağlayıcı seçenekleri hizmetler arası iz üst soyunu taklit edemez.
Yalnızca toplayıcınız ve saklama politikanız istem, yanıt, araç veya
sistem istemi metni için onaylanmışsa diagnostics.otel.captureContent.* değerini true olarak ayarlayın.
Her alt anahtar bağımsızdır:
inputMessages- kullanıcı istemi içeriği.outputMessages- model yanıtı içeriği.toolInputs- araç bağımsız değişkeni yükleri.toolOutputs- araç sonucu yükleri.systemPrompt- birleştirilmiş sistem/geliştirici istemi.toolDefinitions- model aracı adları, açıklamaları ve şemaları.
openclaw.content.* öznitelikleri alır.
Boole
captureContent: true, inputMessages, outputMessages, toolInputs, toolOutputs, toolDefinitions ve OTLP günlük gövdelerini birlikte etkinleştirir, ancak systemPrompt değerini etkinleştirmez; birleştirilmiş sistem istemine de ihtiyacınız varsa captureContent.systemPrompt: true değerini açıkça ayarlayın.toolInputs/toolOutputs içeriği, yerleşik aracı
çalışma zamanının araç yürütmeleri için yakalanır (tamamlanan/hata span’lerinde
openclaw.content.tool_input ve gen_ai.tool.call.arguments;
tamamlanan span’lerde openclaw.content.tool_output ve
gen_ai.tool.call.result). openclaw.content.* adları kararlı OpenClaw öznitelik
adları olarak kalır; gen_ai.tool.call.* kopyaları semconv yerel görüntüleyiciler için bunları yansıtır.
Harici harness araç çağrıları (Codex, Claude CLI), içerik yükleri olmadan
tool.execution.* span’leri yayımlar. Yakalanan içerik güvenilir, yalnızca dinleyiciye açık bir
kanal üzerinden taşınır ve hiçbir zaman genel tanılama olay veri yoluna
yerleştirilmez.
Örnekleme ve boşaltma
- İzler:
diagnostics.otel.sampleRateyalnızca kök span üzerinde birTraceIdRatioBasedSamplerayarlar (0.0tümünü bırakır,1.0tümünü tutar). Ayarlanmadığında OpenTelemetry SDK varsayılanı (her zaman açık) kullanılır. - Metrikler:
diagnostics.otel.flushIntervalMs(en az1000olacak şekilde sınırlandırılır); ayarlanmadığında SDK’nın periyodik dışa aktarma varsayılanı kullanılır. - Günlükler: OTLP günlükleri
logging.leveldeğerine (dosya günlük düzeyi) uyar ve konsol biçimlendirmesini değil, tanılama günlük kaydı redaksiyon yolunu kullanır. Yüksek hacimli kurulumlar, yerel örnekleme yerine OTLP toplayıcı örneklemesini/filtrelemesini tercih etmelidir. Platformunuz stdout/stderr’ı zaten bir günlük işleyicisine gönderiyorsa ve OTLP günlük toplayıcınız yoksadiagnostics.otel.logsExporter: "stdout"değerini ayarlayın. Stdout kayıtları, her satırdats,signal,service.name, önem derecesi, gövde, redakte edilmiş öznitelikler ve kullanılabildiğinde güvenilir iz alanları içeren bir JSON nesnesidir. - Dosya-günlük korelasyonu: JSONL dosya günlükleri, günlük çağrısı geçerli bir
tanılama iz bağlamı taşıdığında üst düzey
traceId,spanId,parentSpanIdvetraceFlagsalanlarını içerir; bu sayede günlük işleyicileri yerel günlük satırlarını dışa aktarılan span’lerle birleştirebilir. - İstek korelasyonu: Gateway HTTP istekleri ve WebSocket çerçeveleri
dahili bir istek iz kapsamı oluşturur. Bu kapsam içindeki günlükler ve tanılama olayları,
varsayılan olarak istek izini devralırken sağlayıcı
traceparentüstbilgilerinin aynı izde kalması için ajan çalıştırma ve model çağrısı span’leri alt öğeler olarak oluşturulur. - Model çağrısı korelasyonu:
openclaw.model.callspan’leri varsayılan olarak güvenli istem bileşeni boyutlarını ve sağlayıcı sonucu kullanımı sunduğunda çağrı başına token özniteliklerini içerir.openclaw.model.usage, toplam maliyet, bağlam ve kanal panoları için çalıştırma düzeyindeki hesaplama span’i olmaya devam eder ve olayı yayan çalışma zamanı güvenilir iz bağlamına sahip olduğunda aynı tanılama izinde kalır.
Model çağrısı gözlem birimleri
Heropenclaw.model.call span’i, yaşam döngüsünün neyi ölçtüğünü
openclaw.model_call.observation_unit aracılığıyla tanımlar:
request- gözlemlenebilir tek bir model/sağlayıcı isteği. Yerel gömülü model çağrıları bu birimi kullanır ve dışa aktarıcılar, eski veya harici yayıcılarla uyumluluk için eksik bir değerirequestolarak kabul eder.turn- gizli model istekleri, yeniden denemeler, araç çalışmaları veya arka plan çalışmaları içerebilen tek bir opak ajan CLI turu. Claude Code CLI ve Codex app-server çağrıları bu birimi kullanır.
chat, generate_content veya text_completion) kullanırken tur span’leri
gen_ai.operation.name = invoke_agent kullanır. Her ikisi de
gen_ai.client.operation.duration metriğine katkıda bulunur; burada işlem adı doğrudan
istek gecikmesini tam tur gecikmesinden ayrı tutar. OpenClaw’ın OTEL model çağrısı
metrikleri ayrıca openclaw.model_call.observation_unit içerir; Prometheus
model çağrısı metrikleri eşdeğer observation_unit etiketini sunar.
Claude Code CLI model çağrısı doğruluğu
Claude Code CLI turları, tur düzeyinde tek bir sentetikopenclaw.model.call
span’i yayar. Bunlar Anthropic HTTP istek span’leri değildir. openclaw.api = claude-code ve openclaw.model_call.observation_unit = turn kullanırlar ve
işlemi gen_ai.operation.name = invoke_agent olarak tanımlarlar. OpenClaw’ın CLI sınırını
openclaw.transport aracılığıyla tanımlarlar:
stdio- tek seferlik yerel Claude Code işlemi.stdio-live- yönetilen kalıcı bir Claude stdio oturumundaki tek tur.paired-node-cli- eşleştirilmiş bir Node’a devredilen tek seferlik Claude Code yürütmesi.
openclaw.harness.run (openclaw.harness.id = claude-cli)
openclaw.run öğesini, o da Claude openclaw.model.call
span’ini içerir. Donanım ve çalıştırma span’leri, Claude Code’un dahili aşamaları değil,
sentetik OpenClaw tur sınırlarıdır. Tek seferlik ve yönetilen stdio turları aynı
hiyerarşiyi kullanır; gerçek bir yeni oturum yeniden denemesi, aynı OpenClaw çalıştırması içinde
başka bir model çağrısı alt öğesi oluşturur.
Span, OpenClaw hazırlanmış CLI turunu kabul ettiğinde başlar ve yalnızca
bu tur başarılı olduğunda veya başarısız olduğunda sona erer. Yönetilen oturumlarda Claude,
sonucu bekleten arka plan ajanları veya iş akışları bildirirken geçici bir başarı sonucu
span’i sonlandırmaz; boşaltma sonrası nihai sonuç sonlandırır. İptal, zaman aşımı, işlem hatası,
çıktı/ayrıştırma hatası ve diğer tur hataları aynı span’i hatayla sonlandırır.
Claude Code, yardımcı mesajı başına kullanım bildirir ve terminal sonucunda birikimli
kullanım da bildirebilir. OpenClaw yanıt hesaplaması, mevcut maliyet anlamlarının değişmemesi için
son yardımcı mesajını kullanmaya devam eder; tur düzeyindeki model çağrısı span’i ise kullanılabildiğinde
önbellek okuma ve önbellek oluşturma token’ları dahil olmak üzere terminaldeki birikimli kullanımı
kullanır.
Bu CLI span’lerinde bayt ve zamanlama alanları, gözlemlenebilir OpenClaw
CLI sınırını açıklar:
openclaw.model_call.request_bytes, tek seferlik stdin/argv üzerinden gönderilen istem değerinin veya yönetilen stdio JSONL kullanıcı zarfının UTF-8 boyutudur. Claude Code’un gizli model isteğinin boyutu değildir.openclaw.model_call.response_bytes, tur sırasında gözlemlenen Claude CLI stdout’unun UTF-8 boyutudur. Anthropic HTTP yanıt boyutu değildir.openclaw.model_call.time_to_first_byte_ms, gözlemlenebilir ilk Claude CLI stdout veya stderr çıktısına kadar geçen süredir. Ağ TTFB’si değildir.
captureContent alanları etkinleştirildiğinde span,
OpenClaw’ın Claude Code’a gönderdiği etkin istemi, OpenClaw’ın eklediği sistem
istemini ve görünür yardımcı metnini/akıl yürütmesini/araç çağrısı kimliğini
gen_ai.input.messages, gen_ai.output.messages ve
gen_ai.system_instructions aracılığıyla dışa aktarır. Araç bağımsız değişkenleri, opak düşünme imzaları ve
araç sonuçları Claude yardımcı zarfından çıkarılır. OpenClaw; Claude Code’un özel
sistem istemine, gizli sürdürülen veya Compaction uygulanmış istek yüküne, yerel dahili araç şemalarına,
ham Anthropic HTTP isteğine, dahili yeniden denemelere, yukarı akış istek kimliğine veya gerçek ağ
TTFB’sine eriştiğini iddia etmez. Claude Code, etkin yerel araç tanımlarını doğru biçimde
sunmadığından bu span’ler gen_ai.tool.definitions alanını doldurmaz.
Harici Claude donanım aracı span’leri, araç içeriği yakalama etkinleştirilmiş olsa bile
yalnızca meta veri içerir. Her model span’inde olduğu gibi yakalanan Claude CLI içeriği,
yalnızca güvenilir dinleyici yolunu ve dışa aktarıcının mevcut redaksiyon ve boyut
sınırlarını kullanır; içerik varsayılan olarak kapalı kalır.
Dışa aktarılan metrikler
Model kullanımı
openclaw.tokens(sayaç, öznitelikler:openclaw.token,openclaw.channel,openclaw.provider,openclaw.model,openclaw.agent)openclaw.cost.usd(sayaç, öznitelikler:openclaw.channel,openclaw.provider,openclaw.model)openclaw.run.duration_ms(histogram, öznitelikler:openclaw.channel,openclaw.provider,openclaw.model)openclaw.context.tokens(histogram, öznitelikler:openclaw.context,openclaw.channel,openclaw.provider,openclaw.model)gen_ai.client.token.usage(histogram, GenAI anlamsal kuralları metriği, öznitelikler:gen_ai.token.type=input/output,gen_ai.provider.name,gen_ai.operation.name,gen_ai.request.model)gen_ai.client.operation.duration(histogram, saniye, model istekleri ve sentetik ajan turları için GenAI anlamsal kuralları metriği; öznitelikler:gen_ai.provider.name,gen_ai.operation.name,gen_ai.request.model, isteğe bağlıerror.type; tur gözlemlerigen_ai.operation.name = invoke_agentkullanır)openclaw.model_call.duration_ms(histogram, öznitelikler:openclaw.provider,openclaw.model,openclaw.api,openclaw.transport,openclaw.model_call.observation_unit; ayrıca sınıflandırılmış hatalardaopenclaw.errorCategoryveopenclaw.failureKind)openclaw.model_call.request_bytes(histogram, nihai model isteği yükünün UTF-8 bayt boyutu; Claude Code CLI için yukarıda açıklanan gözlemlenebilir istem girdisi/zarfı; ham yük içeriği yoktur)openclaw.model_call.response_bytes(histogram, akışla iletilen yanıt parçası yüklerinin UTF-8 bayt boyutu; yüksek frekanslı metin, düşünme ve araç çağrısı deltalarında yalnızca artımlıdeltabaytları sayılır; Claude Code CLI için gözlemlenen stdout baytları; ham yanıt içeriği yoktur)openclaw.model_call.time_to_first_byte_ms(histogram, akışla iletilen ilk yanıt olayından önce geçen süre; Claude Code CLI için ağ TTFB’si yerine gözlemlenebilir ilk CLI çıktısı)openclaw.model.failover(sayaç, öznitelikler:openclaw.provider,openclaw.model,openclaw.failover.to_provider,openclaw.failover.to_model,openclaw.failover.reason,openclaw.failover.suspended,openclaw.lane)openclaw.skill.used(sayaç, öznitelikler:openclaw.skill.name,openclaw.skill.source,openclaw.skill.activation, isteğe bağlıopenclaw.agent, isteğe bağlıopenclaw.toolName)
Mesaj akışı
openclaw.webhook.received(sayaç, öznitelikler:openclaw.channel,openclaw.webhook)openclaw.webhook.error(sayaç, öznitelikler:openclaw.channel,openclaw.webhook)openclaw.webhook.duration_ms(histogram, öznitelikler:openclaw.channel,openclaw.webhook)openclaw.message.queued(sayaç, öznitelikler:openclaw.channel,openclaw.source)openclaw.message.received(sayaç, öznitelikler:openclaw.channel,openclaw.source)openclaw.message.dispatch.started(sayaç, öznitelikler:openclaw.channel,openclaw.source)openclaw.message.dispatch.completed(sayaç, öznitelikler:openclaw.channel,openclaw.outcome,openclaw.reason,openclaw.source)openclaw.message.dispatch.duration_ms(histogram, öznitelikler:openclaw.channel,openclaw.outcome,openclaw.reason,openclaw.source)openclaw.message.processed(sayaç, öznitelikler:openclaw.channel,openclaw.outcome)openclaw.message.duration_ms(histogram, öznitelikler:openclaw.channel,openclaw.outcome)openclaw.message.delivery.started(sayaç, öznitelikler:openclaw.channel,openclaw.delivery.kind)openclaw.message.delivery.duration_ms(histogram, öznitelikler:openclaw.channel,openclaw.delivery.kind,openclaw.outcome,openclaw.errorCategory)
Konuşma
openclaw.talk.event(sayaç, öznitelikler:openclaw.talk.event_type,openclaw.talk.mode,openclaw.talk.transport,openclaw.talk.brain,openclaw.talk.provider)openclaw.talk.event.duration_ms(histogram, öznitelikler:openclaw.talk.eventile aynı; bir Konuşma olayı süre bildirdiğinde yayılır)openclaw.talk.audio.bytes(histogram, öznitelikler:openclaw.talk.eventile aynı; bayt uzunluğu bildiren Konuşma ses çerçevesi olayları için yayılır)
Kuyruklar ve oturumlar
openclaw.queue.lane.enqueue(sayaç, öznitelikler:openclaw.lane)openclaw.queue.lane.dequeue(sayaç, öznitelikler:openclaw.lane)openclaw.queue.depth(histogram, öznitelikler:openclaw.laneveyaopenclaw.channel=heartbeat)openclaw.queue.wait_ms(histogram, öznitelikler:openclaw.lane)openclaw.session.state(sayaç, öznitelikler:openclaw.state,openclaw.reason)openclaw.session.stuck(sayaç, öznitelikler:openclaw.state; kurtarılabilir eski oturum kayıt yönetimi için yayımlanır)openclaw.session.stuck_age_ms(histogram, öznitelikler:openclaw.state; kurtarılabilir eski oturum kayıt yönetimi için yayımlanır)openclaw.session.turn.created(sayaç, öznitelikler:openclaw.agent,openclaw.channel,openclaw.trigger)openclaw.session.recovery.requested(sayaç, öznitelikler:openclaw.state,openclaw.action,openclaw.active_work_kind,openclaw.reason)openclaw.session.recovery.completed(sayaç, öznitelikler:openclaw.state,openclaw.action,openclaw.status,openclaw.active_work_kind,openclaw.reason)openclaw.session.recovery.age_ms(histogram, öznitelikler: eşleşen kurtarma sayacıyla aynı)openclaw.run.attempt(sayaç, öznitelikler:openclaw.attempt)
Oturum canlılığı telemetrisi
OpenClaw yanıt, araç, durum, blok veya ACP çalışma zamanı ilerlemesi gözlemlediği sürece birprocessing oturumu, yerleşik canlılık eşiğine doğru eskimez. Yazma etkinliğini sürdüren sinyaller ilerleme sayılmaz; böylece sessiz bir model veya çalıştırma düzeneği yine de algılanabilir.
OpenClaw, oturumları hâlâ gözlemleyebildiği çalışmaya göre sınıflandırır:
session.long_running: etkin gömülü çalışma, model çağrıları veya araç çağrıları ilerlemeyi sürdürmektedir. Sahipli sessiz model çağrıları da yerleşik iptal eşiğinden önce uzun süreli olarak bildirilir; böylece yavaş veya akışsız model sağlayıcıları, iptal gözlemlenebildiği sürece takılmış Gateway oturumları gibi görünmez.session.stalled: etkin çalışma vardır ancak etkin çalıştırma yakın zamanda ilerleme bildirmemiştir. Sahipli model çağrıları, yerleşik iptal eşiğinde veya sonrasındasession.long_runningdurumundansession.stalleddurumuna geçer; sahipsiz eski model/araç etkinliği zararsız, uzun süreli çalışma olarak değerlendirilmez. Takılmış gömülü çalıştırmalar başlangıçta yalnızca gözlemlenir, ardından ilerleme olmadan iptal eşiğine ulaşıldığında iptal edilip boşaltılır; böylece kulvarda arkada bekleyen sıralı işlemler devam edebilir.session.stuck: etkin çalışması olmayan eski oturum kayıt yönetimi veya eski sahipsiz model/araç etkinliğine sahip, sırada bekleyen boşta bir oturum. Bu, kurtarma geçitleri geçildikten hemen sonra etkilenen oturum kulvarını serbest bırakır.
session.recovery.requested ve
session.recovery.completed olayları yayımlar. Tanılama oturumu durumu yalnızca
durumu değiştiren bir kurtarma sonucundan (aborted veya released) sonra ve yalnızca
aynı işleme nesli hâlâ güncelse boşta olarak işaretlenir.
Yalnızca session.stuck, openclaw.session.stuck sayacını,
openclaw.session.stuck_age_ms histogramını ve openclaw.session.stuck
yayılımını yayımlar. Yinelenen session.stuck tanılamaları, oturum değişmeden kaldığı sürece
geri çekilir; bu nedenle panolar her Heartbeat tikinde değil, sürekli artışlarda
uyarı vermelidir. Yapılandırma ayarı ve varsayılanlar için
Yapılandırma başvurusu bölümüne bakın.
Canlılık uyarıları ayrıca şunları yayımlar:
openclaw.liveness.warning(sayaç, öznitelikler:openclaw.liveness.reason)openclaw.liveness.event_loop_delay_p99_ms(histogram, öznitelikler:openclaw.liveness.reason)openclaw.liveness.event_loop_delay_max_ms(histogram, öznitelikler:openclaw.liveness.reason)openclaw.liveness.event_loop_utilization(histogram, öznitelikler:openclaw.liveness.reason)openclaw.liveness.cpu_core_ratio(histogram, öznitelikler:openclaw.liveness.reason)
Çalıştırma düzeneği yaşam döngüsü
openclaw.harness.duration_ms(histogram, öznitelikler:openclaw.harness.id,openclaw.harness.plugin,openclaw.outcome, hatalardaopenclaw.harness.phase)
Araç yürütme ve döngü algılama
openclaw.tool.execution.duration_ms(histogram, öznitelikler:gen_ai.tool.name,openclaw.toolName,openclaw.tool.source,openclaw.tool.owner,openclaw.tool.params.kind, ayrıca hatalardaopenclaw.errorCategory)openclaw.tool.execution.blocked(sayaç, öznitelikler:gen_ai.tool.name,openclaw.toolName,openclaw.tool.source,openclaw.tool.owner,openclaw.tool.params.kind,openclaw.deniedReason)openclaw.tool.loop(sayaç, öznitelikler:openclaw.toolName,openclaw.loop.level,openclaw.loop.action,openclaw.loop.detector,openclaw.loop.count, isteğe bağlıopenclaw.loop.paired_tool; yinelenen bir araç çağrısı döngüsü algılandığında yayımlanır)
Exec
openclaw.exec.duration_ms(histogram, öznitelikler:openclaw.exec.target,openclaw.exec.mode,openclaw.outcome,openclaw.failureKind)
Tanılama iç bileşenleri (bellek, yükler, dışa aktarıcı sağlığı)
openclaw.payload.large(sayaç, öznitelikler:openclaw.payload.surface,openclaw.payload.action,openclaw.channel,openclaw.plugin,openclaw.reason)openclaw.payload.large_bytes(histogram, öznitelikler:openclaw.payload.largeile aynı)openclaw.memory.rss_bytes/openclaw.memory.heap_used_bytes/openclaw.memory.heap_total_bytes/openclaw.memory.external_bytes/openclaw.memory.array_buffers_bytes(histogramlar, öznitelik yok; işlem belleği örnekleri)openclaw.memory.pressure(sayaç, öznitelikler:openclaw.memory.level,openclaw.memory.reason)openclaw.diagnostic.async_queue.dropped(sayaç, öznitelikler:openclaw.diagnostic.async_queue.drop_class; iç tanılama kuyruğu geri basıncı nedeniyle bırakılanlar)openclaw.telemetry.exporter.events(sayaç, öznitelikler:openclaw.exporter,openclaw.signal,openclaw.status, isteğe bağlıopenclaw.reason, isteğe bağlıopenclaw.errorCategory; dışa aktarıcı yaşam döngüsü/arızası öz telemetrisi)
Dışa aktarılan yayılımlar
openclaw.model.usageopenclaw.channel,openclaw.provider,openclaw.modelopenclaw.tokens.*(girdi/çıktı/önbellek_okuma/önbellek_yazma/toplam)- varsayılan olarak
gen_ai.systemveya en son GenAI anlamsal kuralları tercih edildiğindegen_ai.provider.name gen_ai.request.model,gen_ai.operation.name,gen_ai.usage.*
openclaw.runopenclaw.outcome,openclaw.channel,openclaw.provider,openclaw.model,openclaw.errorCategory
openclaw.model.call- varsayılan olarak
gen_ai.systemveya en son GenAI anlamsal kuralları tercih edildiğindegen_ai.provider.name gen_ai.request.model,gen_ai.operation.name,openclaw.provider,openclaw.model,openclaw.api,openclaw.transport,openclaw.model_call.observation_unit(requestveyaturn)openclaw.errorCategory,error.typeve hatalarda isteğe bağlıopenclaw.failureKindopenclaw.model_call.request_bytes,openclaw.model_call.response_bytes,openclaw.model_call.time_to_first_byte_msopenclaw.model_call.prompt.input_messages_count,openclaw.model_call.prompt.input_messages_chars,openclaw.model_call.prompt.system_prompt_chars,openclaw.model_call.prompt.tool_definitions_count,openclaw.model_call.prompt.tool_definitions_chars,openclaw.model_call.prompt.total_chars(yalnızca güvenli bileşen boyutları, istem metni yok)- sonuç, ilgili istek veya toplu sıra için kullanımı içerdiğinde
openclaw.model_call.usage.*vegen_ai.usage.* - Üst sağlayıcı sonucu bir istek kimliği sunduğunda
openclaw.upstreamRequestIdHashözniteliğine sahipopenclaw.provider.requestyayılım olayı (sınırlı, karma tabanlı); ham kimlikler hiçbir zaman dışa aktarılmaz OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimentalile istek yayılımları en son GenAI çıkarım yayılım adı olan{gen_ai.operation.name} {gen_ai.request.model}adını kullanır. OpenClaw, opak CLI sınırından yerel bir aracı adı atfetmediği için sıra yayılımlarıinvoke_agentkullanır. Her ikisi deopenclaw.model.callyerineCLIENTyayılım türünü kullanır.
- varsayılan olarak
openclaw.harness.runopenclaw.harness.id,openclaw.harness.plugin,openclaw.outcome,openclaw.provider,openclaw.model,openclaw.channel- Tamamlandığında:
openclaw.harness.result_classification,openclaw.harness.yield_detected,openclaw.harness.items.started,openclaw.harness.items.completed,openclaw.harness.items.active - Hata durumunda:
openclaw.harness.phase,openclaw.errorCategory, isteğe bağlıopenclaw.harness.cleanup_failed
openclaw.tool.executiongen_ai.tool.name,gen_ai.operation.name(execute_tool),openclaw.toolName,openclaw.tool.source, isteğe bağlıgen_ai.tool.call.id,openclaw.tool.owner,openclaw.tool.params.*- Hatalarda isteğe bağlı
openclaw.errorCategory/openclaw.errorCode; politika veya korumalı alan tarafından reddedildiğindeopenclaw.deniedReasonveopenclaw.outcome=blocked
openclaw.execopenclaw.exec.target,openclaw.exec.mode,openclaw.outcome,openclaw.failureKind,openclaw.exec.command_length,openclaw.exec.exit_code,openclaw.exec.exit_signal,openclaw.exec.timed_out
openclaw.webhook.processedopenclaw.channel,openclaw.webhook
openclaw.webhook.erroropenclaw.channel,openclaw.webhook,openclaw.error
openclaw.message.processedopenclaw.channel,openclaw.outcome,openclaw.reason
openclaw.message.deliveryopenclaw.channel,openclaw.delivery.kind,openclaw.outcome,openclaw.errorCategory,openclaw.delivery.result_count
openclaw.session.stuckopenclaw.state,openclaw.ageMs,openclaw.queueDepth
openclaw.context.assembledopenclaw.prompt.size,openclaw.history.size,openclaw.context.tokens,openclaw.errorCategory(istem, geçmiş, yanıt veya oturum anahtarı içeriği yok)
openclaw.tool.loopopenclaw.toolName,openclaw.loop.level,openclaw.loop.action,openclaw.loop.detector,openclaw.loop.count, isteğe bağlıopenclaw.loop.paired_tool(döngü mesajları, parametreler veya araç çıktısı yok)
openclaw.memory.pressureopenclaw.memory.level,openclaw.memory.reason,openclaw.memory.rss_bytes,openclaw.memory.heap_used_bytes,openclaw.memory.heap_total_bytes,openclaw.memory.external_bytes,openclaw.memory.array_buffers_bytes, isteğe bağlıopenclaw.memory.threshold_bytes/openclaw.memory.rss_growth_bytes/openclaw.memory.window_ms
openclaw.content.* özniteliklerini içerebilir.
Tanılama olayları kataloğu
Aşağıdaki olaylar, yukarıdaki metrikleri ve yayılımları destekler veya doğrudan Plugin aboneliği için kullanılabilir.run.progress ve run.execution_phase yalnızca doğrudan kullanılan
yaşam döngüsü sinyalleridir; diagnostics-otel Plugin bunları
bağımsız OTLP sinyalleri olarak dışa aktarmaz. Olay türleri ve run.execution_phase.phase değerleri
eklenebilir niteliktedir. TypeScript tüketicileri, her iki birleşimin de kalıcı olarak
kapsamlı olduğunu varsaymak yerine varsayılan dalları korumalıdır.
Model kullanımı
model.usage- belirteçler, maliyet, süre, bağlam, sağlayıcı/model/kanal, oturum kimlikleri.usage, maliyet ve telemetri için sağlayıcı/sıra muhasebesidir;context.usedgeçerli istem/bağlam anlık görüntüsüdür ve önbelleğe alınmış girdi veya araç döngüsü çağrıları söz konusu olduğunda sağlayıcınınusage.totaldeğerinden düşük olabilir.
webhook.received/webhook.processed/webhook.errormessage.queued/message.processedmessage.delivery.started/message.delivery.completed/message.delivery.error
queue.lane.enqueue/queue.lane.dequeuesession.state/session.long_running/session.stalled/session.stuckrun.attempt/run.progressrun.execution_phase(genel, oturumla ilişkilendirilmiş gömülü çalıştırıcı başlatma aşamaları)diagnostic.heartbeat(toplu sayaçlar: Webhook’lar/kuyruk/oturum)
harness.run.started/harness.run.completed/harness.run.error- aracı çalıştırma düzeneğinin her çalıştırmaya özgü yaşam döngüsü.harnessId, isteğe bağlıpluginId, sağlayıcı/model/kanal ve çalıştırma kimliğini içerir. Tamamlanma,durationMs,outcome, isteğe bağlıresultClassification,yieldDetectedveitemLifecyclesayılarını ekler. Hatalarphase(prepare/start/send/resolve/cleanup),errorCategoryve isteğe bağlıcleanupFaileddeğerini ekler.
exec.process.completed- terminal sonucu, süre, hedef, mod, çıkış kodu ve hata türü. Komut metni ve çalışma dizinleri dahil edilmez.exec.approval.followup_suppressed- oturum yeniden bağlandıktan sonra eski onay takibi bırakıldı.approvalId,reason(session_rebound),phase(direct_deliveryveyagateway_preflight) ve dağıtıcının zaman damgasını içerir. Oturum anahtarları, rotalar ve komut metni dahil edilmez.
Dışa aktarıcı olmadan
Tanılama olaylarınıdiagnostics-otel çalıştırmadan Plugin’lerin veya özel
hedeflerin kullanımına sunun:
logging.level seviyesini yükseltmeden hedefli hata ayıklama çıktısı almak için tanılama
bayraklarını kullanın. Bayraklar büyük/küçük harfe duyarlı değildir ve joker karakterleri
(telegram.* veya *) destekler:
logging.file) gider ve yine
logging.redactSensitive tarafından hassas bilgilerden arındırılır. Tam kılavuz:
Tanılama bayrakları.
Devre dışı bırakma
diagnostics-otel öğesini plugins.allow dışında bırakın ya da
openclaw plugins disable diagnostics-otel komutunu çalıştırın.
İlgili
- Günlük kaydı - dosya günlükleri, konsol çıktısı, CLI üzerinden günlük takibi ve Control UI Günlükler sekmesi
- Gateway günlük kaydı iç işleyişi - WS günlük stilleri, alt sistem ön ekleri ve konsol yakalama
- Tanılama bayrakları - hedefli hata ayıklama günlüğü bayrakları
- Tanılama dışa aktarımı - operatör destek paketi aracı (OTEL dışa aktarımından ayrıdır)
- Yapılandırma başvurusu - tam
diagnostics.*alan başvurusu