Skip to main content
Bu sayfa, Telemetri API’sinin her yanıt ailesi için bir örnek gösterir. Tüm değerler yapaydır. Hata kodları ve kurtarma için API hataları sayfasına bakın.

Yanıtı okuyun

Her yanıtı şu sırayla okuyun:
  1. HTTP durumunu okuyun.
  2. Gövdenin, rotanın kendi yapısında olduğundan emin olun.
  3. Her project_id değerinin istenen proje kapsamında olduğundan emin olun.
  4. Standart enum değerlerini ve kimlikleri değiştirmeden koruyun.
  5. next_action alanını yalnızca istemci onun code ve target değerlerini destekliyorsa izleyin.
  6. null değ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:
  • release ve environment.
  • 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, error ve critical.
  • Hata ayıklamaya yardım eden, gizli bilgi veya gereksiz kişisel veri içermeyen öznitelikler.
SDK entegrasyonu ve Yakalanan verileri denetleyin sayfalarına bakın.

Veri alımı yanıtı

Herkese açık SDK’lar POST /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ılarla 200 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:
Yerel yanıtta 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:
Diğer 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ı:
Loglarda uyumluluk için 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:
Sürüm 1’de 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:
Bu örnek alanların yalnızca bir kısmını gösterir. Türetilen öncelik 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:
Başka bir 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ı

Her öğe tek bir ölçüm örneğidir. Örnek sayısını olay veya kullanıcı sayısı olarak kullanmayın. unit, temporality, trace_id ve span_id eksikse null olur. null değeri sıfır değildir.

Sürüm yanıtı

Bir satır tek bir proje, sürüm, ortam ve hizmeti kapsar. Sayıları yalnızca o satırı anlatır. 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:
Eksik bir sorun "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 listeleri project_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:
Geçersiz bir UUID, tekrarlanan bir kimlik ya da 2’den az veya 50’den fazla kimlik içeren 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:
Boş bir liste veya sıfır sayı yerine hatayı gösterin. Proje listesini yeniden okuyun. Bir projeyi sessizce çıkarmayın ve tüm projelerde yeniden denemeyin. MCP bağlantısı gibi devredilmiş bir kimlik bilgisi, bağlantısının dışındaki bir proje için 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:
Önceki sayfadaki 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 istek 200 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 hatalar GET /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.
Tek bir oluşum ve devam cursor’ı içeren ilk sayfa:
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:
Bir cursor’ı başka bir sorun için yeniden kullanmayın. Cursor hataları bu rota için de geçerlidir.

İ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ıyla POST /api/feed/ticket gönderin. İsteğin gövdesi yoktur.
200 OK yanıtı bileti ticket alanında içerir:
Bilet kısa ömürlü bir kimlik bilgisidir. Onu loglamayın veya bir agent promptuna koymayın. Bağlantıyı 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 istemcisini wss://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:
Bu örnek sorun alanlarının yalnızca bir kısmını gösterir. 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 istek project_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.

Ortak kapsam hataları

Bu hatalar HTTP 422 ve validation_failed kullanır: Örneğin project_id içermeyen bir istek şunu döndürür:
Metrik serisi ve sinyal hacmi rotaları aynı kapsam kurallarını kendi 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çin 422 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ı:
Oranlar 0 ile 1 arasında kesirlerdir. Bir orana güvenmeden önce 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ır units 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 istekler 422 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:
Boş, 256 karakterden uzun veya kontrol karakteri içeren bir 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çin response_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övdeyi POST /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:
Aralıktaki ilk eşleşen başlangıç olayı, her kullanıcının çıkış noktasıdır. Geri dönüş bu noktadan kesin olarak sonra ve 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üzden return_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.
Yanıtta tam olay yanıtıyla aynı 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:
Otomatik modda 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 istekler 422 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:
Otomatik elde tutmayı kullanmak için iki seçiciyi de kaldırın. Bu okuma isteğini düzeltmek için SDK’yı değiştirmeyin.

