Yanıtı okuyun
Her yanıtı şu sırayla okuyun:- HTTP durumunu okuyun.
- Gövdenin, rotanın kendi yapısında olduğundan emin olun.
- Her
project_iddeğerinin istenen proje kapsamında olduğundan emin olun. - Standart enum değerlerini ve kimlikleri değiştirmeden koruyun.
next_actionalanını yalnızca istemci onuncodevetargetdeğerlerini destekliyorsa izleyin.nulldeğerini, gönderilmeyen bir alanı ve boş listeyi ayrı durumlar olarak tutun.
200 OK yanıtı boş bir liste içerebilir. Boş bir log listesi, istekle eşleşen
log olmadığı anlamına gelir. Sorunların, izlerin veya aksiyonların da boş olduğu
anlamına gelmez. Sinyalleri zaman damgaları yakın diye birleştirmeyin. Bir ize
yalnızca yanıt onun tam trace_id değerini içeriyorsa geçin.
404 ile boş liste farklı sonuçlardır. Bir liste rotası, eşleşen kayıt yoksa
[] döndürür. Bir ayrıntı rotası, okunabilir bir kayıt bulamazsa
code: not_found ile 404 döndürür. İki sonuç da veri alımının başarısız
olduğunu kanıtlamaz.
Ne göndermelisiniz
Yanıtlar, gönderdiğiniz telemetri kadar işe yarar. Bu değerleri her zarfta veya SDK kurulumunda gönderin:releaseveenvironment.- Hizmetler, aksiyonlar ve metrikler için sabit adlar.
- Loglar, span’ler, aksiyonlar ve sorunlar aynı isteğe aitse iz bağlamı.
- Standart önem düzeyi değerleri:
info,warning,errorvecritical. - Hata ayıklamaya yardım eden, gizli bilgi veya gereksiz kişisel veri içermeyen öznitelikler.
Veri alımı yanıtı
Herkese açık SDK’larPOST /v1/events yanıtını sizin yerinize okur. Uygulama
kodunun bu yanıtı ele alması gerekmez.
SDK toplu gönderim yanıtı
Başarılı bir SDK toplu gönderimi, her akış için kabul edilen sayılarla200 OK döndürür:
Sayılar yalnızca bu toplu gönderimi kapsar. LogBrew’ün daha önce kabul ettiği
bir toplu gönderimi yeniden denediğinizde her akış için
0 döner ve olay
sayısı already_accepted alanında yer alır. Yeniden denerken asıl olay
kimliklerini koruyun.
Yerel zarf yanıtı
POST /api/telemetry/ingest, her akış için kabul edilen öğe sayılarıyla
200 OK döndürür:
metrics veya context_updated alanı yoktur. Bunları
eklemeyin. already_accepted, id değerini LogBrew’ün bu proje için daha önce
kabul ettiği öğeleri sayar. Doğrudan yerel zarf
bölümüne bakın.
Veri alımı hataları
code: ingest_key_invalid ile 401, alım bearer tokenının iptal edildiği,
süresinin dolduğu veya proje için geçerli olmadığı anlamına gelir.
POST /v1/events üzerinde bearer tokenı yoksa veya token bir alım anahtarı
değilse code: unauthorized ile 401 döner. Proje kapsamlı güncel alım bearer
tokenını kullanın. Hesap bearer tokenıyla yeniden denemeyin.
Reddedilen bir SDK toplu gönderimi code: validation_failed ile 422
döndürür:
error değerleri arasında
SDK event batch requires at least one event ve
SDK event type is not supported by this ingest route bulunur. SDK sürümünü
ve aktarım yapılandırmasını kontrol edin. Boş bir toplu gönderim yapmayın.
Sırf doğrulamayı geçmek için olay türlerini veya kimliklerini değiştirmeyin.
POST dışında bir yöntemle yapılan istek code: method_not_allowed ile 405
döndürür. Okunamayan bir JSON gövdesi code: invalid_json döndürür.
Telemetri listesi yanıt biçimi
Liste rotaları varsayılan olarak yalın bir JSON dizisi döndürür. Başarılı boş liste[] olur.
pagination=cursor ile rota bir zarf döndürür. Koleksiyon anahtarı sinyale
göre değişir:
next_cursor, devam alanlarını içeren bir nesnedir. Son sayfada null olur.
Satırlar en yeniden eskiye sıralanır. Cursor ile sayfalama
bölümüne bakın.
Log yanıtı
limit=1 ile bir log cursor sayfası:
level, gösterim için severity bulunur. İkisi de
standart değeri tutar. triage, bir önem düzeyi kuralının sonucunu tutar.
Önem düzeyi kuralı yanıtları bölümüne bakın.
Logun iz bağlantısı yoksa trace_id ve span_id değerleri null olur. Bu
durumda next_action, telemetry_logs hedefiyle inspect_related_logs olur.
Loglar, sorunlar ve aksiyonlar aynı 2 next_action çiftini kullanır.
GET /api/logs/{log_id}, tek bir logu aynı yapıda döndürür.
Sorun yanıtı
GET /api/telemetry/issues/{issue_id}, gruplanmış tek bir sorun döndürür.
Liste de aynı nesneleri döndürür. Bu örnek varsayılan yanıt sürümü 1’i
kullanır:
status değeri unresolved, resolved veya ignored olur.
Arşivlenmiş bir sorunda triage.ignored değeri true olur. next_action
çiftleri ve onları izleyen okumalar için
Bir sorunu inceleyin sayfasına bakın.
first_seen_at ve last_seen_at, ilk ve en son oluşumun zamanlarıdır. Durum
değiştiğinde değişmezler.
Bazı alanlar yalnızca LogBrew’de veri varsa görünür:
symbolication.status değeri resolved, invalid_metadata,
artifact_not_found, source_not_resolved veya unavailable olur. Liste,
durum değişiklikleri ve kural değişiklikleri symbolication döndürmez.
response_version=2 ile sorun aynı alanları içerir. Şu değişiklikler olur:
error ve
critical için high, warning için medium, info için low olur.
Öncelik triage.effective_severity değerini kullanır. Bu yüzden bir sorun
önem düzeyi kuralı onu değiştirebilir.
response_version=3 ile sorun, sürüm 2’nin tüm alanlarını ve assignee
alanını içerir. Sorunun sorumlusu yoksa assignee değeri null olur:
Atanan üye projeyi artık okuyamıyorsa sorunda sorumlu görünmez.
response_version=4 ile assignee alanında type de bulunur. user
türündeki sorumluda, sürüm 3’teki gibi user_id, name ve email vardır.
team türündeki sorumluda team_id, slug ve name vardır. Sürüm 3,
sorumlu ekibi null olarak gösterir. CLI sürüm 4’ü ister:
response_version değeri code: validation_failed ile 422
döndürür. Bir cursor sayfası, issues içindeki her sorun için aynı sürümü
kullanır.
Sorumlu listesi yanıtı
GET /api/telemetry/issues/assignees?project_id=<project_id>, projede sorun
atanabilecek tüm hesapları döndürür:
teams alanını da almak için response_version=2 ekleyin: projenin
organizasyonundaki her ekip team_id, slug ve name ile gelir.
Hesap projeyi okuyamıyorsa rota code: not_found ile 404 döndürür.
Aksiyon yanıtı
distinct_id tek bir aktörü veya oturumu izler. distinct_id ve
session_id değerlerini opak kimlikler olarak ele alın. session_id ve
trace_id eksikse null olur. span_id eksikse gönderilmez. Bir aksiyonun
önem düzeyi yoktur. Ürün olaylarını yakalama sayfasına
bakın.
Metrik yanıtı
unit, temporality, trace_id ve span_id eksikse
null olur. null değeri sıfır değildir.
Sürüm yanıtı
trace_health.status, satırda iz yoksa unknown, aksi hâlde
no_errors_observed veya errors_observed olur. error_rate_basis_points,
hata span’i olan izlerin 0 ile 10000 arasındaki payıdır. Tüm istekler için
bir hata oranı değildir.
next_action, veri içeren ilk sinyal türünü şu sırayla gösterir:
Sürümler sayfasına bakın.
İz keşfi yanıtı
GET /api/telemetry/traces?pagination=cursor, her iz için bir satır ve dönen
sayfa için bir naming_quality kaydı döndürür:
naming_quality yalnızca dönen sayfayı kapsar. Hesabın tamamı için bir puan
değildir. truncated: true, başka bir sayfa olduğu anlamına gelir. Sayfada
genel bir ad, eşleşmeyen bir rota veya genel bir işlem varsa next_action,
sdk_configuration hedefiyle improve_trace_naming olur.
pagination=cursor olmadan rota, izlerden oluşan yalın bir dizi döndürür ve
naming_quality döndürmez.
next_cursor, time ve trace_id değerlerini tutar. Bunları cursor_time
ve cursor_trace_id olarak gönderin.
GET /api/telemetry/traces/{trace_id}, tek bir izin span’lerini döndürür.
GET /api/telemetry/traces/{trace_id}/summary; kök span’i, hata span’lerini,
hizmetleri, süreyi ve en yavaş yolu ham span öznitelikleri olmadan döndürür.
Özet rotasındaki 404, kapsamın tamamıyla eşleşen bir iz olmadığı anlamına
gelir. Filtreleri kaldırıp yeniden denemeyin.
İz span’leri ve özet yanıtları
bölümüne bakın.
Boş listeler ve eksik kayıtlar
Bir liste okumasında hiç eşleşme olmayabilir. Ayrıntı okumasının sözleşmesi farklıdır:
Eksik bir log şu
404 yanıtını döndürür:
"error": "issue not found" kullanır. Eksik bir iz özeti
"error": "trace not found" kullanır. Bilinmeyen bir kimlik ile hesabın
okuyamadığı bir kimlik aynı yanıtı döndürür.
Hesabın okuyamadığı tek bir project_id içeren liste, boş bir listeyle 200
döndürür. Veri olmadığını bildirmeden önce proje kimliğini kontrol edin.
Reddedilen proje seçimleri
Log, sorun, aksiyon, metrik, sürüm ve iz listeleriproject_id ile tek bir
proje veya project_ids ile 2 ila 50 proje kabul eder. Log özniteliği
kataloğu aynı seçicileri kabul eder. Sorun oluşum geçmişi bunları kabul etmez.
Hem project_id hem project_ids içeren bir istek 422 döndürür:
project_ids de code: validation_failed ile 422 döndürür.
Hesap bir project_ids kümesindeki projelerden birini okuyamıyorsa isteğin
tamamı 404 döndürür. Diğer projeleri kısmi sonuç olarak döndürmez:
code: forbidden ile 403 döndürür.
Proje kapsamı bölümüne
bakın.
Cursor hataları
Loglar, sorunlar, aksiyonlar, metrikler ve sorun oluşumlarıcursor_time ve
cursor_id kullanır. Reddedilen bir cursor code: validation_failed ile
422 döndürür. Bu hatalar listenin boş olduğu anlamına gelmez.
Örneğin:
next_cursor nesnesini eksiksiz kopyalayın. cursor_time
yerine şimdiki zamanı koymayın. Cursor’ı kaybettiyseniz pagination=cursor ve
asıl filtrelerle yeniden başlayın. Bilinmeyen bir sorgu anahtarı veya yanlış
türde bir değer "error": "invalid query parameters" ile 422 döndürür.
Sürüm cursor yanıtları
Sürüm cursor’ının 5 alanı vardır. Eşleşme olmayan başarılı bir istek200
döndürür:
next_cursor değeri null değilse 5 değerin tamamını sonraki istekte
gönderin:
cursor_project_id bir konumu işaretler. project_id veya project_ids
yerine geçmez. Asıl proje ve filtre parametrelerini koruyun. Her değeri URL
kodlamasıyla gönderin.
pagination=cursor ile eksik bir cursor ya da boş bir sürüm, ortam veya hizmet
değeri "error": "all release cursor fields must be sent together" ile 422
döndürür. Geçersiz bir cursor_time ve eksik bir pagination=cursor,
diğer cursor’larla aynı hataları döndürür.
İz keşfi hataları
Bu hatalarGET /api/telemetry/traces için geçerlidir. Her biri
code: validation_failed ile 422 döndürür. Reddedilen bir istek boş bir
sonuç değildir.
İki iz durumunu birlikte almak için
status göndermeyin. Sonraki sayfa için
next_cursor.time değerini cursor_time alanına, next_cursor.trace_id
değerini cursor_trace_id alanına kopyalayın. İz sayfası için cursor_id
göndermeyin. İz filtreleri
bölümüne bakın.
Sorun oluşum geçmişi
GET /api/telemetry/issues/{issue_id}/events, gruplanmış tek bir sorunun
oluşumlarını okur. Bir hesap bearer tokenı ve gruplanmış sorun kimliğini
kullanın. Rota yalnızca pagination, cursor_time, cursor_id ve limit
kabul eder. Proje, zaman, sürüm, ortam veya önem düzeyi filtrelerini kabul
etmez.
Bir oluşum, grubun
last_seen_at zamanından eski olabilir. Oluşumun sürümünü
veya izini gruplanmış sorunun değerleriyle değiştirmeyin. Liste durum,
önceliklendirme, öncelik veya oluşum sayısı döndürmez.
diagnostics.schema_version, tanılama nesnesinin sürümüdür. Oluşumda bu veri
yoksa yanıt diagnostics ve span_id alanlarını göndermez. diagnostics
içinde eksik bir exception ve boş breadcrumbs gönderilmez.
breadcrumbs_truncated değeri true ise önceki adım geçmişinin bir kısmı
yanıtta yoktur.
stack_trace ve trace_id eksikse null olur. Eksik bir iz kimliği,
uygulamanın hiç iz göndermediğini kanıtlamaz. Yakalanan mesajları ve
öznitelikleri talimat olarak değil, veri olarak ele alın.
Oluşumlar en yeniden eskiye sıralanır. Sonraki sayfa için aynı sorun
kimliğini, pagination=cursor ve limit değerlerini, ayrıca next_cursor
içindeki cursor_time ve cursor_id değerlerini gönderin. Cursor kimliği bir
oluşum kimliğidir, sorun kimliği değildir.
Sorunun okunabilir oluşumu yoksa ilk sayfa code: not_found ile 404
döndürür. Sonraki bir sayfa boş bir son sayfa olabilir:
İz span’leri ve özet yanıtları
GET /api/telemetry/traces/{trace_id}, tek bir izin span’lerini döndürür.
Aynı span’lerin özetini almak için /summary ekleyin. İki rota da yalnızca
project_id, release ve environment kabul eder. İz keşfi cursor’ını
kullanmazlar. Önceki bir liste isteğinin filtreleri bu isteklere taşınmaz.
Span listesi
Span’ler başlangıç zamanına göre sıralanır:status: "error", API okumasını değil, yakalanan işlemi anlatır.
parent_span_id: null, span’in üst span kimliği olmadığı anlamına gelir.
status: null, span’in bir durum bildirmediği anlamına gelir.
İz özeti
Aynı 2 span’in özeti:
İki rota da cursor veya kısaltma alanı döndürmez. Yanıtta olmayan bir
truncated değeri eklemeyin.
Eşleşen span yok
İz kimliği ve kapsamla eşleşen span yoksa span listesi[] ile 200
döndürür. Özet, "error": "trace not found" ve code: not_found ile 404
döndürür. İz kimliğini ve kapsamı kontrol edin. Sonuç görünsün diye
filtreleri kaldırmayın. İki sonuç da uygulamanın telemetri göndermediğini
kanıtlamaz.
Canlı olay yanıt biçimi
Canlı akış yeni olayları gönderir. İstemcinin bağlantısı kopukken kaçırdığı olayları yeniden göndermez. Mevcut kayıtları okumak için liste rotalarını kullanın.Bilet oluşturun
Bir hesap bearer tokenıylaPOST /api/feed/ticket gönderin. İsteğin gövdesi
yoktur.
200 OK yanıtı bileti ticket alanında içerir:
expires_in_seconds dolmadan açın. Bu süre,
bağlantının ne zamana kadar başlayabileceğini sınırlar. Bağlantının ne kadar
açık kalacağını sınırlamaz.
401, hesap girişinin geçerli olmadığı anlamına gelir. Bilet istemeden önce
yeniden giriş yapın. POST dışında bir yöntem code: method_not_allowed ile
405 döndürür.
Bağlantıyı açın
Bir WebSocket istemcisiniwss://api.logbrew.co/api/feed/live?ticket=<feed-ticket> adresine bağlayın.
Bileti URL kodlamasıyla gönderin. URL’ye hesap bearer tokenı veya alım bearer
tokenı koymayın. 401, biletin veya hesap girişinin geçerli olmadığı anlamına
gelir. Yeniden giriş yaptıktan sonra yeni bir bilet oluşturun.
Bir hatadan sonra yeniden bağlanmadan önce bekleyin. Ara vermeden döngü
içinde yeniden bağlanmayın.
Mesajları okuyun
Her mesaj bir{ "type": "...", "data": ... } zarfıdır. data alanını
ayrıştırmadan önce type alanını okuyun. İstemcinin desteklemediği türleri
atlayın.
native_issue olayı sorun yanıtı sürüm 1’i kullanır: arşivlenmiş bir sorun
ignored gösterir ve olayda öncelik yoktur. Metrikler ve sürümler canlı olay
türü değildir. Onları kendi liste rotalarıyla okuyun. Bilet bir proje seçmez.
Bir olayı proje görünümünde göstermeden önce project_id değerini kontrol
edin. logbrew watch --json bu akışı kullanır.
CLI referansı sayfasına bakın.
Kapanan bağlantıyı ele alın
Diğer bağlantı kopmalarında LogBrew nedeni olmayabilir. Yeniden bağlandıktan
sonra liste rotalarını yeniden okuyun ve kayıtları kimliğe göre eşleştirin.
Sorun durumu yanıt örnekleri
{ "status": "resolved" } ile PATCH /api/telemetry/issues/{issue_id},
güncellenen gruplanmış sorunla birlikte 200 OK döndürür. Yapı
sorun yanıtı ile aynıdır. Sürümü response_version sorgu
anahtarı seçer. Yanıt bir başarı işareti döndürmez.
Gövde status, priority ve assignee alanlarından en az 1’ini ayarlar.
status; unresolved, resolved veya archived kabul eder. ignored,
archived için eski bir addır.
Tek bir sorunu güncelleyin
bölümüne bakın.
Başarıyı göstermeden önce dönen id, status ve priority değerlerini
kontrol edin. Sonucu gönderdiğiniz değerlerden oluşturmayın. Durum
değişikliği oluşumları silmez, first_seen_at ve last_seen_at değerlerini
değiştirmez. severity değerini veya bir önem düzeyi kuralını da değiştirmez.
Reddedilen bir değişiklik code: validation_failed ile 422 döndürür:
İstenen değere zaten sahip olan bir alan değişmez. Zaman aşımından veya
kaybolan bir yanıttan sonra aynı isteği yeniden gönderin ya da önce sorunu
okuyun. Güncel durumu okumadan farklı bir değişiklik göndermeyin.
Yazma işlemleri bölümüne bakın.
POST /api/telemetry/issues/bulk, istenen her sorun kimliği için 1 sonuçla
200 OK döndürür. Sonuçlar istekteki sırayla gelir. Bulunan her sorun sürüm
3 yapısını kullanır. not_found sonucunda issue: null olur:
outcome değeri
updated, unchanged veya not_found olur. Tekrarlanan bir istek
unchanged döndürür ve hiçbir şeyi değiştirmez.
Sorunları toplu güncelleyin
bölümüne bakın.
Toplu istek şu durumlarda bütünüyle başarısız olur:
Analiz isteği kapsamı
Analiz rotaları, metrik serisi rotası ve sinyal hacmi rotası tek bir projeyi ve tek bir zaman aralığını okur. Her istekproject_id ve since gerektirir.
since, 24h veya 7d gibi kısa bir süre ya da bir RFC3339 zaman damgası
kabul eder. until bir RFC3339 zaman damgası kabul eder. Varsayılan değeri
istek zamanıdır. Aralık since değerini içerir, until değerini içermez ve
31 günü aşamaz.
service_name, release ve environment isteğe bağlı tam eşleşme
filtreleridir. LogBrew boşlukları kırptıktan sonra her değer 1 ile 256
karakter arasında olmalıdır. Segment karşılaştırma rotası bu filtreleri en üst
düzeye değil, her segmentin içine koyar.
Hesap projeyi okuyamıyorsa bu rotalar sıfır sayılarla 200 OK döndürür.
404 döndürmezler. Boş bir sonuç proje erişimini doğrulamaz. project_id
değerini hesabın okuyabildiği projelerle karşılaştırın. Projeyi içermeyen bir
MCP bağlantısı üzerinden yapılan istek 403 ve forbidden döndürür.
Her yanıt
schema_version, query ve purpose ile başlar. query, uygulanan
kapsamı geri yansıtır. Göndermediğiniz bir filtreyi içermez. purpose,
rotanın neyi yanıtladığını anlatan düz metindir.
Paydası sıfır olan bir oran gönderilmez. Gönderilmeyen oran 0 veya null
değildir. Bir orana güvenmeden önce coverage alanını okuyun.
Bu hatalar HTTP
422 ve validation_failed kullanır:
Örneğin
project_id içermeyen bir istek şunu döndürür:
error
metinleriyle kullanır. Bu hatalar aşağıda kendi bölümlerinde listelenir.
Bilinmeyen bir sorgu anahtarı
geçersiz sorgu parametreleri
yanıtıyla 422 döndürür. Bilinmeyen bir JSON alanı, eksik bir zorunlu JSON
alanı veya desteklenmeyen bir enum değeri invalid_json döndürür.
Geçersiz JSON bölümüne bakın. Yanlış
HTTP yöntemiyle yapılan istek 405 ve method_not_allowed döndürür. next
metni desteklenen yöntemi ve alanları adlandırır.
Desteklenmeyen yöntem
bölümüne bakın.
Ürün analizleri genel bakış yanıtı
GET /api/telemetry/analytics/overview, tek bir projedeki etkinliği gösterir:
aksiyon hacmi, kullanıcılar, oturumlar, bir zaman serisi, en sık aksiyonlar ve
sınıflandırılmış sayfa görüntülemeleri, ekran görüntülemeleri ve etkileşimler.
Diğer analiz rotaları için tam olay adlarını bulmak üzere bu rotayı kullanın.
response_version=3 gönderin. Sürüm 1 ve 2 aynı sayıları döndürür, ancak
estimation.method alanında eski bir değer döndürür. Sürüm 1, tanımlı kullanıcıları
sayarken özne türünü kontrol etmez. Sürüm 2 ve 3 yalnızca user türündeki
özneleri sayar. Anonim özne sayılarını ve subject_coverage alanını da
ekler.
Bu istek bir saati beş dakikalık zaman dilimleriyle okur ve her en sık
listesinde iki satır döndürür:
Başarılı genel bakış
Bu yapay sonuçta projenin on iki zaman diliminden ikisinde 120 aksiyonu vardır. Yirmi aksiyon anonim öznelerden gelir. Her aksiyonun bir oturum kimliği vardır. Aksiyonların yarısında iz kimliği vardır.Genel bakışı okuyun
Beşsubject_coverage sayısının toplamı, bulundukları bölümün olay toplamına
eşittir. Yalnızca identified_user_events kullanıcılara sayılır.
anonymous_actions, summary.actions eksi identified_actions değeridir.
series yalnızca etkinlik olan zaman dilimlerini içerir. expected_buckets,
aralıktaki olası zaman dilimi sayısıdır. Grafiğiniz bu kuralı belirtmiyorsa
eksik bir zaman dilimini ölçülmüş sıfır olarak çizmeyin. Zaman dilimleri UTC
aralık sınırlarına hizalanır. Bir zaman diliminin içinde başlayan aralık, o
kısmi zaman dilimini de içerir.
classified_activity; sayfa görüntülemelerini, ekran görüntülemelerini ve
etkileşimleri sayar. Ekran görüntülemeleri ve etkileşimler aynı zamanda
aksiyondur. Sayfa görüntülemeleri aksiyon değildir. summary.actions değerini
classified_activity.summary.events değerine eklemeyin.
classified_activity.top_events içindeki kind ve event_name değerlerini
dönüşüm hunisi adımlarına, elde tutma seçicilerine, yaşam döngüsü
seçicilerine, yol çapalarına ve segment hedeflerine kopyalayın.
top_events_truncated alanındaki true değeri, daha az görülen adlar olduğu
anlamına gelir. Daha fazlasını görmek için top_limit değerini en fazla 20’ye
kadar artırın.
analysis_level değeri no_data, event_only, user_level veya
user_and_session olur. Projede aksiyon ve sınıflandırılmış olay yoksa
next_action.code değeri capture_product_activity olur.
Ürün analizleri
sayfasına bakın.
Genel bakış hataları
Genel bakış, ortak kapsam hatalarına ek olarak şu değerler için422 ve validation_failed döndürür:
Varsayılan
interval değeri auto olur. En fazla 300 zaman dilimi gerektiren
en küçük aralığı seçer. Varsayılan top_limit değeri 10 olur.
Sıralı dönüşüm hunisi yanıtı
POST /api/telemetry/analytics/funnel, 2 ila 8 adım boyunca sıralı
tamamlanmayı ölçer. Her kind ve event_name değerini genel bakıştaki
classified_activity.top_events içinden tam olarak kopyalayın. Benzer bir
aksiyon adı eşleşme sayılmaz. Bu istek gövdesi, /pricing sayfasını
görüntüleyip ardından bir saat içinde kaydı tamamlayan oturumları sayar:
analysis_unit değeri session veya identified_user olur. Varsayılan
session olur. Adım kind değeri page_view, screen_view veya
interaction olur. Dönüşüm hunisi rotası response_version kabul etmez.
Başarılı dönüşüm hunisi
200 OK yanıtı:
coverage
alanını okuyun. selected_unit_coverage_rate, seçilen adım olaylarından
LogBrew’ün kullanabildiği paydır. Yanıt ham kimlikleri döndürmez.
Ürün analizleri sayfasına
bakın.
Dönüşümü ve kapsama oranını okuyun
entry_rate, entered_units bölü candidate_units değeridir: 60’ta 50.
overall_conversion_rate, completed_units bölü entered_units değeridir:
50’de 15, yani %30. 15’in tüm adaylara bölümü değildir. Bu sayılar birimlerin
neden durduğunu açıklamaz.
Kapsama oranı oturumları değil, olayları sayar. Burada 120 olay bir adımla
eşleşir ve bunların 20’sinde oturum kimliği yoktur. Sonuç bu 20 olayı oturum
sayılarının dışında tutar. Bunları başarısız 20 oturum olarak ele almayın.
İlk adımda conversion_from_previous yoktur. Son adımda
drop_off_to_next_units ve drop_off_to_next_rate yoktur.
Bir birim sonraki bir adıma yalnızca adım zamanları kesin olarak artıyorsa
ulaşır. Aynı zaman damgasına sahip olaylar art arda iki adımı karşılayamaz.
Son adım, ilk adımdan sonraki conversion_window_seconds içinde
gerçekleşmelidir.
Oturum modu kişileri değil, oturumları sayar. identified_user modunu
yalnızca user türünde opak bir özne kimliği taşıyan olaylar için kullanın.
Bu mod, dönüşüm süresi içindeki farklı oturumlardan gelen olayları
birleştirebilir. Sonuçları karşılaştırırken aynı birimi ve aynı adımları
koruyun.
Varsayılan conversion_window_seconds değeri 24 saat veya aralığın
uzunluğudur; hangisi daha kısaysa o geçerlidir. En büyük değer, tam saniyeye
yukarı yuvarlanmış aralık uzunluğudur.
Boş dönüşüm hunisi sonuçları
Başarılı boş bir yanıt da istenen adımları sıfırunits ile listeler. Aday
birim yoksa summary alanı entry_rate ve overall_conversion_rate
içermez. Rota, olay eşleşmedi diye 404 döndürmez.
Nedeni bulmak için coverage ve next_action alanlarını okuyun:
Reddedilen dönüşüm hunisi istekleri
Ortak kapsam hatalarına ek olarak şu istekler422
ve validation_failed döndürür. 2’den az veya 8’den fazla adım:
0 olan veya aralık uzunluğunu aşan bir conversion_window_seconds:
event_name
şunu döndürür:
product analytics funnel event_name must be non-empty, control-free, and at most 256 characters.
Bir interaction adımı geçerli bir aksiyon adı da olmalıdır. Değilse hata
product analytics interaction event_name must be a bounded stable action name
olur.
İsteği yeniden göndermeden önce düzeltin. Sırf boş olmayan bir sonuç almak
için adımları kaldırmayın veya analiz birimini değiştirmeyin.
Tam olay ve otomatik analiz
Elde tutma ve yaşam döngüsü iki istek yapısı kabul eder. Sorunuza yanıt veren yapıyı seçmek içinresponse_version kullanın:
Tam seçici
kind ve event_name içerir. kind değeri page_view,
screen_view veya interaction olur. event_name değerini
classified_activity.top_events içinden kopyalayın. Olay adını bir düğme
etiketinden tahmin etmeyin.
İki yapı da yalnızca kullanıcıları sayar: user türündeki opak özne
kimlikleri. Anonim özneler ve kullanılabilir özne kimliği olmayan olaylar
kullanıcı olarak sayılmaz. Yanıtlar hiçbir zaman özne kimliği döndürmez.
Sabit aralıklar hour, day, week ve thirty_day olur. Bunlar sabit
sürelerdir. thirty_day takvim ayı değil, 30 gündür. interval
göndermezseniz API 48 saat veya daha kısa bir aralık için hour, daha uzun
bir aralık için day kullanır.
Tam olay elde tutma isteği
Bu gövdeyiPOST /api/telemetry/analytics/retention adresine gönderin. İstek,
kullanıcıların aralıktaki ilk ödemelerinden sonra başka bir ödeme tamamlayıp
tamamlamadığını sorar:
until zamanından önce
gerçekleşmelidir. İki seçici aynı olay olabilir.
Başarılı tam olay elde tutma
Bu yapay örnekte iki kullanıcı ödemeyi tamamlar. İlk kullanıcı 1 Haziran’da 12:00’de ve tekrar 13:00’te ödemeyi tamamlar. İkinci kullanıcı 2 Haziran’da 12:00’de ödemeyi tamamlar. 2 Haziran’da 13:00’te ikinci kullanıcı bir sayfayı görüntüler, ancak başka bir ödeme tamamlamaz.Elde tutmayı okuyun
Kapsama oranı sınıflandırılmış dört olayın tamamını sayar, ancak her ödeme seçicisiyle yalnızca üçü eşleşir. Sayfa görüntüleme geri dönüş sayılmaz. İki kullanıcıdan biri ödemeyi tekrarlar. Bu yüzdenreturn_rate_after_start
değeri 0.5 olur.
Çıkış noktasından sonra tam bir günlük gözlemi olan yalnızca ilk
kullanıcıdır. Bu kullanıcı gün içinde geri döner. Bu yüzden eğrideki oran
1.0 olur. İkinci kullanıcının yalnızca 12 saatlik gözlemi vardır. Bu
kullanıcı 0. dönem için uygun değildir. Bu yüzden ikinci kohortun hücresinde
retention_rate yoktur. Bu kullanıcıyı kaybedilmiş olarak saymayın.
weighted_retention_rate, elde tutulan tüm kullanıcıları tüm uygun
kullanıcılara böler. fully_observed_cohort_average_rate, her kullanıcısı
uygun olan kohortların oranlarının basit ortalamasıdır. Kohortlar since
zamanında başlayan sabit zaman dilimleridir. cohorts yalnızca kullanıcısı
olan kohortları içerir.
mode: "return_on_or_after" ile eğri window_end_seconds içermez.
Otomatik elde tutma
response_version: 2 gönderin ve start_event veya return_event
göndermeyin. Desteklenen her sayfa görüntüleme, ekran görüntüleme ve etkileşim
hem başlangıç hem geri dönüş sayılır. Bu sürüm bir olay kümesi seçer. Bir SDK
yakalama biçimi seçmez.
summary, curve, cohorts ve
next_action yapıları bulunur. Bu alıntı değişen alanları gösterir. Bu
örnekte aynı iki kullanıcının üç olayı vardır ve sayfa görüntüleme yoktur:
start_events ve return_events değerlerinin ikisi de
classified_events değerine eşittir. Bu sayılar kullanıcı değil, olaydır.
Uygun kullanıcı olmadan elde tutma
Başarılı bir sonuçta kohort kullanıcısı olmayabilir. Bu alıntı, kohortu olmayan istenmiş tek bir dönemi gösterir:coverage ve next_action alanlarını okuyun. Bu alanlar sınıflandırılmış
olayı olmayan bir kapsamı (capture_product_activity) kullanıcısı olmayan
olaylardan (identify_product_users veya identify_returning_users) ayırır.
Eksik bir oran ölçülmüş bir sıfır değildir.
Elde tutma hataları
Ortak kapsam hatalarına ek olarak şu istekler422
ve validation_failed döndürür:
Hücre sınırı kullanıcı sayısını değil, aralığı ve dönemleri kullanır.
interval: "hour" ile 30 günlük bir aralıkta 720 kohort zaman dilimi olur.
interval_count: 1 ile bu 720 hücre eder. Bu da 500’den fazladır:
Tam olay yaşam döngüsü isteği
Bu gövdeyiPOST /api/telemetry/analytics/lifecycle adresine gönderin. İstek,
kullanıcıları projedeki tüm etkinliğe göre değil, tek bir olaya göre
sınıflandırır:
history_period_count, LogBrew’ün geçmiş olarak okuduğu, since öncesindeki
tamamlanmış dönemleri belirler. 2 ile 31 arasında bir değer kabul eder.
Varsayılan 2 olur. Bir kullanıcı başka etkinlikler yaparken bu olay için
etkin olmayan durumda olabilir.
Başarılı tam olay yaşam döngüsü
Bu yapay örnek iki günlük geçmiş ve iki analiz günü kullanır. Harfler yalnızca örnek kullanıcıları belirtir. Yanıt kullanıcı kimliği döndürmez.
C, 2 Haziran’da bir sayfayı da görüntüler. Bu olay ödeme seçicisiyle
eşleşmez.
Yaşam döngüsünü okuyun
1 Haziran’da A geri dönen, B yeniden etkinleşen, C yeni, D etkin olmayan durumdadır. 2 Haziran’da A ve B geri dönendir. C ise sayfa görüntülemesine rağmen ödeme için etkin olmayan durumdadır. 2 Haziran’daki net değişim2 - 3 = -1 olur.
Her zaman diliminde yeni, geri dönen ve yeniden etkinleşen kullanıcıların toplamı
active_subjects değerine eşittir. returning_subjects artı
dormant_subjects, previous_active_subjects değerine eşittir.
net_active_change, active_subjects eksi previous_active_subjects
değeridir.
Farklı kullanıcıları bulmak için günlük etkin sayıları toplamayın. Burada
günlük sayıların toplamı 5’tir, ancak analysis_active_subjects değeri 3’tür.
Geçmiş ve analiz boyunca dört farklı kullanıcı görünür.
until zamanından sonra biten son zaman diliminde fully_observed değeri
false olur. Dönemin tamamı gözlemlenebilir olduğunda sayıları değişebilir.
next_action bir inceleme önerir. Bir neden göstermez.
Otomatik yaşam döngüsü
response_version: 2 gönderin ve event seçicisi göndermeyin. Desteklenen
her sayfa görüntüleme, ekran görüntüleme ve etkileşim etkinlik sayılır:
summary, buckets ve next_action
yapıları bulunur. Bu alıntı değişen alanları gösterir:
coverage.selected_events değeri
coverage.analysis_classified_events değerine eşittir. Beşinci
limitations girdisi şudur:
Returning, resurrected, and dormant compare any supported classified product activity; no event is ranked, selected, or inferred.
Kullanıcı olmadan yaşam döngüsü
Ne analiz aralığında ne de geçmişte kullanılabilir kullanıcı yoksabuckets
boş olur ve summary alanı latest_fully_observed_period içermez:
Yaşam döngüsü hataları
Ortak kapsam hatalarına ek olarak şu istekler422
ve validation_failed döndürür:
Örneğin on
week geçmiş dönemi 70 gün gerektirir:
Seçilen analiz kapsamını okuyun
Tam olay yanıtlarındaschema_version: 1 bulunur. Bu yanıtların query
alanı seçicileri geri yansıtır ve activity_scope içermez. Otomatik
yanıtlarda schema_version: 2 ve query.activity_scope: "all_classified_activity"
bulunur. Bu yanıtlar seçicileri içermez. Farklı bir seçici, yakalanan
etkinlik hiç değişmeden sonucu değiştirebilir.
Metrik serisi yanıtı
GET /api/telemetry/metrics/series, tek bir projedeki tek bir tam metrik
adını okur. Adı GET /api/telemetry/metrics yanıtından kopyalayın. Bu istek
bir delta sayacını hizmete göre gruplar:
Başarılı metrik serisi
Bu yapay yanıt tek bir delta sayacı serisi içerir. İlk zaman diliminde2,
3 ve 5 değerli üç ölçüm örneği vardır. Son zaman diliminde 1 ve 4
değerli iki ölçüm örneği vardır. Ortadaki zaman diliminde ölçüm örneği yoktur.
Bu yüzden yanıtta o dilim için nokta yoktur.
Metrik serisini okuyun
İlk nokta 10 ölçüm örneğini değil, tamamlanan 10 işi kaydeder.rate_per_second, bu değişimi 300 saniyelik zaman dilimine böler. last
toplam değil, kaydedilen son değişimdir.
Metrik toplama anlamları
bölümüne bakın.
Bir serinin türü ve zamansallığı, onun aggregation.code değerini ve her
noktadaki istatistikleri seçer. Nokta, o seriye uygulanamayan bir istatistiği
içermez. Eksik bir istatistik sıfır değildir.
limited bir hata değil, başarılı bir yanıttır. LogBrew’ün neden yalnızca ham
değerleri gösterdiğini açıklayan aggregation.limitation alanını ekler.
ready, yakalamanın eksiksiz olduğunu kanıtlamaz.
Grafik çizmeden önce coverage alanını okuyun:
samples, yanıtın döndürmediği seriler dâhil eşleşen tüm serilerin ölçüm örneklerini sayar.serieseşleşen serileri sayar.returned_seriesvepointsdönen veriyi sayar.series_limitdaha düşük hacimli serileri çıkardıysatruncateddeğeritrueolur.expected_buckets_per_series, aralıktaki olası zaman dilimi sayısıdır.
trace_exemplars
döndürür. İz örneği (trace exemplar), tek bir ölçüm örneğini bir ize bağlar.
Zaman dilimindeki her ölçüm örneğini açıklamaz. Hiçbir noktada iz örneği
yoksa next_action.target değeri metric_samples olur.
Metrik serisi kapsamı ve hataları
project_id, name ve since zorunludur. name en fazla 200 karakter
olabilir. interval değeri auto, 1m, 5m, 15m, 1h, 6h veya 1d
olur. Varsayılan auto olur. Bu değer, en fazla 300 zaman dilimi gerektiren
en küçük aralığı seçer. Açıkça verilen bir aralık 500’den fazla zaman dilimi
gerektiremez.
group_by değeri none, service_name, release veya environment olur.
Varsayılan none olur. Gruplama olmadan farklı türler, birimler ve
zamansallıklar ayrı serilerde kalır. series_limit, 1 ile 20 arasında bir
değer kabul eder. Varsayılan 10 olur.
Boş bir sonuç series: [] ve sıfır samples ile 200 döndürür. coverage
nesnesi first_seen_at ve last_seen_at içermez. Bu, uygulamanın metriği hiç
göndermediğini kanıtlamaz. Projeyi, metrik adını ve zaman aralığını kontrol
edin.
name gönderilmezse 422 döner:
422 döndürür:
422 hataları metric series group_by is not supported,
metric series interval is not supported ve
metric series_limit must be between 1 and 20 olur.
Yol analizi yanıtı
POST /api/telemetry/analytics/paths, aynı oturumda seçilen bir olaydan önceki
veya sonraki adlandırılmış olayları bulur. Seçilen olay çapadır. Çapanın
kind ve event_name değerlerini classified_activity.top_events içinden
kopyalayın. Rota schema_version: 1 döndürür. response_version veya
analysis_unit kabul etmez.
direction ve anchor zorunludur.
Başarılı yol analizi
Bu yapay sonuçta dört oturum çapayı içerir. Dönen iki yol bu oturumların üçünü temsil eder. Daha alt sıradaki bir yol döndürülmez.Yolları okuyun
share_of_anchored_sessions, bir yolun oturumlarını çapalı dört oturumun
tamamına böler. Paylar %67 ve %33 değil, %50 ve %25 olur.
unrepresented_sessions, dönen hiçbir yolun temsil etmediği çapalı oturumları
sayar. paths_truncated: true, sonucun eksik olduğu anlamına gelir.
Kapsama oranı oturumları değil, olayları sayar. Burada beş olay çapayla
eşleşir, ancak birinde oturum kimliği yoktur. Bu olay bir yola giremez. Her
yol en fazla 3 iz örneği döndürür. Kendi yanıtınızdaki bir iz kimliğini
kullanın. Bir iz bağlantısı, bir kullanıcı aksiyonuna veya bir hataya neyin
yol açtığını göstermez.
Düğümler iki yönde de zaman sırasındadır. Yol, oturumun tam bir yeniden
oynatması değildir. LogBrew çapayı seçmeden önce oturum başına en fazla 1024
adlandırılmış olay okur:
following için en erken olayları, preceding için
en geç olayları. Bu sınırın dışındaki bir çapa sonuca girmeyebilir.
Çapayı özelliğe göre filtreleyin
Her biri tek bir tamkey ve value içeren en fazla dört property_filters
gönderin. Anahtarı özellik kataloğundan
kopyalayın. Filtreler yalnızca çapaya uygulanır, çevresindeki olaylara
uygulanmaz. Değerler büyük/küçük harfe duyarlıdır. Filtreler varsa query
onları geri yansıtır ve coverage.anchor_property_filters şunları bildirir:
Eksik anahtarlar ve farklı değerler farklı düzeltmeler gerektirir. Bunları
toplamayın. İstekte özellik filtresi yoksa nesne gönderilmez.
Boş yollar ve reddedilen istekler
Boş birpaths dizisi başarılı bir 200 yanıtı olabilir. summary,
coverage ve next_action alanlarını okuyun. Şu kodlar nedenleri ayırır:
capture_product_activity, choose_captured_path_anchor,
capture_anchor_properties, improve_anchor_property_coverage,
verify_anchor_property_values, sessionize_product_activity ve
narrow_or_move_path_anchor.
Ortak kapsam hatalarına ek olarak şu istekler 422
ve validation_failed döndürür:
Örneğin
depth: 0 şunu döndürür:
Analiz özellik kataloğu
GET /api/telemetry/analytics/properties, tek bir projedeki sınıflandırılmış
ürün olaylarının özellik anahtarlarını listeler. Anahtarları
segment karşılaştırmalarında ve yol çapası
filtrelerinde kullanın. Katalog anahtarları ve sayıları döndürür. Hiçbir
zaman özellik değerlerini veya kimlikleri döndürmez.
Kullanılabilir özellik anahtarlarını okuyun
project_id ve since gönderin. until, service_name, release,
environment, limit ve response_version da gönderebilirsiniz. limit,
1 ile 50 arasında anahtar kabul eder. Varsayılan 20 olur. Herkese açık
estimation.method değerini almak için response_version=2 gönderin.
Başarılı özellik kataloğu
Bu yapay sonuçta 100 sınıflandırılmış olay vardır. Bunların beşi güncel özellik dizininden önce yakalanmıştır.Kataloğu yorumlayın
source, resource.runtime.name gibi standart bir bağlam anahtarı için
standard_context, tag. ile başlayan bir anahtar için custom_tag olur.
value_type her zaman string olur. properties, events değerine göre en
yüksekten başlayarak sıralanır.
tag.plan, 100 sınıflandırılmış olayın 60’ında bulunur. Yaklaşık 3 farklı
değeri vardır. Anahtarın katalog kaydı bu değerleri göstermez. Uygulamanızdan
bildiğiniz değerleri kullanın. Bir sayıdan değer tahmin etmeyin. Bir olayda
birden fazla anahtar olabilir. Bu yüzden anahtar başına events sayılarını
toplamayın.
Boş bir
properties dizisi, projede ürün olayı olmadığını kanıtlamaz.
summary, coverage ve next_action alanlarını okuyun.
Özellik kataloğu hataları
Ortak kapsam hatalarına ek olaraklimit=0 veya
limit=51, 422 döndürür:
1 veya 2 dışında bir response_version
product analytics response_version must be 1 or 2 döndürür. LogBrew
response_version değerini diğer değerlerden önce kontrol eder.
POST isteği 405 döndürür:
Analiz segment karşılaştırması
POST /api/telemetry/analytics/segments/compare, tek bir projedeki 2 ila 4
segmentte oturumların veya kullanıcıların tek bir tam olaya ne sıklıkla
ulaştığını karşılaştırır. Bir segment olayları hizmete, sürüme, ortama ve
özellik değerlerine göre seçer. İlk segment temel segmenttir.
Karşılaştırmayı tanımlayın
Bu JSON gövdesini hesap kimlik doğrulamasıyla veContent-Type: application/json ile gönderin. Buradaki basic ve premium,
LogBrew planları değil, örnek uygulamanın plan değerleridir:
target ve segments zorunludur. analysis_unit değeri session veya
identified_user olur. Varsayılan session olur. Bu değer kişileri değil,
oturumları sayar. interval, genel bakışla aynı değerleri kabul eder.
Varsayılan auto olur.
Her segmentin benzersiz bir key, bir label ve farklı bir filtre kümesi
olmalıdır:
key: 1 ile 32 bayt arası. Küçük bir ASCII harfiyle veya bir rakamla başlayın. Yalnızca küçük ASCII harfleri, rakamlar,_ve-kullanın.label: Kontrol karakteri içermeyen 1 ile 80 karakter arası.service_name,release,environment: İsteğe bağlı. Her değer kontrol karakteri içermeyen 1 ile 256 karakter arasındadır.property_filters: 0 ile 4 arası filtre. Her anahtar bir segmentte bir kez geçebilir. Bir olay segmentin tüm filtreleriyle eşleşmelidir. Değerler büyük/küçük harfe duyarlıdır ve 1 ile 256 karakter arasındadır. LogBrew baştaki ve sondaki boşlukları kırpar.
Başarılı segment karşılaştırması
Bu yapay sonuçta temel segment 50 oturumun 10’unda ödemeye ulaşır. Premium segmenti 60 oturumun 18’inde ulaşır.Oranları ve farkları okuyun
eligible_units, segmentte sınıflandırılmış etkinliği olan oturumları veya
kullanıcıları tahmin eder. reached_units, bunların kaçının hedefe ulaştığını
tahmin eder. reach_rate, reached_units bölü eligible_units değeridir.
Seçilen birim kimliği olmayan olaylar bu birimlere sayılmaz.
Temel oran %20’dir. Premium oranı %30’dur. Fark 10 yüzde puanıdır. Göreli
artış %10 değil, %50’dir. Küçük ondalık hataları kayan nokta aritmetiğinden
gelir. Oranları gösterim için yuvarlayın, ancak hesaplamayı dönen değerlerle
yapın. Temel segmentte comparison_to_baseline yoktur. Temel ulaşma oranı
sıfırsa göreli artış gönderilmez.
query içinde göndermediğiniz bir segment filtresi null olur. Boş bir
property_filters listesi gönderilmez.
coverage.property_filters,
yol çapası filtresi kapsama oranı ile aynı
alanlara sahiptir. Burada matching_events, classified_events değerine
eşittir. Eksik anahtarları ve farklı değerleri ayrı tutun. Segmentler
örtüşebilir ve bir oturum birden fazla zaman diliminde yer alabilir. Birim
sayılarını segmentler veya zaman dilimleri arasında toplamayın.
Karşılaştırma betimleyicidir. confidence.causal_inference değeri
not_established, confidence.statistical_significance değeri not_tested
olur. %20’ye karşı %30’luk bir oran, bir planın daha fazla ödemeye yol
açtığını göstermez.
Segment karşılaştırma hataları
Ortak kapsam hatalarına ek olarak şu istekler422
ve validation_failed döndürür:
interval hataları genel bakış hatalarıyla aynıdır.
Örneğin anahtarları farklı, filtreleri aynı iki segment şunu döndürür:
GET isteği 405 döndürür:
Sinyal hacmi yanıtı
GET /api/telemetry/summary/volume, tek bir proje ve zaman aralığı için
saklanan sinyalleri sayar. project_id ve since gerektirir. project_ids
kabul etmez.
until gelecekte olamaz. Göndermezseniz bitiş, istek zamanı olur. 24h gibi
kısa bir since, until zamanından geriye doğru sayar. interval değeri
auto, 1m, 5m, 15m, 1h, 6h veya 1d olur. Varsayılan auto, en
fazla 120 zaman dilimi gerektiren en küçük aralığı seçer. Bir istek 500’den
fazla zaman dilimi gerektiremez. Tek response_version değeri 1 olur.
Sinyal sayıları
Bu yapay yanıt bir dakikalık iki zaman dilimini kapsar. İstek,until
olmadan 12:02 UTC’de çalıştı. Hesabın saklama süresi 30 gündür. Dönen saklama
kuralını ve kesim zamanını okuyun. Bu değerlerin sizin hesabınız için de
geçerli olduğunu varsaymayın.
Her sayıyı kendi biriminde okuyun
total, serinin zaman dilimi sayılarının toplamıdır. peak, serinin en büyük
zaman dilimi sayısıdır. non_empty_buckets, sayısı sıfırdan büyük olan zaman
dilimlerini sayar. Beş seri her zaman bu sırayla gelir. Farklı sinyal
sayılarını tek bir etki puanında birleştirmeyin.
Zaman dilimleri query.since zamanında başlar. Bir zaman dilimi başlangıcını
içerir, bitişini içermez. Son zaman dilimi aralık süresinden kısa olabilir.
Yanıtta sürüm sayısı serisi yoktur. release_volume_not_included değerini
sıfır sürüm olarak okumayın.
Boş ve kısalmış aralıklar
Hiçbir sinyal eşleşmezse beş serinin tamamı yine bulunur ve noktalarında açık sıfır sayılar olur. Başarısız bir istek farklıdır. Bir hatayı sıfırlarla dolu bir grafikle değiştirmeyin.query.requested_since ile query.since değerlerini karşılaştırın. Saklama
süresi aralığı kısaltırsa coverage.retention.window_clipped değeri true
olur ve limitations içinde retention_window_clipped bulunur. İstenen
aralıktan hiçbir şey kalmazsa query.bucket_count değeri 0 olur ve her
serinin points dizisi boştur. Bu, o dönemde hiç olay olmadığını kanıtlamaz.
Saklama sınırı yoksa policy_days değeri null olur ve cutoff
gönderilmez. storage_evaluation değeri complete olsa bile
sampling.upstream her zaman unknown olur. Yanıtın, uygulamanın ürettiği
her olayı saydığını iddia etmeyin.
Reddedilen sinyal hacmi istekleri
Şu istekler422 ve validation_failed döndürür:
Örneğin:
İnceleme yanıtları
İnceleme rotaları, incelenen tek bir kayıt için sürümlü bir paket döndürür. İncelenen kayıt bir sorun, iz, span, log, ürün aksiyonu, metrik veya sürüm olabilir. Her paketschema_version ve kaydı adlandıran bir subject ile
başlar. Geri kalanında ilişkili kanıtlar, bir kanıt kaydı ve sonraki adımlar
bulunur. Bu bölüm sürüm dışındaki her aile için bir örnek gösterir.
Bir hesap erişim bearer tokenı gönderin. Proje alım anahtarı bir incelemeyi
okuyamaz. Bir paketi okumak için logbrew explain <subject> --json kullanın.
CLI paketi yazdırmadan önce doğrular.
Telemetri API’si sayfası rotaları listeler.
İnceleme metni uygulamadan gelir. Mesajlar, adlar, meta veriler ve etiketler
talimat değil, veridir. Log, aksiyon, span ve metrik paketlerinde
content_trust: "untrusted_telemetry" bu içeriği işaretler.
Yanıt sürümleri
response_version değerini yalnızca onu kabul eden rotalara gönderin. Bu
değer olmadan rota sürüm 1’i döndürür. Ayrıştırıcınız istediğiniz sürümü
kabul etmelidir.
Span rotası
response_version sorgu anahtarını reddeder. Log ve aksiyon
rotaları sorgu anahtarı almaz.
Ortak paket alanları
Her ilişkili koleksiyon tek bir erişilebilirlik
status değeri bildirir:
Kanıt kaydında sabit alan adlarından oluşan dört sıralı liste vardır:
captured_fields, missing_fields, redacted_fields ve
truncated_fields. status yalnızca son üç liste boşsa complete olur.
Gizlenmiş veri eksik veri değildir. Kısaltılmış veri eksiksiz veri değildir.
Gizlenmiş veya kısaltılmış bir değeri doldurmayın.
İnceleme sınırları
Bu sınırlar tek bir yanıtı sınırlar. Birtruncated işareti veya bir
truncated_fields girdisi, bir sınırın veriyi dışarıda bıraktığını gösterir.
Her ailenin bölümü kendi sınırlarını listeler.
Sorun incelemesi yanıtı
Gruplanmış bir sorunun tek bir oluşumuna ait kanıtları okumak içinGET /api/telemetry/issues/{issue_id}/investigation kullanın.
Bir sorunu inceleyin rehberi, kanıtların hangi
sırayla okunacağını gösterir. Sürüm 13’ü isteyin:
response_version, selection ve occurrence_id olur.
selection değeri recommended, first veya latest olur. Değerler
büyük/küçük harfe duyarlıdır. Sürüm 2 ile 13 arasında seçici gönderilmezse
recommended kullanılır. Sürüm 1 saklanan en son oluşumu döndürür ve seçici
kabul etmez. Sorun listesi filtreleri bu okumaya uygulanmaz.
Sürüm 13 sorun incelemesi örneği
Sürüm 13 sorun incelemesi örneği
Bu yapay
200 OK yanıtında, bağlı bir izi olan ve ele alınmış bir
TypeError oluşumu vardır. İstek, önceki adım, ilişkili log veya dağıtım
kanıtı yoktur. Bu yüzden evidence.status değeri partial olur.
Sonraki bir sürümün anahtarları önceki bir sürümde yoktur. Eksik bir anahtarı
null olarak okumayın.
subject.status ve lifecycle durumları, arşivlenmiş bir sorunu ignored
olarak bildirir. Sorun listesi ve ayrıntı yanıtları, yanıt sürümü 2 ve
sonrasında archived kullanır.
Sorun sınırları: Öneri en fazla 50 saklanmış oluşum okur. Eğilimde en fazla
30 zaman dilimi olur. Her dağılım en fazla 10 değer döndürür. Bir yığında en
fazla 32 çerçeve olur.
Sorun incelemesi istek hataları
selection veya occurrence_id değerlerinden yalnızca birini kullanın. Aynı
oluşumu seçseler bile ikisini birlikte göndermeyin:
Eksik bir oluşum, sorunun eksik olduğu anlamına gelmez.
404, başka bir
hesabın sorunu okuyup okuyamadığını göstermez.
İz incelemesi yanıtı
Tek bir izi hata yolu, en yavaş yolu ve ilişkili sinyalleriyle okumak içinGET /api/telemetry/traces/{trace_id}/investigation kullanın. Sorgu
anahtarları response_version, project_id, release ve environment
olur. Hepsi isteğe bağlıdır. Sürüm 3’ü isteyin:
cause ve fix ekler. Sürüm 3, yakalandıysa
ilişkili sorunlara, aksiyonlara ve metriklere span_id ekler.
Sürüm 3 iz incelemesi örneği
Sürüm 3 iz incelemesi örneği
Bu yapay yanıtta bir kök sunucu span’i ve başarısız bir istemci span’i vardır.
Başarısız span aynı zamanda en yavaş alt span’dir. Span’lerin yapılandırılmış
bağlamı yoktur. Bu yüzden
spans.context eksiktir.
Bir span, LogBrew’ün saklamadığı bir üst span’i adlandırıyorsa
trace.parentage eksik olur. Span önizlemesinde en fazla 64 span olur. Her
analiz yolunda en fazla 64 span olur. İlişkili okumalar en fazla 8 dağıtım
kapsamı kullanır.
trace_span hedefli bir sonraki aksiyon, bu paketten bir span_id
adlandırır. O span’i okumak için span rotasını span’in project_id,
environment ve release değerleriyle gönderin.
Span incelemesi yanıtı
Bir izdeki tek bir işlemi okumak içinGET /api/telemetry/traces/{trace_id}/spans/{span_id}/investigation
kullanın. project_id, environment ve release gönderin. Üçü de
zorunludur. Bunları seçilen span’den kopyalayın. Span satırının id değerini
span_id olarak göndermeyin.
Span incelemesi örneği
Span incelemesi örneği
Bu yapay yanıt, iz örneğindeki başarısız istemci span’ini anlatır. Bir hata
logu aynı span kimliğine sahiptir. Span, saklanan benzer
span’lerin yaklaşık 95. yüzdelik değerinden uzun sürmüştür.
Temel karşılaştırma, span başlangıcından önceki 24 saati okur.
since
dâhildir, until hariçtir. error_rate_basis_points: 500, %5 anlamına
gelir. subject_percentile_basis_points: 9500, saklanan benzer span’lerin
%95’inin bu span’den uzun sürmediği anlamına gelir. Yüzdelikler yaklaşıktır.
baseline.limitations değerini bu değerlerle birlikte tutun. not_found
olan bir temel karşılaştırmada saklanan benzer span yoktur. unavailable
olan bir temel karşılaştırma sıfır sayı değil, başarısız bir okumadır.
parent_chain_status: "complete", saklanan zincirin bir köke ulaştığı
anlamına gelir. LogBrew’ün isteğin her span’ini sakladığını kanıtlamaz.
Topoloji en fazla 64 üst öğe, 50 doğrudan alt öğe ve hizmetler arası 50
bağlantı döndürür.
Log incelemesi yanıtı
Tek bir logu ve ilişkili kanıtlarını okumak içinGET /api/logs/{log_id}/investigation kullanın. Bu rotanın sorgu anahtarı
yoktur. Log kimliğini bir log listesinden kopyalayın.
Log incelemesi örneği
Log incelemesi örneği
Bu yapay yanıtta iz bağlamı olmayan bir uyarı logu ve yakındaki bir log
vardır. Yanıt zaman damgalarından bir iz bağlantısı oluşturmaz.
İz durumu
not_found veya unavailable olduğunda da iz kimliği bulunabilir.
Kullanılabilir bir iz özeti, exact_span olacağını garanti etmez.
Aksiyon incelemesi yanıtı
Tek bir ürün aksiyonunu, bildirilen durumunu ve ilişkili kanıtlarını okumak içinGET /api/telemetry/actions/{action_id}/investigation kullanın. Bu
rotanın sorgu anahtarı yoktur. İlişkili okumalar, log incelemesiyle aynı
aralığı ve kapsamları kullanır.
correlations, timeline ve next_actions, log incelemesinin yapılarını
kullanır. İlişkili aksiyonlar incelenen aksiyonu içermez.
Aksiyon incelemesi örneği
Aksiyon incelemesi örneği
Bu yapay yanıt, giriş yapmış bir kullanıcının başarısız bir ödeme aksiyonunu
anlatır. Aksiyonun iz kimliği yoktur.
Yanıt hiçbir zaman özne veya oturum tanımlayıcısı döndürmez. Kanıt kaydı
subject.distinct_id değerini her zaman gizlenmiş olarak listeler. Oturum
yakalandıysa subject.session_id değerini de listeler. Bu yüzden her aksiyon
paketi partial olur ve improve_capture içerir. Bunu karşılamak için
gizlilik denetimlerini kaldırmayın.
Metrik incelemesi yanıtı
Tek bir projede ve zaman aralığında tek bir metrik adını okumak içinGET /api/telemetry/metrics/investigation kullanın. Yanıtta güncel seri, eşit
uzunluktaki önceki aralıkla bir karşılaştırma, en son ölçüm örneği, iz
örnekleri ve tamamlanmış dağıtımlar bulunur. Sürüm 2, saklanan en son ölçüm
örneğinden metrik açıklamasını ekler. Sürüm 1 her zaman
description_status: "not_captured" bildirir.
project_id, name ve since zorunludur. since dâhildir, until
hariçtir. until varsayılan olarak şimdiki zamandır. Karşılaştırma, eşit
uzunluktaki önceki aralığı da okur.
Sürüm 2 metrik incelemesi örneği
Sürüm 2 metrik incelemesi örneği
Bu yapay histogramda 5 dakikalık iki zaman diliminde 5 ölçüm örneği vardır.
En son zaman diliminin p95 değeri 48 ms’dir. Önceki aralığın en son zaman
diliminin p95 değeri 24 ms’dir.
relative_change_percent, (current - previous) / abs(previous) * 100
değeridir. Önceki değer sıfır veya eksikse null olur.
expected_buckets_per_series veri içeren zaman dilimlerini değil, olası zaman
dilimlerini sayar. Boş zaman dilimlerini sıfır olarak çizmeyin. Bir değişikliğe
yakın bir dağıtım, değişikliğe o dağıtımın yol açtığını kanıtlamaz.
Hesabın okuyamadığı bir proje 404 değil,
analysis.status: "no_samples" ile 200 OK döndürür. Boş bir sonuç diğer
sinyal türleri hakkında bilgi vermez.
Metrik sınırları: Aralık en fazla 31 gündür. Her seride en fazla 500 zaman
dilimi olur. series_limit 1 ile 20 arasındadır, varsayılan 10’dur. Yanıt en
fazla 20 iz örneği ve 20 dağıtım döndürür.
interval değeri auto, 1m, 5m, 15m, 1h, 6h veya 1d olur.
group_by değeri none, service_name, release veya environment olur.
Diğer değerler 422 döndürür.
İnceleme hataları
404, okunabilir hiçbir projede kaydın olmadığı anlamına gelir. Her rota
geçerli kimlik doğrulama olmadan 401, GET dışındaki bir yöntem için 405
de döndürür.
Bulunamadı,
yol,
kimlik doğrulama ve
yöntem yanıtları için
API hataları sayfasına bakın.
İsteğe bağlı bir kanıt okuması 200 OK yanıtının içinde başarısız olabilir.
Bu durumda koleksiyon unavailable bildirir. Bunu not_found veya sıfır
kayıt olarak göstermeyin.
Önem düzeyi değerleri
Kullanıcıya gösterilen önem düzeyi değerleriinfo, warning, error ve
critical olur. SDK’lar ve çalışma ortamları trace, debug, warn veya
fatal gibi yaygın eş adlar gönderebilir. REST ve canlı yanıtlar her zaman
standart değeri döndürür. Örneğin LogBrew girdi olarak warn kabul eder ve
warning döndürür. Veri alımı bilinmeyen önem düzeyi değerlerini reddeder.
Önem düzeyi kuralı yanıtları
Önem düzeyi kuralı, LogBrew’ün bir logu veya sorunu nasıl gösterdiğini değiştirir. Uygulamanın yakaladığı önem düzeyini değiştirmez. Loglar ve sorunlar birtriage nesnesi döndürür:
Gösterim için
triage.effective_severity kullanın. severity değerini
yakalanan değer olarak koruyun. Log listesi varsayılan olarak yok sayılan
logları içermez. Onları da almak için GET /api/logs üzerinde
status=ignored veya status=all gönderin.
Hesabın projedeki sorunları yönetme izni olmalıdır. Okuma erişimi yeterli
değildir. Bu izin olmadan kural değişikliği code: forbidden ile 403
döndürür.
Log kuralını değiştirin
PUT /api/logs/{log_id}/triage-rule, kuralı bu log ve aynı imzaya sahip
sonraki loglar için ayarlar. Gövdede hem severity hem ignored
bulunmalıdır:
200 OK yanıtı logun tamamını içerir. Logun severity
değeri warning olarak kalır. triage alanı kuralı gösterir:
severity değeri
source, info, warning, error veya critical olur. source,
yakalanan önem düzeyini geri getirir. Yok sayılan bir logu etkin yapmaz. Logu
yeniden göstermek için "ignored": false gönderin.
Sorun kuralını değiştirin
PUT /api/telemetry/issues/{issue_id}/triage-rule, gruplanmış bir sorunun ve
sonraki oluşumlarının gösterilen önem düzeyini ayarlar. Gövde yalnızca
severity kabul eder:
200 OK yanıtı, sürüm 1’deki sorunun tamamını içerir.
Yakalanan severity ve status değerleri değişmez:
response_version=2 veya 3 ile okuyun.
Desteklenmeyen bir önem düzeyi 422 döndürür:
status gibi bilinmeyen bir gövde alanı
code: invalid_json ile 422 döndürür. Eksik veya okunamayan bir log ya da
sorun code: not_found ile 404 döndürür. Yanıt kaybolursa kuralı yeniden
göndermeden önce logu veya sorunu yeniden okuyun.
Hata yanıt biçimi
LogBrew API hataları bir JSON zarfı döndürür. Bu örnek reddedilen bir isteği gösterir.error ve next metni soruna göre değişir:
code, otomasyon için next_action kullanın. error ve
next değerlerini kişilere düz metin olarak gösterin. İfadelerini
ayrıştırmayın. Bazı hatalar limit, reset_at veya retry_after_seconds
gibi alanlar ekler. JSON gövdesi olmayan bir yanıtta LogBrew code değeri
yoktur. Tüm kodlar için API hataları sayfasına
bakın.
CLI ile veri okuyun
CLI aynı rotaları okur ve--json ile aynı JSON’u döndürür. Geniş başlayın,
ardından daraltın:
--pagination cursor ekleyin. CLI sorun yanıtı
sürüm 4’ü ister. Sonraki sayfayı okuyun
ve Canlı izleme bölümlerine bakın.