API Trafiği Sekmesi
API Trafiği sekmesinde, API Proxy'nin mesaj trafiği görülebilir ve filtrelenebilir, her bir mesajın log kayıtları incelenebilir.
Tabloda görünen log kayıtlarının her birisi, istemciden bu API Proxy'e gelen bir istek ve o isteğe verilen yanıt mesajına aittir. Bu mesaja ilişkin aşağıdaki işlemler yapılabilir.
Websocket ve gRPC istekleri Apinizer'a gelen ve Apinizer'dan çıkan veriler şeklinde tutulmakta olduğundan bu tip API Proxylerde sadece 2 bölge vardır.
Yönlendirme Adresi (Routing Address)
Bu alan ilgili API Proxy'nin yönlendirildiği adresi bilgisini tutar. Bu alan eğer boş ise, isteğin backend adresine gitmediğini ifade etmektedir.
Backend olarak Apinizer'ı kullanan servisler "apinizer://" ön eki ile gösterilmektedir, tam olarak "apinizer://<BİLEŞEN_ADI>/<METOT_ADI>" yazacaktır.
Bu durum routing adresi kapatılarak backend'e gitmesi engellenen proxy'ler için de geçerlidir.
Olası değerler şunlardır;
| Routing Adresi | Koşul |
|---|---|
apinizer://mirror.routing/<METOT_ADI> | API Proxy tipi Swagger 2.x, OpenAPI/Swagger 3.0.x, WSDL, Reverse Proxy veya No-Spec API ve Routing seçeneği kapatılmış ve Mirror seçeneği açık |
apinizer://specresponse.routing/<METOT_ADI> | API Proxy tipi Swagger 2.x, OpenAPI/Swagger 3.0.x, WSDL, Reverse Proxy veya No-Spec API ve Routing seçeneği kapatılmış ve Mirror seçeneği kapalı |
apinizer://db2api.apicreator/<METOT_ADI> | API Proxy tipi DB2API |
apinizer://script2api.apicreator/<METOT_ADI> | API Proxy tipi Script2API |
apinizer://mockapi.apicreator/<METOT_ADI> | API Proxy tipi Mock API |
apinizer://connector/<METOT_ADI> | API Proxy tipi Connector |
apinizer://maintenance | API Proxy bakım modunda |
apinizer://cache/<METOT_ADI> | Herhangi bir API Proxy tipinde ve Cache'leme açık |
http://<BACKEND_ADRESİ>/<METOT_ADI> veya https://<BACKEND_ADRESİ>/<METOT_ADI> | API Proxy tipi Swagger 2.x, OpenAPI/Swagger 3.0.x, WSDL, Reverse Proxy, No-Spec API veya KPS ve Routing seçeneği açık |
apinizer://spec | API Proxy tipi Swagger 2.x, OpenAPI/Swagger 3.0.x, WSDL, Reverse Proxy, No-Spec API ve spec adresine erişim |
| (Boş olması) | İsteğin çeşitli sebeplerle backend adresine gidememesi |
Filtreleme
Daha fazla filtre (More options) seçeneği ile 2 farklı tipte (Basit, Gelişmiş) arama yapılabilir
Basit (Basic) sekmesinde, kayıtlara, belirli bir zaman aralığı, uç nokta (endpoint) ya da HTTP metodu gibi belirlenmiş kriterler ile filtre uygulanması sağlanır.
Gelişmiş (Advanced) sekmesinde ise, kullanıcı iç içe filtreler oluşturabilir.
Gelişmiş (Advanced) sekmesinde aşağıdaki seçenekler ile arama yapılabilir.
Detaylı Görüntüleme (Detailed View)
İncelenmek istenen istek mesajına ait satırın sonundaki menüde ilki, o mesajın log kayıtlarını görüntüleyen bir pencere açar.
Açılan pencerede, logların mesaj akışına ilişkin bölümlere ayrıldığı görülür. İncelenmek istenen bölümün (örneğin İstemciden API Proxy'e Gelen İstek (Request From Client to API Proxy) bölümünün) adına tıklandığında bu alana ilişkin log kayıtları görüntülenir. Varsayılan olarak Genel Bakış (Overview) bölümü açıktır.
Yönlendirme Teşhisi (Routing Diagnostics)
Backend'e giden bir istekte yönlendirme ile ilgili teşhis sinyalleri varsa, Detaylı Görüntüleme penceresinde Yönlendirme Teşhisi bölümü görüntülenir.
Bu bölüm yalnızca backend'e giden istekler için görüntülenir; önbellekten dönen veya backend'e hiç gitmeyen (mock, bakım modu vb.) isteklerde bu bölüm görünmez.
| Alan | Açıklama |
|---|---|
| Hata Nedeni | İstek başarısız olduysa hatanın sınıflandırılmış nedeni (Havuz Zaman Aşımı, Bağlanma Zaman Aşımı, DNS Hatası, TLS El Sıkışma Hatası, Okuma Zaman Aşımı, Backend/İstemci Bağlantıyı Kapattı, Sağlıklı Upstream Yok, Devre Açık, Tüm Denemeler Tükendi, Upstream HTTP Hatası, Bilinmiyor) |
| Güven Düzeyi | Sınıflandırmanın güvenilirlik seviyesi (Yüksek/Orta/Düşük) |
| Olası Sebep | Hata nedenine göre otomatik oluşturulan açıklama metni |
| İstisna (Exception) | Varsa, hatayı oluşturan istisna sınıfı ve detayı |
| Önerilen Aksiyon | Mevcut sinyallere göre üretilen, sorunu gidermeye yönelik öneri metni |
| Faz Süreleri | Seçim, DNS, TCP bağlanma, TLS el sıkışma, ilk yanıt baytı (TTFB), gövde okuma ve havuzdan bağlantı bekleme sürelerinin her biri (ms) |
| Backend Ham Durum Kodu | Backend'in döndürdüğü ham HTTP durum kodu (istemciye dönen koddan farklı olabilir, örneğin bir politika kodu değiştirmişse) |
| Upstream IP:Port | İsteğin gerçekte gönderildiği backend adresi |
| Bağlantı Yeniden Kullanıldı | Bağlantının havuzdan yeniden kullanılıp kullanılmadığı |
| Yanıta Ulaşıldı (TTFB) | Backend'den yanıtın en az bir baytının alınıp alınmadığı |
| Gateway Worker | İsteği işleyen Worker pod/host bilgisi |
| İstemciye Yazma (ms) | Yanıtın istemciye yazılması için geçen süre |
| Havuz | Bağlantı havuzunun anlık durumu: kiralanan, bekleyen, kullanılabilir ve azami bağlantı sayısı |
| Yapılandırılmış Zaman Aşımları | İlgili API Proxy için yapılandırılmış bağlanma, okuma ve havuzdan bağlantı bekleme zaman aşımı değerleri (ms) |
Bu bilgiler, Yönlendirme sekmesinde yapılandırılan zaman aşımı ve bağlantı havuzu ayarlarıyla birlikte değerlendirildiğinde, bir yönlendirme sorununun kök nedenini hızlıca tespit etmeyi sağlar. Bu API Proxy'nin toplu yönlendirme teşhis özeti için Analitik Sekmesi sayfasına bakabilirsiniz.
JSON Formatında Görüntüleme (JSON View)
Detaylı Görüntüleme tuşunun altındaki tuş log kayıtlarını JSON formatında görüntüler.
JSON Görüntüleme tıklandığında açılan dialogu içeren görsele aşağıda yer verilmiştir:
Bu alandaki anahtar değerler okumayı kolaylaştırmak amacıyla log dosyasında olduğu şekilde değil okunabilir şekilde yazılmıştır.
Örneğin "apiProxyId" değeri log kaydında "api" şeklinde tutulmaktadır, log kaydı indirildiğinde esas tutulan log kaydı görüntülenecektir.
Gerçek log dosyası formatı için Elasticsearch Manuel ILM Politikası ve Template Oluşturma sayfasındaki "Template Veri Yapısı Tablosu"nu inceleyebilirsiniz.
İndirme (Download)
Log kayıtlarını indirerek daha detaylı incelemek de mümkündür.
Hızlı Test (Quick Test)
İlgili satırdaki Hızlı Test (Quick Test) tuşu, gönderilen isteğin yeniden gönderilerek anında test edilebileceği şekilde biçimlendirilmiş olarak Test Konsolunu açar.
"Hızlı Test" tuşunun gözükmesi için genel ayarlarda etkinleştirilmelidir.