Tam olay yaşam döngüsü isteği

Bu gövdeyi POST /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şim 2 - 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:
Yanıtta tam olay yanıtıyla aynı summary, buckets ve next_action yapıları bulunur. Bu alıntı değişen alanları gösterir:
Otomatik modda 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ı yoksa buckets boş olur ve summary alanı latest_fully_observed_period içermez:
Yalnızca geçmişte görünen kullanıcılar, analiz aralığında etkinlik olmasa da etkin olmayan kullanıcılar içeren zaman dilimleri üretebilir.

Yaşam döngüsü hataları

Ortak kapsam hatalarına ek olarak şu istekler 422 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ında schema_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 diliminde 2, 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.
  • series eşleşen serileri sayar. returned_series ve points dönen veriyi sayar.
  • series_limit daha düşük hacimli serileri çıkardıysa truncated değeri true olur.
  • expected_buckets_per_series, aralıktaki olası zaman dilimi sayısıdır.
Ölçüm örneği olmayan bir zaman dilimi için nokta eklemeyin. Sıfır eklemeyin veya önceki değeri kopyalamayın. Her nokta en fazla 3 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:
Yedi gün boyunca bir dakikalık zaman dilimleri 422 döndürür:
Diğer 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 tam key 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ş bir paths 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 olarak limit=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 ve Content-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.
Filtresi olmayan bir segment, projedeki ve zaman aralığındaki tüm sınıflandırılmış etkinliği seçer. Segmentler örtüşebilir. Farklı bir etiket veya anahtar, birbirinin aynısı iki filtre kümesini geçerli yapmaz.

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 istekler 422 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:
Farklı bir etiket veya özellik filtrelerinin farklı sırası seçilen olayları değiştirmez. Doğrulama hatası, hiçbir olayın eşleşmediğine dair kanıt değildir. 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 istekler 422 ve validation_failed döndürür: Örneğin:
Aynı kapsamda daha geniş bir aralık kullanın. Kimlik doğrulama ve diğer hatalar için API hataları sayfasına bakın.

İ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 paket schema_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. Bir truncated 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çin GET /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:
Sorgu anahtarları 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.
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çin GET /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:
Sürüm 2, ilişkili her soruna cause ve fix ekler. Sürüm 3, yakalandıysa ilişkili sorunlara, aksiyonlara ve metriklere span_id ekler.
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çin GET /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.
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çin GET /api/logs/{log_id}/investigation kullanın. Bu rotanın sorgu anahtarı yoktur. Log kimliğini bir log listesinden kopyalayın.
Okuma, log listesinin filtreleri dışında kalan kanıtları da döndürebilir. İlişkili okumalar logun projesini, ortamını ve sürümünü ve logdan 5 dakika önce ve sonrasını kullanır. Yakındaki loglar aynı hizmeti de kullanır. Bunlar için iz kimliği gerekmez. Tam iz okumaları logun iz kimliğini gerektirir ve başka hizmetleri de içerebilir. İz özeti aynı iz kimliğini ve kapsamı, zaman aralığı olmadan kullanır.
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çin GET /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.
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çin GET /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.
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ğerleri info, 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 bir triage 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:
Bu alıntı yalnızca değişen alanları gösterir. İstekteki 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:
Bu alıntı alanların yalnızca bir kısmını gösterir. Kural bir sorunu çözmez, arşivlemez veya yeniden açmaz. Bunun için durum değişikliğini kullanın. Türetilen öncelik yeni uygulanan önem düzeyini izler. Görmek için sorunu response_version=2 veya 3 ile okuyun. Desteklenmeyen bir önem düzeyi 422 döndürür:
Bir sorun kuralındaki 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:
Program dalları için 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:
Cursor zarfını almak için --pagination cursor ekleyin. CLI sorun yanıtı sürüm 4’ü ister. Sonraki sayfayı okuyun ve Canlı izleme bölümlerine bakın.