Client Route Raporu
Bu ekrana Admin menüsü > Analitik > Raporlar > Metrikler sayfasındaki Çakışmalar sekmesinden ulaşılır. Çakışmalar sekmesi yalnızca Admin menüsünde görünür; Proje menüsündeki Metrikler sayfasında bu sekme yer almaz.
Ekran iki sekmeden oluşur — Çakışmalar sekmesinin iki alt-raporu:
Veritabanındaki yapılandırmanın statik analizi. Route'ların birbiriyle çakışıp çakışmadığını gösterir.
Çalışan worker'lara "bu isteği alsan ne yapardın" sorusunu sorar. Yapılandırmanın değil, gateway'in o anki davranışının kaydıdır.
Genel Bakış
Client Route Raporu, API Proxy ve Proxy Group'larınızın client route yapılandırmalarını analiz ederek potansiyel çakışmaları tespit etmenizi sağlar. Bu rapor sayesinde route çakışmalarını önceden görebilir ve yapılandırma sorunlarını giderebilirsiniz.
Rapor Tablosu
Rapor sonuçları aşağıdaki kolonlarda gösterilir:
| Alan | Açıklama |
|---|---|
| Proje (Project) | Route'un ait olduğu proje adı |
| Tip (Type) | Route'un tipi (API Proxy veya Proxy Group) |
| İsim (Name) | API Proxy veya Proxy Group adı |
| Path'ler (Paths) | Route'un tanımlı path'leri |
| Host'lar (Hosts) | Route'un tanımlı host'ları |
| Header'lar (Headers) | Route'un tanımlı header'ları (name:value formatında) |
| Method'lar (Methods) | Route'un desteklediği HTTP method'ları |
| Deployment'lar (Deployments) | Deploy edilen/Total ortam sayısı (örn: 2/3) |
| Çakışma (Conflict) | Route'un çakışma durumu (Çakışma Yok, Tam Eşleşme, Önek Çakışması) |
| İşlemler (Actions) | Detayları görüntüleme butonu |
Detay Görüntüleme
Route detaylarını görüntülemek için Detayları Görüntüle butonuna tıklayabilirsiniz. Detay diyaloğunda aşağıdaki bilgiler gösterilir:
- Proje adı
- Tip (API Proxy/Proxy Group)
- İsim
- Path'ler
- Host'lar
- Header'lar
- Method'lar
- Çakışma durumu
- Ortam adı
- Erişim URL'i
- Deploy durumu
- Yeniden deploy gereksinimi
Çakışma durumunda olan diğer route'ların bilgileri:
- Proje adı
- Tip
- İsim
- Path
- Çakışma nedeni
Çakışma Durumları
Route'lar üç farklı çakışma durumuna sahip olabilir:
Route'un başka bir route ile çakışması yoktur. Bu route güvenle kullanılabilir.
Route'un path, host, header ve method yapılandırması başka bir route ile tam olarak eşleşmektedir. Bu durum ciddi bir çakışmadır.
Route'un path'i başka bir route'un path'inin öneki ile çakışmaktadır. Bu durum potansiyel bir sorun yaratabilir.
Excel Export
Route Çakışmaları alt-raporu, filtre satırında Sorguyu Temizle ve Ara butonlarının yanında kendi Export butonunu taşır. Bu butona tıklayarak mevcut filtreleme kriterlerine göre oluşturulmuş raporu ZIP formatında indirebilirsiniz.
Excel export işlemi mevcut filtreleme kriterlerine göre tüm sonuçları içerir. Bu eylem alt-raporun kendisine ait olduğu için, Çakışmalar sekmesi açıkken Metrikler sayfasının paylaşılan filtre satırındaki Export butonu gizlenir. Route Trace'in Excel export'u yoktur; sonuç bunun yerine JSON olarak panoya kopyalanabilir.
Sıralama
Rapor tablosunda Proje, Tip ve İsim kolonlarına göre artan veya azalan şekilde sıralama yapabilirsiniz. Sıralama için kolon başlığına tıklayabilirsiniz.
Bu rapor tüm route'ları analiz etmek için tasarlanmıştır. Pagination olmadan tüm sonuçlar gösterilir.
Route Trace
Route Trace sekmesi, tarif ettiğiniz bir isteğin hangi API Proxy'ye yönleneceğini çalışan her worker pod'una ayrı ayrı sorar.
Çakışma raporu veritabanındaki yapılandırmayı inceler; yani route tablosunun nasıl görünmesi gerektiğini söyler. Route Trace ise worker'ın bellekteki route tablosuna bakar; yani o an ne yaptığını söyler. İkisi ayrıldığında sorun yapılandırmada değil, worker'ın belleğindedir — ve bu boşluk iki görünümün hiçbirinden tek başına fark edilmez.
Backend'e istek gönderilmez. Cevap, pod'un bellekteki route tablosundan üretilir. Arkadaki servise hiçbir çağrı yapılmaz; trafik logu, kota ve rate limit sayaçları etkilenmez. Bu nedenle canlı ortamda güvenle çalıştırılabilir.
İsteğin Tarif Edilmesi
| Alan | Açıklama |
|---|---|
| Ortamlar (Environments) | Sorgulanacak ortamlar. Boş bırakılırsa yayınlanmış tüm ortamlar sorgulanır. |
| HTTP Method | İsteğin method'u. Yapılandırma joker değeri olan ALL listede yer almaz; gönderilebilir bir method değildir. |
| Path | İstenen adres. / ile başlamalıdır. |
| Host | Host tabanlı route'lar için. Boş bırakılırsa host kriteri boş kabul edilir — host'a göre ayrışan route'ları test ederken bu alanı doldurun. |
| Header'lar | Header tabanlı route'lar için ad/değer çiftleri. Host Header Ekle kısayolu Host değerini header olarak da gönderir. |
| Body (SOAP) | Yalnızca SOAP proxy'lerinde gerekir; method adı envelope içinden çözülür. REST için boş bırakın. |
İki seçenek daha vardır:
- Rakip route'ları getir — eşleşmeyi kaybeden route'ları ve her birinin neden elendiğini listeler. Yanlış bir proxy'ye gidildiğinde açıklama buradadır.
- Index tutarsızlık denetimi yap — worker'ın bellekteki route index'ini tarar. Eşleşme imkânsız göründüğünde açın; tüm kategorileri gezdiği için maliyetlidir.
Sonucun Okunması
Sonuç, pod listesiyle değil pod'lar arası uzlaşı ile başlar. Bir gateway ancak her pod aynı path'i aynı proxy'ye çözüyorsa doğrudur; çözmüyorsa istek, load balancer'ın seçtiği pod'a göre başarılı ya da 404 olur.
Route tablosu pod'lar arasında tutarlı. Sonucu yapılandırma belirliyor.
Aynı istek bazı pod'larda çözülüyor, bazılarında çözülmüyor. Dışarıdan aralıklı 404 olarak görünür.
Aynı istek pod'lara göre farklı hedeflere gidiyor. Worker'ların bellekteki route tabloları birbirinden ayrışmış demektir; yapılandırma tek başına bunu açıklamaz.
Cevap veren pod'lar hemfikir, ancak en az bir pod'a ulaşılamadı. Ulaşılamayan pod'un durumu bilinmiyor.
Uzlaşı bandının altında aynı cevabı veren pod'lar tek kartta toplanır; pod'lar ayrıştığında küçük grup ayrıca işaretlenir — incelenmesi gereken pod'lar onlardır. En altta ise kanıt olarak pod tablosu yer alır. Bir satır açıldığında şunlar görünür:
- İsteğin yorumlanması — worker'ın path'i nasıl okuduğu. Root context'in path'ten çıkarılması sık şaşırtan bir adımdır ve burada açıkça gösterilir. Hiçbir kategori eşleşmediyse bu da belirtilir; route tablosunda o istek biçiminde hiç kayıt yok demektir.
- Rakip route'lar — her biri için host/header/URI/method kuralının ayrı ayrı sonucu. Elenme sebebinin yanındaki soru işareti, o sebebin doğrudan gözlemlenmediğini, mevcut route verisinden çıkarıldığını belirtir.
- Index bulguları — denetim açıksa, route tablosunun kendi içinde tutarsız olduğu noktalar.
- Grup üyeleri — eşleşme bir Proxy Group üzerinden geldiyse, worker'ın değerlendireceği sıradaki üyeler.
Bir pod'un hata vermesi raporun tamamının başarısız olduğu anlamına gelmez; diğer pod'lar cevap vermiş olabilir. Kaç pod'un cevap verdiği üst bantta yazar.
Eşleşti ancak ulaşılamadı sebebiyle listelenen bir rakip route özel olarak dikkate değerdir. Route eşleşiyor ve kategorisi taranmış olmasına rağmen çözümleme onu bulamamış demektir; bu kombinasyon normalde mümkün değildir ve yapılandırmayı değil worker'ın bellekteki index'ini işaret eder. Aynı şekilde index denetiminin ürettiği bulgular da yapılandırmayla değil, çalışan worker'ın durumuyla ilgilidir — bu durumda ilgili worker'ın yeniden başlatılması gerekebilir.
Sonuçlar, isteğin tarifiyle birlikte JSON olarak panoya kopyalanabilir. Header değerleri kopyalanan içeriğe dahil edilmez (yalnızca header adları), böylece Authorization veya Cookie gibi bilgiler destek kaydına düşmez.