Önerilen oluşumu okuyun
LogBrew CLI’ı kurun velogbrew login komutunu çalıştırın. Bir
sorun listesinden sorunun UUID değerini kopyalayın. CLI yanıtı yazdırmadan önce
doğrular.
--json kullanın.
logbrew explain issue "<issue_id>" aynı okumayı yapar. Doğrudan API okuması
için yanıt sürümü 13’ü isteyin. CLI da aynı sürümü ister:
response_version için 1 ile 13 arasındaki değerleri kabul eder. Oluşum
seçimi için sürüm 2 veya üstü gerekir. Bu rehber sürüm 13’ü anlatır.
Önerilen oluşum, yararlı bağlamı olan, yakın zamanlı ve saklanan bir
oluşumdur. En son oluşumdan daha eski olabilir. LogBrew, en yeni saklanan
oluşumları occurrence_selection.recommendation.candidate_limit sınırına
kadar karşılaştırır. En çok inceleme bağlamı olanı seçer. İki oluşumun
bağlamı eşitse daha yeni olan seçilir.
occurrence_selection.recommendation.candidate_window_truncated değeri
true ise sorunun, önerinin değerlendirmediği daha eski oluşumları vardır.
İnceleme kapsamını doğrulayın
Sorun listesi filtreleri incelemeye uygulanmaz. Sorun kimliği grubu seçer ve yanıt grubun saklanan geçmişini içerebilir. Kesin bir oluşum kimliği bu geçmişi çıkarmaz. Göreviniz bu geçmişe izin vermiyorsa incelemeyi istemeyin. Hatayı yorumlamadan önce şunları kontrol edin:subject.project_idistenen projedir.event.idseçilen oluşumdur.event.occurred_atarızanın yaşandığı zaman aralığındadır.- Hizmet, ortam ve sürüm, incelenen dağıtımla eşleşir.
schema_versiondeğeri13olarak döner.
Başka bir oluşum seçin
Tek bir seçici gönderin:selection ve occurrence_id değerlerini birlikte göndermeyin. subject
içinde first_seen_at ve last_seen_at grubu tanımlar. Ayrıntılı kanıt
seçilen event nesnesine aittir.
occurrence_selection, first, latest, recommended ve selected
oluşumlarının özetlerini de döndürür. occurrence_selection.reason, LogBrew’ün
oluşumu neden seçtiğini söyler:
Yanıtı sırayla okuyun
- Grup için
subjectalanını, ardından seçilen oluşum içineventalanını okuyun. - Grubun geçmişi için
grouping,lifecycleveoccurrence_analysisalanlarını okuyun. - Kod konumu için
fixalanını okuyun.provenancedeğerini dosya, fonksiyon, satır ve sütunla birlikte tutun. Gözlemlenen bir çerçeve incelenecek kodu gösterir, kanıtlanmış bir nedeni değil. cause.statusalanını ve kanıtını okuyun. Hiçbir neden değeri kök nedeni kanıtlamaz.impact.user_impactalanınıimpact.occurrence_countalanından ayrı okuyun.count_method,coveragevelimitationsalanlarını sayıyla birlikte tutun. Tek bir kullanıcı birden fazla oluşuma neden olabilir.reproduction.statusalanını, ardındancorrelationsalanını okuyun.
Kod konumu ve neden
fix.status, kod konumunun nereden geldiğini söyler:
cause.status değeri reported_hypothesis, evidence_only veya unknown
olur. reported_hypothesis uygulamadan gelir ve doğrulanmamıştır.
cause.signals, unhandled_exception veya error_trace_span gibi
gözlemlenen sinyalleri listeler. provenance değeri backend_observed veya
application_reported olur. Bu ikisini ayrı tutun.
Kaynak dosyayı bulun
Proje kurulumunda hizmet için bir depo varsasource_locator kod konumunu
bu depoya bağlar. Dosyayı açmak için repository_full_name, revision ve
repository_relative_file alanlarını kullanın. revision_source değeri
deployment_commit veya setup_snapshot olur.
source_locator.status değeri not_found ise hizmetin bağlı bir depo
bileşeni yoktur. Bu, dosyanın eksik olduğu anlamına gelmez. Dosya adından
bileşen tahmin etmeyin.
Etkilenen kullanıcılar
known_affected_users, durum complete olsa bile yaklaşıktır. Anonim
kullanıcıları ve kullanıcı bağlamı olmayan oluşumları saymaz. null sayı
sıfır demek değildir. impact.reported, uygulamanın bildirdiği değerleri
tutar. Bu değerleri ölçülen sayılara eklemeyin.
Yeniden üretme durumu
Tetikleyici
event.request veya impact.reported.failed_action alanından
gelir. Beklenen hata event.exception veya
event.request.response_status_code alanından gelir. Kod konumu
fix.location alanıdır. reproduction.baseline_occurrence_id seçilen
oluşumdur. reproduction.evidence kaydı her girdiyi
reproduction.trigger, reproduction.expected_failure ve
reproduction.code_location olarak tutar. ready durumu, başarılı bir
yeniden oynatmayı kanıtlamaz. İstek gövdesi, gizlenen değer veya adım asla
uydurmayın.
Yaşam döngüsü ve gerileme
lifecycle.persisted_status saklanan durumdur. Sorun çözüldükten sonra bir
oluşum gelirse lifecycle.effective_status değeri regressed olur. Bir kişi
sorunu yeniden açana kadar saklanan durum resolved kalır.
lifecycle.regression.first_reappeared_occurrence ilk yeni oluşumu
tanımlar.
İnceleme yanıtı, arşivlenmiş bir sorunu subject.status ve lifecycle
içinde ignored olarak gösterir. Bkz. Durum değerleri.
Eksik ve sınırlı kanıtı ele alın
correlations.trace.status şu değerleri alır:
not_linked için istisnayla, çerçevelerle, önceki adımlarla (breadcrumbs) ve
döndürülen diğer kanıtla devam edin. not_found için kesin iz kimliğini
saklayın. unavailable için daha sonra yeniden deneyin. Hiçbir durum,
uygulamanın izi olmadığı anlamına gelmez. available bir iz yalnızca sorunun
yakalama span’ini içerebilir. Bkz.
Yakalama span’leri.
correlations.logs, oluşum zamanına yakın, aynı sürüm ve ortamdan gelen
logları tutar. Oluşumun iz kimliği varsa loglar o izden gelir. İz kimliği
yoksa loglar aynı hizmetten gelir. actions, metrics ve related_issues
için iz kimliği gerekir. Her koleksiyonun bir status alanı, items öğeleri
ve truncated alanı vardır.
captured_fields, missing_fields, redacted_fields ve
truncated_fields alanlarını ayrı tutun. Gizlenen veri eksik değildir.
Kısaltılan veri tam değildir. Gerekli bir alan eksik, gizlenmiş, kısaltılmış
veya kullanılamıyorsa evidence.status değeri partial olur. SDK
güncellemeleri geçmiş olaylara kanıt eklemez.
İlişkili loglar, sorunlar ve sürümler için kesin kimlikleri izleyin. Yakın bir
zaman damgası bağlantı değildir.
Sonraki aksiyonları izleyin
İstemciniz kesincode ve target çiftini destekliyorsa next_actions
öğelerini priority sırasıyla işleyin. Her aksiyonun bir reason alanı da
vardır.
Aday dağıtımı doğrulayın
Hatalı oluşumun kimliğini temel olarak kullanın. Aday dağıtım kimliğini dağıtım kanıtından veya sürüm sürecinizden alın.logbrew deploy bir dağıtımı
kaydeder.
422 ile başarısız olur.
Yanıt, dağıtım tamamlandıktan sonra istek zamanına kadar LogBrew’ün aldığı
aynı sorunun oluşumlarını sayar (observed_after ve observed_until). Aday
sürümdeki izleri de sayar.
absence_is_proof her zaman false olur. Zaman aralığında yeniden oluşum
olmaması kalıcı bir düzeltmeyi kanıtlamaz. Durumu yalnızca ekibiniz kanıtı kabul ettikten sonra
Sorunları yönetin sayfasındaki gibi değiştirin.
Güvenli şekilde kurtarın
Hata yanıtları
error, code, next ve next_action alanlarını içerir.
Program akışı için code ve next_action alanlarını kullanın. next
alanını yönlendirme olarak gösterin. Komut olarak çalıştırmayın. Bir okuma
başarısız olduğunda istenen oluşumu başka bir oluşumla değiştirmeyin. Bkz.
API hataları ve
Telemetri API’si.