Sürüm: 0.21.0Bu dokümantasyon Spitfire 0.21.0 içindir.
Sürüm karşılaştırma (A/B)
"Yeni sürüm daha mı yavaş?" sorusunun cevabı. Karşılaştırmalı koşu, bir testi iki ortamına aynı anda ve aynı yükle uygular ve sonuçları adım adım, güven aralıklarıyla karşılaştırır. Kol A referanstır (genelde canlıdaki sürüm), kol B aday. İki kol aynı senaryo, adımlar, eşikler ve yük modeliyle koşar; fark yalnızca ortamdır.
Ne işe yarar
- İki kolu aynı anda koşturmak ağ, önbellek ve paylaşılan altyapı etkilerini iki tarafa eşit dağıtır. Farklı saatlerdeki iki koşuyu karşılaştırmaktan çok daha güvenilirdir.
- Her fark için bir confidence interval (güven aralığı) hesaplanır; karar "daha kötü", "daha iyi", "fark yok" ya da inconclusive (belirsiz) olur. "Belki gürültüdür" tartışması biter.
- Eşdeğerlik kontrolü, karşılaştırmadan önce iki ortamın gerçekten "elma ile elma" olduğunu kontrol eder.
- A/A calibration, iki ortamın kendi doğal farkını ölçer ve sonraki karşılaştırmalardan çıkarır.
- Sıralı mod, tek ortamınız varsa ya da ortamlar bir veritabanını paylaşıyorsa A, B, A, B dönüşümlü koşar.
Ne zaman kullanılır
- Sürüm çıkmadan önce: "v2.4, canlıdaki v2.3'ten yavaş mı?"
- Bir yapılandırma değişikliğinden sonra (önbellek açık/kapalı, yeni veritabanı sürümü, yeni pod boyutu).
- PR başına CI gate olarak: aday kötüleşirse pipeline kırmızı olsun (bkz. CI/CD).
- Her gece otomatik: "dev'i test'e karşı" (bkz. Zamanlama).
Tek bir testin farklı zamanlardaki koşularına bakmak istiyorsanız aşağıdaki Koşuları yan yana karşılaştırma bölümü yeterlidir.
Hazırlık: ortamlar
Karşılaştırmanın iki kolu testin ortamlarıdır. Ortam, testin değişkenlerinin (ör. base
adresi) ve adımların kullandığı bağlantıların o ortamdaki değerleridir.
Adım adım:
Test sayfasında Düzenle'ye basın ve düzenleyicide Ortamlar sekmesini açın.
Ortam ekle ile iki ortam oluşturun (ör.
testvedev). Her biri için:- Ortam adı yazın.
- Değişkenler altında o ortamın değerlerini girin (ör.
base=https://test.example.com). Boş bırakılan değişken testteki değeriyle kalır. - Bağlantılar altında adımların kullandığı kayıtlı bağlantıyı o ortamınkiyle eşleyin (ör. test veritabanı / dev veritabanı) ya da aynı bağlantı'yı bırakın.
(Önerilir) Eşdeğerlik (karşılaştırmalı koşu) bölümünü doldurun. Bu, ekibin bildiği haliyle ortamın neyle çalıştığıdır; burada hiçbir şey ölçülmez. Alanlar: CPU, Bellek, Örnek (pod) sayısı, Veritabanı sürümü, Veri hacmi, Önbellek (Redis vb.) durumu, Veritabanı, önbellek ya da sunucu paylaştığı ortamlar ve Paylaşılan ne (ör. tek PostgreSQL, tek Redis).
(Önerilir) Sürüm endpoint'i (isteğe bağlı) bölümünü doldurun:
- Sürüm endpoint adresi: ör.
{{base}}/version(testin değişkenlerini kullanabilir). - Sürüm nerede: JSONPath (ör.
$.version), Header (ör.X-App-Version) ya da Düz metin (gövdenin tamamı). - JSONPath ya da header adı alanına ifadeyi yazın.
Sürüm, karşılaştırmalı koşu başlarken tek bir GET ile okunur. Boş sürüm etiketi bunu alır; iki kol aynı sürümü raporlarsa koşu A/A olarak kaydedilebilir. Sıralı modda Spitfire sürüm geçişini de bu endpoint'ten görür.
- Sürüm endpoint adresi: ör.
Testi kaydedin.
Sürüm endpoint'i tanımlamak üç yerde işinizi kolaylaştırır: etiketleri elle
yazmanız gerekmez, A/A durumunu Spitfire kendisi fark eder ve sıralı modda --auto-switch
çalışır.
Karşılaştırmalı koşu başlatma
Karşılaştırmalı koşu penceresi
Adım 1/2 · ayarlar
- Test sayfasında Çalıştır düğmesinin yanındaki oka (Diğer çalıştırma seçenekleri) basın ve Karşılaştırmalı koşu'yu seçin.
- Kol A · referans için Ortam seçin (ya da kayıtlı test: testin kendi değerleri). Varsayılan olarak testin son koşusunun ortamı gelir.
- Kol B · aday için ortamı seçin. Varsayılan sıradaki ortamdır.
- İki kola aynı ortamı seçerseniz pencere "bu bir A/A koşusu olur" der: iki kol aynı sürümü ölçer, çıkan fark ortamın kendi gürültüsüdür.
- Her kol için Sürüm etiketi yazın (ör.
v2.3vev2.4; en çok 64 karakter). Boş bırakırsanız sürüm endpoint'inin bildirdiği kullanılır. - Mod: Eşzamanlı (varsayılan; iki kol aynı anda, aynı runner'larda) ya da Sıralı (dönüşümlü) (aşağıya bakın).
- Kol başına yük: testin yükünün oranı, iki kolda aynı. Varsayılan %50: iki kol toplamda runner'ları test tek başına nasıl yüklüyorsa öyle yükler.
- Isınma süresi (sn, varsayılan 60): ilk saniyeler karşılaştırmaya girmez (önbellek, bağlantı havuzu, JIT ısınması). Uygulamanız yavaş ısınıyorsa artırın.
- Kabul edilebilir fark: p95 için kabul edilebilir fark (yüzde) (varsayılan ±%10) ve Hata oranı için kabul edilebilir fark (puan) (varsayılan ±0,5 puan).
- Güven: güven düzeyi %90, %95 (varsayılan) ya da %99.
- Test veri değiştiriyorsa her ortam için ayrı onay kutusu çıkar: "Kol A (test) ortamında veri değişeceğini onaylıyorum" gibi. İkisini de işaretleyin.
Adım 2/2 · eşdeğerlik kontrolü
- Eşdeğerlik kontrolü'ne geçin. Seçilen runner'lar her kola 20 hafif istek gönderir (en çok 15 sn): "İki kol kontrol ediliyor (en çok 15 sn)…".
- Sonucu okuyun (ayrıntılar aşağıda). Durum Eşdeğer, Uyarılar var, Başarısız ya da Yapılmadı olur.
- Başlatın:
- Uyarı yoksa Karşılaştırmayı başlat.
- Uyarı varsa Uyarıları gördüm, karşılaştırmayı yine de başlat — ya da Geri ile dönüp düzeltin, sonra Yeniden kontrol et.
- Kontrol çalışamadıysa Kontrolsüz başlat (karşılaştırmaya kontrol yapılmadığı yazılır).
Hiçbir şey engellenmez; yalnızca uyarıları görmeniz ve onaylamanız istenir. Onaylanan uyarılar karar kartında Eşdeğerlik uyarıları olarak kalır.
Yük nasıl paylaşılır
- Her runner VU'larını iki kola eşit böler (4 runner ve 400 VU: her runner A'ya 50, B'ye 50 VU çalıştırır); runner'da oluşan yavaşlama (CPU, ağ, GC) iki kolu aynı oranda etkiler. Lokasyon dağılımı her kol için aynıdır.
- İki kol aynı anda başlar; basamaklı yükte basamak geçişleri aynı anda olur.
uniquemodundaki veri dosyalarında her kol satırların kendine ait yarısını kullanır;sequentialverandomdosyalar ortaktır.- Lisans limitleri iki kolun toplamına uygulanır: her kol VU ve istek/sn limitinin yarısını kullanır.
- Bir runner düşerse ya da bir kol hata verirse iki kol birlikte durur ve karşılaştırma geçersiz olur; tek kolla devam edilmez.
Eşdeğerlik kontrolü
Kontrol üç şeyi yan yana koyar:
1. Ölçülenler (seçilen runner'lar üzerinden, yalnız GET ya da HEAD, her istek yeni bir
bağlantıyla): Erişilebilirlik, Yanıt süresi (medyan), TCP connect (medyan), TLS
handshake (medyan), HTTP sürümü, TLS. Varsayılan olarak testin okuma yapan ilk HTTP
adımına gönderilir; bunun yerine Ön kontrol adresi (isteğe bağlı) verebilirsiniz, ör.
{{base}}/health.
Uyarılar:
- yanıt süreleri %25'ten ve 5 ms'den fazla farklıysa,
- connect süreleri 5 ms'den ve %10'dan fazla farklıysa ("B ortamı (dev) runner'lara 18 ms daha uzak; sonuçlar bu farkı içerir"),
- HTTP/2'ye karşı HTTP/1.1; TLS'e karşı TLS yok ya da başka sürüm,
- 5xx yanıtlar ya da yanıtsız istekler.
Hiç yanıt vermeyen kol kontrolü Başarısız yapar.
2. Beyan edilenler: Ortamlar sekmesindeki Eşdeğerlik alanları yan yana; ikisinin de farklı doldurduğu değerler vurgulanır.
3. Paylaşılan altyapı: iki ortam bir adımın bağlantısını aynı kayıtlı bağlantıya ya da aynı host:port'a eşliyorsa veya iki kolun adresi aynı sunucuysa: "Bu iki ortam aynı veritabanını paylaşıyor. Eşzamanlı koşuda iki kol aynı kaynak için yarışır ve fark gizlenebilir. Ayrı kaynak kullanın ya da sıralı karşılaştırma modunu seçin." Pencere Sıralı karşılaştırmaya geç düğmesini önerir.
Sürüm endpoint'i varsa sürümler de okunur. İki kol aynı sürümü raporlarsa pencere "bu bir A/A testi olarak kaydedilsin mi?" diye sorar: Evet, A/A testi (iki kolda aynı sürüm) ya da Hayır, sürüm karşılaştırması.
Canlı ekran
Koşu sürerken karşılaştırma sayfasında:
- Her grafikte A ve B üst üste çizilir (renk körlüğüne uygun iki sabit renk, efsanede sürüm etiketleri); her grafiğin altında anlık fark yazar.
- Adımlar (canlı) tablosunda A, B ve Fark sütunları vardır. Fark kötüleşme yönündeyse sarı, eşiği aşarsa kırmızı. Bu değerler kümülatiftir ve ısınmayı da içerir; karar ısınmadan sonrası için verilir.
- İki kolu durdur iki kolu birlikte durdurur; ölçülenler karşılaştırılır ve sonuçta "erken durduruldu" notu yer alır.
Kararı okumak
Karar kartı
Kartın başında genel Karar yazar:
| Karar | Anlamı | API |
|---|---|---|
| Daha iyi | En az bir adım güvenle daha iyi, hiçbiri daha kötü değil | better |
| Fark yok | Tüm adımlar kabul edilebilir farkın içinde | no_difference |
| Daha kötü | En az bir adım güvenle kabul edilebilir farktan kötü | worse |
| Belirsiz | Karar verilen her adımın aralığı eşiği kesiyor | inconclusive |
| Geçersiz | Bir kol düştü, runner koptu, sürüm geçişi zamanında olmadı… | invalid |
Kartta ayrıca En büyük farklar (en çok 3), adım sayıları ("7 adım: 1 daha kötü, 0 daha iyi, 6 fark yok, 0 belirsiz"), güven düzeyi, kalibrasyon durumu, eşdeğerlik uyarıları ve kısa bir Sonuçları nasıl okursunuz bölümü vardır.
Confidence interval nasıl okunur
Bir farkın altında +26% (±4,0%) yazıyorsa: ölçülen fark +%26; gerçek fark büyük olasılıkla
(%95 güven aralığı) %22 ile %30 arasında. Aralık simetrik değilse sınırları yazılır.
Adım kararı, aralığın kabul edilebilir farka göre yerine bakar (varsayılan p95 ±%10):
- aralığın tamamı +%10'un üzerindeyse → Daha kötü,
- aralığın tamamı −%10'un altında, iyileşme yönündeyse → Daha iyi,
- aralık ±%10 içindeyse → Fark yok,
- aralık eşiği kesiyorsa → Belirsiz: fark kabul edilebilir de olabilir, olmayabilir de. Daha uzun bir koşu aralığı daraltır.
p95 ve hata oranı ayrı değerlendirilir; temkinli olan kazanır. Isınmadan sonra kollardan birinde 20'den az istek alan adıma karar verilmez (Yetersiz veri). Hiç hata olmasa bile birkaç yüz istek, hata oranında 0,5 puanlık bir artışı dışlamaya yetmez: böyle bir adım belirsiz kalır.
Genel karar: herhangi bir adım daha kötüyse Daha kötü; değilse ve bir adım daha iyiyse Daha iyi; aksi halde Fark yok (belirsiz adım varsa "belirsiz adımlar var" notuyla).
Sonuç Belirsiz geliyorsa çözüm neredeyse her zaman daha uzun bir koşu ya da daha fazla istektir. Isınma süresinin koşunun çoğunu yemediğinden de emin olun.
Tablolar
- Adım bazlı fark: her adım için p95 A → B ve farkı, p50 ve p99 kısaca, hata oranı, istek/sn ve Adım kararı. Satır açılınca p50/p99 aralıkları ve istek sayıları görünür. Tüm ayrıntıları göster hepsini açar. Tüm koşu satırı ve basamak satırları gecikmesi çok farklı adımları bir arada tuttuğu için p50 orada aralıksız gösterilir; hiçbir karar p50'ye bakmaz.
- Basamak bazlı karşılaştırma (basamaklı yükte): "100 VU'da fark yok, 400 VU basamağında B %31 yavaş" gibi.
- Kırılma noktaları (kırılma noktası koşularında): iki kolun kırılma noktası yan yana.
- Kol bazında eşikler: eşik ihlalleri kol başına ayrı gösterilir.
Koşu listelerinde karşılaştırma iki koluyla tek satırdır; her kol sıradan bir koşu olarak kalır (Kol A koşusunu aç). Kollardan biri silinse bile karşılaştırma kararı ve özetiyle kalır.
Hesap nasıl yapılır (özet)
- Gecikme farkları (p50, p95, p99) bootstrap ile hesaplanır: her gecikme serisi %1 göreli doğruluklu bir DDSketch'tir; 2000 yeniden örnekleme B'nin yüzdeliğini A'nınkine böler, aralık %2,5–97,5 dilimidir ve sketch doğruluğu kadar genişletilir.
- Hata oranı farkı iki oran testiyle (Newcombe-Wilson) hesaplanır: hiç hata yokken ve küçük sayılarda da güvenlidir.
- Aralıklar karşılaştırmanın kimliğiyle tohumlanır: aynı veri her zaman aynı sonucu verir.
- Spitfire farkı ve rakamı söyler; ölçmediği bir nedeni iddia etmez.
A/A kalibrasyonu
İki ortam hiçbir zaman tam eşit değildir: başka sunucu, başka ağ yolu, başka veri hacmi. A/A calibration bu farkı ölçer; sonraki karşılaştırmalar bu farkı sonuçtan çıkarır.
Adım adım:
- İki ortamın aynı sürümü çalıştırdığından emin olun. Kalibrasyonun anlamı budur.
- Test sayfasında Diğer çalıştırma seçenekleri → Kalibre et'e basın (ya da karşılaştırmalı koşu penceresinde kolların altındaki kalibrasyon durumundan Kalibre et).
- Süre (dk): varsayılan 10 (1–60). İlk dakika (kısa koşuda sürenin beşte biri) warm-up olarak dışarıda kalır.
- Kol başına yük: testin tepe yükünün oranı (varsayılan %25); her senaryo bu yükte sabit koşar (düşük-orta yük).
- Sürüm etiketi (iki ortamda aynı): boş bırakılırsa sürüm endpoint'inden okunan yazılır.
- Sürümleri kontrol et'e basın. Sürümler farklıysa "Sürümler farklı görünüyor, yine de kalibre et" onayı gerekir; okunamıyorsa bu belirtilir.
- Kalibrasyonu başlat.
Koşu bitince ölçülen, ortam çiftine adım bazında kaydedilir: B'nin A'ya göre p95 (ve p50, p99) doğal farkı ve aralığın yarı genişliği olan gürültü bandı.
Sonraki karşılaştırmalarda (iki yönde de):
- Gecikme:
düzeltilmiş = (1 + ham) / (1 + kalibrasyon) − 1. Örnek: ham fark +%26, kalibrasyon farkı +%3 → düzeltilmiş fark yaklaşık +%22 (1,26 / 1,03 − 1). - Hata oranı:
düzeltilmiş = ham − kalibrasyon(puan). - Eşik: kabul edilebilir fark o adımda en az kalibrasyonun gürültü bandına yükseltilir (p95'i kendiliğinden ±%12 oynayan bir çift ±%10 ile değil ±%12 ile değerlendirilir).
- Adım tablosu Ham fark, Kalibrasyon ve Düzeltilmiş sütunlarını yan yana gösterir.
- Kalibrasyonda olmayan adımlar (yeni adımlar) düzeltilmeden, normal eşikle değerlendirilir ve not düşülür.
- Karar kartı kalibrasyonu ve yaşını yazar; 30 günden eski kalibrasyon için yeniden kalibre etmeyi önerir. Hiç kalibre edilmemiş çift için "Bu ortam çifti kalibre edilmedi; ortam farkı sonuca dahil olabilir." notu çıkar.
Ücretsiz sürümde ayda 2 A/A kalibrasyonu vardır ve aylık karşılaştırma hakkından
sayılmaz. compare_runs içeren ücretli anahtarlarda kalibrasyon sınırsızdır.
Sıralı mod
Tek ortamınız varsa ya da iki ortam bir veritabanını, önbelleği veya sunucuyu paylaşıyorsa (eşdeğerlik kontrolü bunu uyarır), Mod → Sıralı (dönüşümlü) seçin. Kollar aynı runner'larda dönüşümlü koşar: A, B, A, B.
- Tur sayısı: varsayılan 2, en fazla 5. Her tur testin yük modelinin tamamıyla koşan sıradan bir koşudur ve kendi warm-up'ını dışarıda bırakır.
- Sürüm geçişi için en fazla bekleme: varsayılan 30 dk (1 dk–24 sa). Aşılırsa karşılaştırma geçersiz olur.
Tek ortamda (A ve B aynı ortam)
- Koşu başlarken ortamda A sürümü çalışıyor olmalı.
- A turu bitince Spitfire bekler; sayfada Sürüm geçişi bekleniyor kartı çıkar: "test ortamındaki sürümü kol B sürümüne (v2.4) geçirin."
- Sürümü değiştirin (deploy edin), sonra geçişi onaylayın — üç yoldan biriyle:
- Sayfadaki Sürümü B sürümüne geçirdim, devam düğmesi,
spitfire cloud continue <karşılaştırma id>(ör. deploy pipeline'ınızın son adımı),- API token ile
POST /api/v1/comparisons/{id}/continue.
- Ortamın sürüm endpoint'i varsa Spitfire onu her 10 sn'de okur ve geçişi kendisi görür ("Sürüm uç noktası her 10 saniyede okunuyor; geçiş görülünce tur kendiliğinden başlar.").
- Sonraki geçişlerde aynısını yapın (B → A → B…).
İki ortamda
Değiştirilecek bir şey yok; turlar art arda koşar ve iki ortam hiçbir zaman aynı anda yük almaz.
Neden daha geniş aralık
Sıralı karşılaştırmada iki kol aynı saniyeleri paylaşmaz; güven aralıkları turlar arasındaki değişimi de içerir ve aynı veriyle eşzamanlı karşılaştırmadakinden en az √2 ≈ 1,41 kat geniştir. Karar kartında "Sıralı karşılaştırma" yazar; adım tablosunda her satırın genişletme katsayısı ipucunda görünür.
Kırılma noktası testleri ve A/A kalibrasyonları sıralı modda çalışmaz (turlar aynı uzunlukta olmalı). Başarısız bir tur ya da controller yeniden başlaması karşılaştırmayı geçersiz kılar.
CI üzerinden karşılaştırma
spitfire cloud run "Ödeme akışı" --compare A=test,B=dev --label-a v2.3 --label-b "$GIT_SHA"Örnek çıktı:
v2.4 (dev) vs v2.3 (test): WORSE
7 steps: 1 worse, 0 better, 6 no difference, 0 inconclusive
calibration: none (the environments' own difference may be in the result)
worse checkout: p95 +26% (±4%)
…| Exit code | Anlamı |
|---|---|
0 |
daha iyi ya da fark yok (--fail-on-inconclusive yoksa belirsiz de) |
98 |
daha kötü (--fail-on-inconclusive ile belirsiz de) |
97 |
geçersiz, veya --strict ile eşdeğerlik ön kontrolü başarısız (karşılaştırma başlamaz) |
99 |
B kolu eşiğini ya da performans budget'ını kırdı (A kolunun ihlalleri yazdırılır, sayılmaz) |
2, 1 |
yazma onaylanmadı (--confirm-writes iki ortamı da onaylar), diğer hatalar |
Önemli bayraklar:
--strict: eşdeğerlik ön kontrolü başarısızsa (bir kol yanıt vermiyor) başlatmaz,97ile çıkar.--fail-on-inconclusive: belirsiz sonucu98sayar. Sıkı bir gate için önerilir.--report comparison.pdf(ya da.html): karşılaştırmalı rapor;-o comparison.json: JSON.--pr-comment/--summary-md: karşılaştırmanın PR/MR comment'i (--report-langdilinde).- Sıralı mod:
--compare-mode sequential,--rounds,--switch-timeout,--auto-switch(yalnız sürüm endpoint'ine güvenir; endpoint yoksa reddedilir):
spitfire cloud run "Ödeme akışı" --compare A=test,B=test --compare-mode sequential \
--label-a v2.3 --label-b "$GIT_SHA" --auto-switch--auto-switch olmadan terminalde Enter geçişi onaylar ya da başka bir iş
spitfire cloud continue <id> çalıştırır. Tam GitHub Actions ve GitLab CI örnekleri için
CI/CD sayfasına bakın.
Rapor ve bildirimler
- Karşılaştırma sayfasındaki Rapor menüsü karşılaştırmalı raporu yeni sekmede HTML olarak açar, PDF indirir ve paylaşım bağlantısı (1–90 gün, Türkçe ya da İngilizce, iptal edilebilir) üretir.
- Bir karşılaştırma bitince (A/A kalibrasyon koşuları hariç)
run.comparedolayına abone kanallar haber alır: "📉 Ödeme akışı — v2.4 vs v2.3: daha kötü". Yalnız sorunları isteyen kanal yalnız daha kötü ve geçersiz sonucu duyar. Kanal kurulumu: Bildirim kanalları.
Koşuları yan yana karşılaştırma
Sol menüdeki Karşılaştır sayfası farklı bir iş yapar: aynı testin farklı zamanlardaki 2–6 koşusunu baseline'a göre yan yana koyar. Aynı anda koşmadıkları için güven aralığı yoktur; "son sürümden bu yana ne değişti?" sorusuna hızlı bakış içindir.
- Sol menüde Karşılaştır'ı açın.
- Test seçin… listesinden testi seçin.
- Karşılaştırılacak 2–6 koşuyu işaretleyin ve Seç'e basın. İlk işaretlenen (ya da testin baseline'ı) taban olur; bir koşuyu baseline yap ile taban yapabilirsiniz.
- Baseline'a göre göreli değişim renklendirilir: testin toleransına göre iyi, dikkat, gerileme. Oranlar (hata, check) yüzde puanla değerlendirilir.
- Yalnız sorunlular ile yalnızca kötüleşen satırları görün.
Koşuların test tanımları farklıysa sayfa uyarır: "farklar tanım değişikliğinden de kaynaklanabilir".
Lisans notları
- Karşılaştırmalı koşu
compare_runsözelliğini ister. Ücretsiz sürümde takvim ayında 1 karşılaştırmalı koşu ve ayrıca ayda 2 A/A kalibrasyonu vardır (Lisans sayfası sayıyı gösterir). - Zamanlanmış ve CI'dan (API token'ıyla) başlatılan karşılaştırmalar
compare_ciister (Growth yıllık, Scale yıllık, Enterprise); yoksa402 license_limitile reddedilir. Web arayüzünden başlatılanlar etkilenmez. - Karşılaştırmalı koşu bu sürümün runner'larını ister; eski runner'lar açık bir mesajla reddedilir.
Sık karşılaşılan sorunlar
| Belirti | Neden | Çözüm |
|---|---|---|
| "Bu testte ortam tanımı yok." | Testin Ortamlar sekmesi boş | Düzenleyicide iki ortam tanımlayın (ör. test, dev). Kayıtlı test de bir kol olabilir. |
| "Karşılaştırmalı koşu lisansınızda yok." / aylık hak bitti | Lisans özelliği ya da ücretsiz aylık hak | Lisans sayfasında kullanılan sayıya bakın; gelecek ayı bekleyin ya da lisansı yükseltin. |
| Eşdeğerlik kontrolü Başarısız: "kolu yanıt vermedi" | Ortamın adresi runner'lardan erişilemiyor ya da servis kapalı | Ortamın değişkenlerini (adres) kontrol edin; runner'ın o ağa erişimi var mı bakın. Ön kontrol adresi olarak bir health endpoint verin. |
| "İstek gönderilmedi: testte HTTP adımı yok." | Testte ölçülecek HTTP adımı yok ya da adresler koşu anında belirleniyor | Ön kontrol adresi (isteğe bağlı) alanına bir adres verin. |
| "Bu iki ortam aynı veritabanını paylaşıyor." | İki ortam aynı kaynağı kullanıyor | Ayrı kaynak kullanın ya da Sıralı karşılaştırmaya geç. |
| Sonuç hep Belirsiz | Koşu kısa, istek sayısı az ya da ortam gürültülü | Koşuyu uzatın; Isınma süresi'nin koşunun çoğunu yemediğini kontrol edin; A/A kalibrasyonu yapın. |
| "Isınma süresi koşunun tamamını kapladı" | Isınma ≥ koşu süresi | Isınmayı kısaltın ya da testi uzatın. |
| Geçersiz: bir kol düştü | Runner koptu ya da bir kol hata verdi | Sistem olayları'ndaki runner olaylarına bakın; tekrar başlatın. |
| Sıralı mod Geçersiz: bekleme süresi doldu | Sürüm zamanında değişmedi ya da geçiş onaylanmadı | Sürüm geçişi için en fazla bekleme'yi artırın; deploy'un sonunda spitfire cloud continue <id> çalıştırın ya da sürüm endpoint'i tanımlayın. |
--auto-switch reddediliyor |
Ortamın sürüm endpoint'i yok | Ortamlar sekmesinde Sürüm endpoint'i tanımlayın. |
| Kalibrasyon "Sürümler farklı görünüyor" diyor | İki ortam farklı sürüm raporluyor | Aynı sürümü deploy edin; gerçekten aynıysa (etiket farklı) onay kutusunu işaretleyin. |
CI'da 402 license_limit (feature: compare_ci) |
Lisans CI'dan karşılaştırmayı içermiyor | Karşılaştırmayı web arayüzünden başlatın ya da lisansı yükseltin. |
| Eski runner'lar reddediliyor | Karşılaştırma bu sürümün runner'larını ister | Runner'ları güncelleyin (Runner'lar sayfası → Güncelle). |
İlgili sayfalar
- CI/CD entegrasyonu —
--compareile pipeline gate'i - Zamanlama ve izleme — gece karşılaştırmaları ve
run.comparedbildirimi - Gözlemlenebilirlik — farkın arkasında backend'de ne olduğunu görmek
- Sorun giderme
- Karşılaştır
Spitfire'da: /compare



