API Sağlık Kontrolü
Genel Bakış
API'lerinizin erişilebilirliğini sürekli izleyin
Yanıt süreleri ve başarı oranlarını takip edin
Sorunları kullanıcılar etkilenmeden önce tespit edin
Hızlı müdahale için anında bildirim alın
API Sağlık Kontrolü Nedir?
Temel Kavram
API Sağlık Kontrolü, belirlediğiniz bir API endpoint'ine veya web servisine belirli aralıklarla otomatik olarak test istekleri gönderen bir izleme sistemidir.
Ne Zaman Kullanılır?
Ödeme, kimlik doğrulama gibi kritik API'lerin sürekli izlenmesi
Servis seviyesi anlaşmalarının takibi ve raporlanması
API yanıt sürelerinin izlenmesi ve trend analizi
Servislerin çalışma süresi (uptime) takibi
Nasıl Çalışır?
Kontrol edilecek URL, HTTP metodu, beklentiler ve zamanlama belirlenir
Belirlenen zamanlarda (örn: her 5 dakikada bir) otomatik olarak test isteği gönderilir
HTTP isteği gönderilir ve yanıt alınır
Beklentiler (assertion'lar) kontrol edilir:
- Yanıt süresi kontrolü
- HTTP durum kodu kontrolü
- Yanıt içeriği kontrolü
- XPath/JSONPath kontrolleri
Test sonucu kaydedilir (başarılı/başarısız)
Eğer test başarısız olursa, yapılandırılmış bildirimler tetiklenir
Hızlı Başlangıç
İlk Sağlık Kontrolünüzü Oluşturma
Administration → Monitoring → Uptime Monitor menü girişine tıklayın (doküman başlığı: API Sağlık Kontrolü)
"Yeni Oluştur" butonuna tıklayın
- Ad: Kontrolünüz için bir isim (örn: "Ödeme API Kontrolü")
- Açıklama: İsteğe bağlı açıklama
- HTTP Metodu: GET, POST, vb.
- URL: Test edilecek API endpoint'i
Kontrol sıklığını belirleyin (örn: Her 5 dakikada bir)
"Kaydet" butonuna tıklayın
Yeni Sağlık Kontrolü Oluşturma
Adım 1: Temel Bilgiler
Ad - Zorunlu
Sağlık kontrolü için benzersiz bir isim girin. Bu isim:
- Proje içinde benzersiz olmalıdır — aynı isimle ikinci bir sağlık kontrolü kaydedilemez, aynı isim başka bir projede kullanılabilir
- Boşlukla başlayamaz
- Sistem otomatik olarak ismin kullanılabilirliğini kontrol eder
İsim yalnızca değiştirildiğinde yeniden denetlenir. İsmi aynı kalan bir sağlık kontrolü her zaman kaydedilebilir; bu nedenle aynı projede aynı ismi taşıyan iki kontrol varsa — daha eski bir sürümden yükseltilmiş kurulumlarda ya da özgün ismi korunarak içe aktarılan kontrollerde mümkündür — ikisi de düzenlenebilir kalır, birini yeniden adlandırarak tekrarı giderebilirsiniz.
Bir ismin yalnızca harf büyüklüğünü değiştirmek, düzenlediğiniz kaydın tekrarı sayılmaz: Ödeme API İzleme
ismini ödeme api izleme olarak değiştirmek kabul edilir ve kaydedilebilir.
İyi İsim Örnekleri:
Ödeme API İzlemeKullanıcı Servisi Health CheckÜçüncü Taraf Entegrasyon KontrolüAna Sayfa Erişilebilirlik Kontrolü
Açıklama - Opsiyonel
Sağlık kontrolü hakkında açıklayıcı bilgi girebilirsiniz:
- Maksimum 1000 karakter
- Maksimum 1000 karakter
- Kontrolün amacını ve kapsamını açıklamak için kullanılır
- Liste sayfasında görüntülenir
Örnek Açıklamalar:
Kritik ödeme API'sinin 7/24 izlenmesi için oluşturulmuşturMüşteri portalı ana sayfa erişilebilirlik kontrolüÜçüncü taraf servis sağlayıcı entegrasyonu izleme
Durum (Status) - Varsayılan: Aktif
Sağlık kontrolünün aktif/pasif durumunu belirler:
- Aktif: Kontrol çalışır, zamanlanmış testler gönderilir
- Pasif: Kontrol durdurulur, test gönderilmez (geçmiş veriler korunur)
Adım 2: Zamanlama Ayarları
Sağlık kontrolünün ne sıklıkla çalışacağını belirleyin. Cron Expression kullanarak zamanlama yapılır.
Yaygın Zamanlama Örnekleri
| Açıklama | Cron Expression | Kullanım Senaryosu |
|---|---|---|
| Her 5 dakikada bir | 0 */5 * ? * * | Kritik API'ler için (en yaygın) |
| Her 15 dakikada bir | 0 */15 * ? * * | Normal API'ler için |
| Her saat başı | 0 0 * ? * * | Test/Development ortamları için |
| Her gün saat 09:00 | 0 0 9 * ? * | Günlük raporlama için |
| Her hafta Pazartesi 09:00 | 0 0 9 ? * MON | Haftalık kontrol için |
Öneriler:
- Kritik API'ler için: Her 5 dakikada bir
- Normal API'ler için: Her 15-30 dakikada bir
- Test/Development için: Her saat başı
- Raporlama amaçlı kontroller için: Günlük veya haftalık
Bakım Penceresi (Maintenance Window)
Planlı kesintiler için isteğe bağlı bir bakım penceresi (başlangıç ve bitiş saati, örn. 02:00–03:00)
tanımlayabilirsiniz. Bu aralıkta kontroller çalışmaya devam eder ve sonuçlar kaydedilir, ancak
bildirimler bastırılır. İhtiyacınız yoksa boş bırakın.
Servis Seviyesi (SLA) Ayarları
Kontrolün sağlık durumunu yalnızca Çalışıyor/Erişilemiyor yerine Performans Düşüşü (Degraded) olarak da sınıflandırmanızı sağlayan isteğe bağlı eşik değerleri:
- Bildirim eşiği (Alert after): Kontrolün "erişilemiyor" sayılması için gereken ardışık başarısızlık sayısı (tek seferlik geçici bir hatada bildirim gitmesini önler)
- Yanıt süresi bütçesi (p95): 95. yüzdelik dilim yanıt süresi bu değerin üzerine çıkarsa kontrol Performans Düşüşü olarak işaretlenir. Devre dışı bırakmak için boş bırakın.
- Hedef çalışma oranı (Target uptime): Çalışma oranı bu yüzdenin altına düşerse kontrol Performans Düşüşü olarak işaretlenir. Devre dışı bırakmak için boş bırakın.
Adım 3: İstek Ayarları
Bu bölümde test edilecek endpoint'in bilgilerini yapılandırırsınız.
Koleksiyondan Seçin (Select From Collection) - Önerilen
Daha önce Test Console'da oluşturduğunuz test senaryolarını kullanabilirsiniz:
"Koleksiyondan Seçin" butonuna tıklayın
Açılan dialog'da test koleksiyonlarınızı görüntüleyin
İstediğiniz test senaryosunu seçin
Test bilgileri otomatik olarak formu doldurur
Avantajları:
- Zaman kazanırsınız
- Tutarlı test senaryoları kullanırsınız
- Test senaryolarınızı merkezi olarak yönetebilirsiniz
HTTP Metodu (Method) - Zorunlu
HTTP istek metodunu seçin:
Veri okuma (en yaygın kullanılan)
Veri gönderme
Veri güncelleme
Veri silme
Kısmi güncelleme
Sadece header bilgisi
URL - Zorunlu
Test edilecek endpoint'in tam URL'ini girin:
Örnekler:
https://api.example.com/usershttps://api.example.com/payment/verifyhttp://localhost:8080/healthhttps://api.example.com/v1/products?category=electronics
Notlar:
- URL mutlak (absolute) olmalıdır
- HTTPS ve HTTP desteklenir
- Query parametreleri URL'ye eklenebilir veya ayrı bir alanda belirtilebilir
Parametreler (Parameters) - Opsiyonel
URL'ye query parametreleri eklemek için kullanılır:
Örnek:
- Parametre Adı:
userId - Parametre Değeri:
12345
Sonuç URL: https://api.example.com/users?userId=12345
Başlıklar (Headers) - Opsiyonel
HTTP isteğine header eklemek için kullanılır:
Yaygın Kullanımlar:
- Authorization:
Bearer token123veyaBasic base64encoded - Content-Type:
application/json,application/xml - X-API-Key:
your-api-key - Custom Headers: Özel header'lar
Örnek:
- Başlık Adı:
Authorization - Başlık Değeri:
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Gövde (Body) - POST/PUT/PATCH için
İstek gövdesi (request body) girebilirsiniz:
Desteklenen Formatlar:
- Raw: JSON, XML, Text
- Form URL Encoded: Form verileri
JSON Örneği:
{
"userId": 12345,
"action": "verify",
"timestamp": "2024-01-15T10:30:00Z"
}
XML Örneği:
<request>
<userId>12345</userId>
<action>verify</action>
</request>
Adım 4: Doğrulama Ayarları
Doğrulama (Assertion) ayarları, test sonucunun başarılı sayılması için gerekli kontrolleri belirler.
Zamanaşımı Kontrolü (Timeout Assertion)
Bu seçenek aktif edildiğinde, belirlenen zamanaşımı değeri doğrulama için de kullanılır:
- İstek belirlenen süre içinde yanıtlanmalıdır
- Aksi halde test başarısız sayılır
HTTP Durum Kodu Kontrolü (Status Code Assertion)
HTTP status code kontrolü yapmak için:
"Sonuç Durum Kodu" toggle'ını aktif edin
"Beklenen Durum Kodu" alanına beklenen status code'u girin
Varsayılan Değer: 200 (OK)
Yaygın Status Code'lar:
200: Başarılı201: Oluşturuldu204: İçerik yok400: Hatalı istek401: Yetkisiz404: Bulunamadı500: Sunucu hatası
Örnek Senaryo:
- Beklenen Status Code:
200 - Gerçek Status Code:
200→ ✅ Başarılı - Gerçek Status Code:
500→ ❌ Başarısız
Yanıt Gövdesi Kontrolü (Body Assertion)
Response body'nin belirli bir içerik içerip içermediğini kontrol eder:
"Sonuç Gövdesi" toggle'ını aktif edin
"Beklenen Sonuç Gövdesi" alanına beklenen içeriği girin
Kullanım Senaryoları:
- Response'ta belirli bir metin olmalı:
"status": "success" - Response belirli bir değer içermeli:
"active": true - Response boş olmamalı
Örnek:
- Beklenen:
"status": "ok" - Gerçek:
{"status": "ok", "data": {...}}→ ✅ Başarılı - Gerçek:
{"status": "error"}→ ❌ Başarısız
XPath Kontrolü (XPath Assertion) - XML için
XML response'larda XPath kullanarak kontrol yapar:
"XPath Sonucu" toggle'ını aktif edin
XPath alanına XPath ifadesini girin
Beklenen XPath Sonucu alanına beklenen değeri girin
Örnek:
- XPath:
/response/status - Beklenen Sonuç:
success - Gerçek XML:
<response><status>success</status></response>→ ✅ Başarılı
JSONPath Kontrolü (JSONPath Assertion) - JSON için
JSON response'larda JSONPath kullanarak kontrol yapar:
"JsonPath Sonucu" toggle'ını aktif edin
JsonPath alanına JSONPath ifadesini girin
Beklenen JsonPath Sonucu alanına beklenen değeri girin
Örnek:
- JSONPath:
$.status - Beklenen Sonuç:
ok - Gerçek JSON:
{"status": "ok", "data": {...}}→ ✅ Başarılı
Yaygın JSONPath Örnekleri:
$.status: Root'taki status alanı$.data.items[0].id: İlk item'ın id'si$.user.name: User objesinin name alanı$.results[*].id: Tüm result'ların id'leri
Adım 5: Ayarlar
Zamanaşımı (Timeout) - Varsayılan: 30 saniye
İstek için maksimum bekleme süresini belirler:
- Saniye cinsinden girilir
- Varsayılan değer:
30saniye - Bu süre içinde yanıt alınamazsa test başarısız sayılır
Öneriler:
- Hızlı API'ler için:
10-15saniye - Normal API'ler için:
30saniye - Yavaş API'ler için:
60saniye veya daha fazla
SSL Sertifikası (Enable Certificate)
HTTPS isteklerinde SSL sertifikası kullanmak için:
- Bu seçenek aktif edildiğinde, özel SSL sertifikası kullanılabilir
- Genellikle self-signed sertifikalar veya özel CA sertifikaları için kullanılır
Adım 6: Yeniden Deneme Ayarları (Retry Settings)
Geçici sorunlarda otomatik yeniden deneme yapmak için:
Başarısızsa Yeniden Dene (Retry On Fail)
"Başarısızsa Yeniden Dene" toggle'ını aktif edin
"Yeniden Deneme Sayısı" seçin: 1, 3, 5, veya 10
Nasıl Çalışır:
- İlk istek başarısız olursa
- Belirlenen sayı kadar tekrar denenir
- Her deneme arasında bekleme yapılabilir (opsiyonel)
Örnek Senaryo:
- Yeniden Deneme Sayısı:
3 - İlk istek başarısız → 1. yeniden deneme → başarısız → 2. yeniden deneme → başarısız → 3. yeniden deneme → başarılı → ✅ Başarılı
İstekler Arası Bekleme (Delay Between Requests)
Yeniden denemeler arasında bekleme yapmak için:
"İstekler Arası Bekleme" toggle'ını aktif edin
"Bekleme" alanına saniye cinsinden bekleme süresini girin
Varsayılan Değer: 3 saniye
Kullanım Senaryosu:
- Sunucu yükünü azaltmak için
- Rate limiting'den kaçınmak için
- Geçici sorunların çözülmesi için zaman tanımak
Örnek:
- Yeniden Deneme Sayısı:
3 - Bekleme:
5saniye - İlk istek başarısız → 5 sn bekle → 1. yeniden deneme → başarısız → 5 sn bekle → 2. yeniden deneme → başarılı
Adım 7: Bildirim Alıcıları (Recipients)
Test başarısız olduğunda tetiklenecek bildirimleri yapılandırın:
Bildirim Ekleme
Recipients tablosunda "+" butonuna tıklayın
Bildirim türünü seçin:
- Email: Email bildirimi gönderir
- Webhook: HTTP POST isteği gönderir
- Slack: Slack kanalına mesaj gönderir
- SMS: SMS bildirimi gönderir
- Ve daha fazlası...
Bildirim yapılandırmasını tamamlayın
Bildirim Yönetimi:
- Düzenle: Bildirim bilgilerini güncellemek için menüden "Düzenle" seçin
- Sil: Bildirimi kaldırmak için menüden "Sil" seçin
- Aktif/Pasif: Toggle ile bildirimi aktif/pasif yapabilirsiniz
Bildirim İçeriği: Bildirimlerde şu bilgiler gönderilir:
- Sağlık kontrolü adı
- Proxy adı (varsa)
- Hedef URL
- Hata mesajı
- Zaman damgası
- Test sonucu detayları
Adım 8: Kaydetme
Tüm bilgileri doldurduktan sonra:
Form validasyonlarının geçtiğinden emin olun:
- ✅ Ad girilmiş ve kullanılabilir
- ✅ URL girilmiş
- ✅ Zamanlama ayarları yapılmış
- ✅ En az bir assertion aktif (önerilir)
"Kaydet" butonuna tıklayın
Sağlık kontrolü kaydedildikten sonra otomatik olarak listeleme sayfasına yönlendirilirsiniz
Sağlık Kontrolü Yönetimi
Liste sayfası Overview ve All monitors olmak üzere iki sekmeden oluşur.
Overview Sekmesi
- Özet kartları: Çalışır durumdaki (Operational), performansı düşmüş (Degraded) ve erişilemeyen (Down) kontrol sayıları ile son 24 saatteki genel çalışma oranı (global uptime)
- Servis seviyesi (SLA): Hedef çalışma oranı tanımlanmış kontrollerden kaçının bu hedefi karşılamadığını özetler; hedefi karşılamayan her kontrol için ad ve durum (kritik/performans düşüşü) listelenir
- Yanıt süresi grafiği: Tüm kontrollerin p50/p95/p99 yanıt sürelerini zaman içinde gösterir
- Dikkat gerektirenler: Şu anda erişilemeyen veya performansı düşmüş kontrolleri, ne zamandır bu durumda olduklarıyla birlikte listeler
All Monitors Sekmesi
Bu sekme tüm sağlık kontrollerini tablo halinde listeler:
Arama ve Filtreleme
- Ad arama: Kontrol adına göre arama yapabilirsiniz
- Durum filtre çipleri: All / Up / Degraded / Down / Paused — kontrolleri anlık duruma göre daraltır
- Proje Filtresi (Admin modunda): Birden fazla projeden kontrolleri görüntüleyebilirsiniz
Tablo Sütunları
- Monitor: Durum noktası + ad (tıklanabilir, Detay sayfasına gider) + HTTP metodu ve URL; pasif kontroller "Paused" rozetiyle işaretlenir
- Son 24 saat: Çalıştırma sonuçlarını gösteren bar grafiği
- Uptime: Son 24 saatteki çalışma oranı (%)
- SLA: Servis seviyesi tanımlıysa hedefi karşılıyor/karşılamıyor rozeti ve hedef değeri
- Ort. yanıt süresi: Sparkline grafiği ile birlikte ortalama yanıt süresi (ms)
- Son kontrol: En son kontrolün ne zaman yapıldığı
- Proje (Admin modunda): Kontrolün ait olduğu proje
- İşlemler: Menü butonu (⋮)
İşlemler Menüsü
Her kontrol için menü butonuna (⋮) tıklayarak şu işlemleri yapabilirsiniz:
- Detay: Kontrolün sonuçlarını ve yapılandırmasını görüntüle
- Etkinleştir / Devre Dışı Bırak (Activate/Deactivate): Kontrolü aktif/pasif yap
- Düzenle: Kontrol ayarlarını güncelle
- Çoğalt: Kontrolün kopyasını oluştur
- Sil: Kontrolü sil
- Global'e Taşı (Proje kontrolü ise): Kontrolü global projeye taşı
Durum Değiştirme (Activate/Deactivate)
Kontrolün etkin/pasif durumunu değiştirmek için işlemler menüsünden (⋮) Etkinleştir veya Devre Dışı Bırak'ı seçin. Aynı işlem Detay ekranının üst barındaki Activate/Deactivate butonundan da yapılabilir. Pasif kontroller çalışmaz, ancak geçmiş verileri korunur.
Ayrı bir "Görüntüle (View)" ekranı kaldırılmıştır; kontrol adına tıklandığında doğrudan Detay sayfası açılır.