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. İstek backend'e gittiyse bu satırda backend adresi vurgulu renkte görünür.
İstek, ağ geçidi tarafından backend'e hiç gidilmeden yanıtlandıysa (örneğin bir MCP initialize/tools/list/ping çağrısı, bir keşif belgesi, bir mock yanıt veya ağ geçidinde engellenen bir istek) bu satırda boşluk yerine istemcinin çağırdığı ağ geçidi adresi soluk renkte gösterilir; bir MCP API Proxy'de bu, o proxy'nin MCP uç nokta adresidir. — (yönlendirilmedi) ifadesi yalnızca bu adresin yeniden kurulamayacağı kadar eksik olduğu eski kayıtlarda görünür.
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 — ekranda bu durumda yukarıda anlatılan ağ geçidi adresi gösterilir |
Yönlendirme Rozetleri (Routing Badges)
Yönlendirme Adresi'nin yanında, isteğin backend'e nasıl ulaştığını (veya neden ulaşamadığını) özetleyen bir veya birden fazla rozet gösterilir. Rozet bilgisi log kaydındaki mevcut alanlardan türetilir, yeni bir alan gerektirmez:
| Rozet | Anlamı |
|---|---|
| önbellek isabeti | Yanıt önbellekten döndü; tasarım gereği backend'e hiç gidilmedi |
| doğrudan | İstek tek seferde backend'e ulaştı; yeniden deneme veya yük devretme yaşanmadı |
| yeniden deneme ×n | İstek backend'e ulaşmadan önce n kez yeniden denendi |
| yük devretme ×n | İstek n kez farklı bir backend'e (failover) yönlendirildi |
| araç çağrısı | MCP tools/call isteği; adres, çağrılan aracın backend'ini gösterir (Araçları Aç modunda kaynak API proxy yolu, Passthrough modunda MCP sunucusunun host:port'u) |
| backend hatası | Backend'e ulaşıldı ama alışveriş başarısız oldu |
| ağ geçidinde engellendi | İstek bir politika tarafından reddedildi; backend'e hiç gidilmedi |
| ağ geçidinde reddedildi | MCP tools/call isteği backend'e ulaşmadan reddedildi (bilinmeyen araç, yetersiz scope, çağrı kotası, argüman kuralı veya çıktı filtresi nedeniyle) |
| ağ geçidi hatası | İstek backend'e gitmeden gateway tarafında bir hatayla sonuçlandı |
| ağ geçidinde yanıtlandı | İstek backend'e gitmeden başarıyla yanıtlandı (örn. MCP initialize/tools/list/ping, keşif belgesi, mock yanıt, spec isteği) |
Bir rozetin üzerine gelindiğinde, varsa isteğe ait hata tipi tooltip olarak gösterilir.
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 panel açar.
Detaylı Görünüm, sağdan açılan bir panelde (drawer) görüntülenir. Her API tipi aynı paneli kullanır: REST, SOAP, WebSocket, gRPC, MCP ve AI Gateway kayıtları aynı biçimde okunur. Panelin son sekmesi, kayıt için AI kullanım verisi varsa LLM İçgörüleri başlığını, yoksa kaydın içeriğine göre MCP Detayları veya A2A Detayları başlığını alır; bunların hiçbiri geçerli değilse sekme gösterilmez.
WebSocket ve gRPC kayıtlarında ilk iki gövde sekmesi Gelen Mesaj ve Giden Mesaj adını alır. Bu protokoller istek/yanıt çifti kaydetmediği için arka uç yanıt sekmeleri gösterilmez.
Ayrıntı için MCP Gateway sayfasına bakabilirsiniz.
Açılan panelde, logların mesaj akışına ilişkin sekmelere ayrıldığı görülür. İncelenmek istenen sekmenin (örneğin İstemciden API Proxy'e Gelen İstek (Request From Client to API Proxy) sekmesinin) adına tıklandığında bu alana ilişkin log kayıtları görüntülenir. Varsayılan olarak Genel Bakış (Overview) sekmesi açıktır.
Elasticsearch zaman aşımı durumu: Log kaydına ait belge Elasticsearch'te zamanında getirilemezse (Elasticsearch zamanında yanıt vermezse) bu pencere artık boş alanlarla açılmaz. Bunun yerine aşağıdaki uyarı mesajı gösterilir ve pencere açılmaz:
"Elasticsearch zamanında yanıt vermediği için log detayı yüklenemedi. Lütfen kısa bir süre sonra tekrar deneyin."
Kısa bir süre sonra tekrar denemeniz önerilir; sorun tekrarlanıyorsa Elasticsearch bağlantı ve zaman aşımı ayarlarının kontrol edilmesi gerekir. Belge zamanında gelirse davranış değişmez. Belge gerçekten mevcut değilse (örneğin silinmişse veya saklama süresi dışına çıkmışsa) pencere önceki davranışta olduğu gibi boş alanlarla açılır.
Bu davranış yalnızca bu ekranla sınırlı değildir; aynı koruma Portal > Trafik ve Kullanım ekranının detay panelinde (drawer), Credential Organization > Trafik Kullanımı ekranının detay panelinde ve aşağıdaki Hızlı Test (Quick Test) akışında da uygulanır — hiçbir ekranda Elasticsearch zaman aşımında boş bir detay paneli açılmaz.
Kimlik Doğrulama Hatası Nedeni
İstek bir LDAP kimlik sağlayıcısı üzerinden reddedildiğinde, Detaylı Görüntüleme penceresinde Kimlik Doğrulama Hatası Nedeni alanı görüntülenir: giriş başarısız, kullanıcı yok, gerekli rol eksik (bu durumda beklenen ve kullanıcıda bulunan roller de gösterilir) ya da dizine erişilemiyor. Bu alan yalnızca LDAP kaynaklı redlerde görünür; başka bir nedenle reddedilen isteklerde gösterilmez.
Dizine hiç ulaşılamadığı durumlarda istek, kullanıcı adı/şifre hatalıymış gibi değil, hizmete o an erişilemediğini belirten ayrı bir hata ile reddedilir; bu hatanın metni Hata Mesajları ekranından özelleştirilebilir. Kimlik Doğrulama Hatası Nedeni istemciye ya da API Portal'a hiçbir zaman gönderilmez; yalnızca bu ekrandan görülebilir.
Yönlendirme Teşhisi (Routing Diagnostics)
Backend'e giden bir istekte yönlendirme ile ilgili teşhis sinyalleri varsa, Detaylı Görüntüleme panelinde 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:
Elasticsearch zamanında yanıt vermezse bu pencere de açılmaz; log kaydına ait belge zamanında getirilemediği için "Elasticsearch zamanında yanıt vermediği için log detayı yüklenemedi. Lütfen kısa bir süre sonra tekrar deneyin." mesajı gösterilir. Kısa bir süre sonra tekrar deneyebilirsiniz.
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.
Log kaydına ait belge Elasticsearch'te zamanında getirilemezse, Hızlı Test tuşu Test Konsolu'nu eksik veya boş bilgiyle açmaz; bunun yerine "Elasticsearch zamanında yanıt vermediği için log detayı yüklenemedi. Lütfen kısa bir süre sonra tekrar deneyin." mesajı gösterilir.