Orbtrace

Replay

Geçmişten bir an seçin. Tek bir gerçeği değiştirin ("ya deploy yapılmasaydı?"). Orbtrace, yapay zekânızla geçmiş veri ve benzer olaylar kullanarak varsayım sonucu simüle eder. Bu sayfa, bir replay'in nasıl çalıştırılacağını ve sonucun nasıl okunacağını anlatır.

Bu, başka hiçbir gözlemlenebilirlik aracında olmayan özelliktir. Bu sayfayı yavaş okuyun — kavram tecrübeli SRE'lere bile yeni.

Ne işe yarar?

Bir varsayım (counterfactual) simülatörü. Geçmişten gerçek bir olay seçer — genelde bir incident — ve Orbtrace'e şuna benzer bir soru sorarsınız:

  • "Ya a8f21b deploy'unu yapmasaydık checkout-api p99 ne olurdu?"
  • "Ya inventory-service pod sayısını ikiye katlasaydık toplam throughput ne olurdu?"
  • "Email-service bir saat daha fazla başarısız olsa kullanıcı etkisi ne olurdu?"

Orbtrace gerçek bir simülatör koşturmaz. Üç kaynağı kullanır:

  1. Seçilen pencerenin etrafında kendi telemetri geçmişiniz.
  2. pgvector embedding araması ile benzer geçmiş olaylar.
  3. Olası bir sonucu güven aralığıyla sentezleyen yapılandırdığınız LLM.

Çıktı, gerçek ve hipotez zaman çizelgelerinin yan yana çizimi ve nedenleri anlatan bir paragraftır.

Ne zaman kullanılır?

On screen
  • Post-mortem'ler"Deploy'u yapsaydık ne olurdu bilemeyiz" tartışması biter. Replay, olasılıksal cevap verir.
  • Deploy öncesi canary kararı"Canary'yi tam yayınlasaydık ne olurdu?" Canary gerçek olur; tam yayım varsayım olur.
  • Kapasite planlama"Dünkü trafik 2× olsaydı SLO'yu tutar mıydık?"
  • Etki yarıçapı tahmini"X feature flag kapalı olsaydı kötü sorgu çalışır mıydı?"

