API Trafik Ayarları
Log Kayıt Bölgeleri
Apinizer üzerinde tanımlanan API Proxy'e gelen ve giden mesaj bilgileri mesaj ögelerine (başlık, parametre, gövde) göre Elasticsearch veri tabanında loglanmaktadır.
Bu log kaydı tutulan bölgeler:
İstemciden API Proxy'e gelen istek bilgileri
API Proxy'den Backend API'ye iletilen istek bilgileri
Backend API'den API Proxy'e verilen yanıt bilgileri
API Proxy'den istemciye gönderilen yanıt bilgileri
Varsayılan olarak, projenin tüm mesaj bölgelerindeki alanların loglanması aktiftir. Loglanan alanlar ihtiyaca göre veya log sunucusunun kaynak tüketimi baz alınarak kısıtlanabilir.
Bu ekran üzerinden proje ve ortam (environment) bazlı log ayarı yönetilmektedir.
Üretim ortamı için aşağıdaki ortamlara ait ögeleri loglama işleminin devre dışı bırakılması tavsiye edilmektedir.
- API Proxy'den Backend API'ye (Request to Target)
- Backend API'den API Proxy'e (Response from Target)
Eğer bir API Proxy üretim ortamında çalışıyorsa, API Proxy'deki tüm poliçelerin ayarları ve testleri tamamlandığı ve artık geliştirme yapılmayacağı anlamına gelmektedir.
Bu yüzden veri tabanında verilerinin aşırı büyümemesi bu iki bölgedeki başlık, parametre ve gövde verilerinin yazılmaması tavsiye edilir.
Tüm loglama alanları kapalı olsa dahi istekte de bir hata oluştuysa log alanlarının tümü hatanın tespit edilebilmesi için kayıt edilir. Bu özellik genel ayarlarda açılıp, kapatılabilir.
Formdata istekleri değişken veri büyüklükleri ve veri formatları nedeniyle dosya kısımları hiçbir şekilde loglanmamaktadır. Sadece diğer metadata alanları loglanmaktadır.
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.
Bu ekranda API Proxy bazlı trafik log ayarlarını yönetebilirsiniz. Ortam üzerinde tanımlı konnektör entegrasyonları varsa, her proxy için trafik kayıtlarının bu hedeflere gönderilip gönderilmeyeceğini buradan ayarlarsınız.
Düzenleme penceresi (Edit API Traffic Proxy Log Settings)
Satırda Düzenle ile açılan pencerede solda CONNECTORS menüsünde Logback, Webhook, Kafka, RabbitMQ, veritabanı, Syslog, Elasticsearch gibi log hedefleri listelenir; bir öğeye tıkladığınızda sağda yalnızca o hedefe özel form görüntülenir. Üstte ortam seçimi ve Save and Deploy bulunur; her konnektör kartında Active for this environment anahtarı ile seçili ortamda gönderimin açılıp kapatılmasını yönetirsiniz. Menüdeki renkli durum göstergesi, ilgili konnektör için yapılandırmanın özet durumunu yansıtır. Method Overrides ile metot bazlı ek yapılandırmaya geçebilirsiniz.
Seçtiğiniz konnektör için Log içeriği bölümünde HTTP istek üst bilgileri, performans metrikleri, yanıt durumu ve yönlendirme adresi gibi üst düzey grupları ayrı ayrı işaretleyebilirsiniz; bu gruplar birbirinden bağımsızdır. Request from Client, Request to Target, Response from Target ve Response to Client kutularında her mesaj bölgesi için Parametre, Başlık ve Gövde (ve varsa Partial Size / kısmi boyut) ayarlarını düzenlersiniz. Altta Privacy ile gizlilik işleme seçeneğini açıp kapatabilirsiniz.
Veritabanı konnektörü log hedefi olarak seçildiğinde, log tablolarının şema ön eki veya özel tablo adı bağlantı (Connection) tanımında ayarlanır. Detay için Veritabanı Bağlantısı sayfasına bakın.
Log Ayarları Alanları
Log ayarları için kullanılan başlıca alanlar aşağıdaki tabloda özetlenmektedir.
| Alan | Açıklama |
|---|---|
| Active for this environment | Seçili ortamda bu log hedefine trafik kaydı gönderilip gönderilmeyeceğini açar veya kapatır. |
| HTTP istek ayrıntıları | İstemci IP, HTTP metodu, URI, port gibi üst bilgilerin loga dahil edilmesini yönetir. |
| Performans metrikleri | Süre, iletişim boyutu, önbellek ile ilişkili metriklerin loga yazılıp yazılmayacağını yönetir. |
| Yanıt durumu bilgisi | HTTP durum kodu ve hata tipi gibi alanların loga dahil edilmesini yönetir. |
| Yönlendirme adresi | Yönlendirme veya hedef adres bilgisinin loga yazılıp yazılmayacağını yönetir. |
| Başlık (Header) | İlgili mesaj bölgesinde başlık bilgilerinin loglanıp loglanmadığını yönetir. |
| Gövde (Body) | İlgili mesaj bölgesinde gövde bilgilerinin loglanıp loglanmadığını yönetir. |
| Parametre (Parameter) | İlgili mesaj bölgesinde parametre bilgilerinin loglanıp loglanmadığını yönetir. |
| Kısmi boyut (Partial size) | Uzun metin alanlarında kayıt boyutunun sınırlandırılıp sınırlandırılmayacağını ilgili mesaj bölgesi için yönetir. |
| Gizlilik (Privacy) | Ortamda tanımlı gizlilik kurallarının bu konnektör çıkışındaki log akışına uygulanıp uygulanmayacağını yönetir. |