Bir replay nasıl koşturulur

  1. 1

    Replay ekranını açın

    Kenar menü → Replay. Açılış ekranı kayıtlı replay'lerinizi ve "+ Yeni replay" butonunu gösterir.

  2. 2

    Çıpa seçin

    Üç yol:

    • Bir olaydan — en yaygını. Olay detayında "Replay'de aç". Çıpa olayın başlangıç zamanı olur.
    • Bir grafikten — metrik grafiğindeki bir sıçramaya sağ tıklayıp "Bu noktanın etrafında replay".
    • Manuel — tarih/saat ve servis seçin.
  3. 3

    Gerçek sonucu doğrulayın

    "Gerçek sonuç" alanı p99(http.server.duration{service=checkout-api}) ile önceden dolu olur. Olaydan geldiyseniz bu metrik kırılan şeydir. Bırakın.

  4. 4

    Varsayımı yazın

    Varsayım alanına Ya a8f21b deploy'u merge edilmeseydi? yazıp Enter. Sayfa deploy ID'sini tanır (CI webhook yakalamıştı) ve tıklanabilir bir çip ekler.

  5. 5

    Bağlamı seçin

    Orbtrace alakalı bağlam öğeleri toplar:

    • a8f21b deploy'u (sorduğumuz — işaretli kalsın).
    • 2 saat önceki e3c440 deploy'u (işareti kaldırın — ilgisiz).
    • checkout-api'da üç benzer geçmiş olay (işaretli — modele "normal nasıl görünür" öğretir).
    • discount-engine üzerinde 6 dakika önce feature flag (işareti kaldırın — ilgisiz).
    • Olayın gerçek RCA paragrafı (işaretli — orijinal analiz).

    Bağlamınız ne kadar odaklıysa Replay'in güveni o kadar yüksek olur. Acımasız olun.

  6. 6

    Çalıştır

    Replay'i çalıştır. ~15 sn boyunca yapay zekâ çağrılırken spinner.

  7. 7

    Yan yana grafiği okuyun

    İki grafik üst üste. Üst: o günkü gerçek p99 — 220 ms'de düz, 14:02'de 2,1 s sıçraması, 14:16'da deploy geri alındığında geri dönüş.

    Alt: hipotez p99 — pencere boyunca 220 ms'de düz, etrafında ince güven bandı.

    Görsel olarak sıçrama kayboluyor. Cevap budur.

  8. 8

    Olasılıksal özeti okuyun

    Üstte: "Muhtemelen (%87 güven) a8f21b deploy'u yapılmasaydı checkout-api p99 14:02-14:16 penceresinde 280 ms altında kalırdı."

    %87 yüksek. Sebep: AI üç benzer geçmiş olayda deploy'u geri almanın metriği başlangıç değerine döndürdüğünü buldu — geçmiş davranış öngörüye bilgi verir.

  9. 9

    Mantık paragrafını okuyun

    AI'nın mantığını anlatan iki paragraf:

    "Deploy a8f21b, OrderRepository.findByUser'i önceden kapsayan indeks taramasını zorlayan indeks ipucunu kaldıracak şekilde değiştirdi (kaynak span'ler b3f2…, c81a…). checkout-api'da yapısal olarak benzer üç geçmiş olay (id-203, id-188, id-141) indeksle ilgili deploy değişiklikleri içeriyordu; üçünde de deploy'u geri almak p99'u temelin ±%10'una iki dakikada döndürdü. Kalan %13 güven, yakalanan deploy logunuzda olmayan bir upstream değişikliğinin tesadüfen gecikmeyi yaratmış olma olasılığı için ayrılmıştır."

  10. 10

    Hassasiyet kontrolü

    Alttaki hassasiyet tablosu: "'benzer geçmiş olaylar' bağlamı kaldırıldığında güven %64'e düşer. 'RCA paragrafı' bağlamı kaldırıldığında %78."

    İlk satır geçmiş olayların kritik bağlam olduğunu söyler. Bilmeye değer.

  11. 11

    Kaydet ve post-mortem'e ekle

    Replay'i kaydet. Ad ve URL alır. URL'yi post-mortem belgesine yapıştırın.

    Tamam — toplam süre: ~4 dakika.

Grafik ve özet çelişiyorsa

Alt grafik hâlâ sıçramayı gösterirken özet "olay olmazdı" diyorsa grafiğe güvenin — modelin neyde ihtiyatlı olduğunu mantık paragrafından okuyun. Genelde model büyüklük konusunda ihtiyatlıdır ama yön konusunda hemfikirdir.

Sonuç "varsayım yardımcı olmazdı" ise (alt grafikte görünür fark yok) gerçek bir bulgudur — deploy kök sebep değildi. Post-mortem kapsamınız değişti.

Farklı bir varsayım sormak

Denemeye değer yaygın yeniden ifadeler:

  • "Ya checkout-api 3 yerine 6 replika olsaydı?" — kapasite varsayımı.
  • "Ya new_discount_logic feature flag kapalı olsaydı?" — flag tabanlı.
  • "Ya bu pencerede trafik 2× yüksek olsaydı?" — yük varsayımı (yoğunluk öncesi için).

Her biri ayrı replay'dir. Her biri $0,10-$0,40 maliyetlidir. Ciddi bir post-mortem'se üçünü de çalıştırın.

Replay kullanmayın durumlar

  • Gerçek olayı bile bitirmediniz — Replay'in değeri gerçek ve varsayımı karşılaştırmaktan gelir. Önce gerçeği bitirin.
  • Olay bir aydan eski — saklama süresi geçti olabilir; AI'nın daha az bağlamı olur. Güven düşer.
  • Sadece merak, post-mortem yok — Replay para. Cevap karar değiştirecekse kullanın.

Sırada: Yönetim sayfaları.