Bloga geri dön

API izleme: HTTP 200 yeterli olmadiginda

· 7 dk okuma

Bir JSON API, govdesinde hata olan bir HTTP 200 dondurebilir - durum koduna dayali izleme UP olarak bildirir. Gercek API izleme, yalnizca HTTP'yi degil yanitin icerigini de kontrol eder.

API izleme: HTTP 200 yeterli olmadiginda

Sorun: HTTP 200 != calisan API

REST API kurallarina gore durum kodlari dogru kullanilmalidir (200 OK, 4xx client error, 5xx server error). Pratikte:

  • Bazi API'ler her zaman 200 donduruyor, hata JSON body icinde
  • Bir API gateway, bir 5xx'i hata JSON'lu bir 200'e donusturebilir
  • Frontend BFF uc noktalari genellikle backend'leri sarmalar ve iletisim basarili olduysa backend basarisiz olsa bile 200 donduruyor
  • GraphQL uc noktalari tipik olarak 200 donduruyor; hatalar (errors) errors[] dizisinde yer alir

Klasik izleme (HTTP durum kodu) acisindan her sey yolunda. Gercek bir istemci acisindan API bozulmus durumda.

Content matching: anahtar kelimeler

HTTP izlemeye en basit eklenti anahtar kelime eslesmesidir. Yanitta bulunmasi gereken bir dize tanimlarsiniz - eksikse bir uyari gelir.

Bir health check uc noktasi icin ornek:

GET /api/health HTTP/1.1

{
  "status": "ok",
  "checks": {
    "database": "ok",
    "redis": "ok",
    "queue": "ok"
  },
  "version": "1.42.3"
}

Keyword match'i "status":"ok" olarak ayarlayin. Veritabani dustugunde ve uc nokta "status":"degraded" dondurdugunde izleme bunu yakalar.

Negative matching: ne eksik olmali

Bazen belirli bir dizenin yanitta OLMADIGINI kontrol etmek daha yararlidir:

  • "error" - govdedeki bir hata
  • "maintenance" - beklenmedik bir bakim modu
  • "deprecated" - API uc noktasi kullanimdan kaldirilmis (deprecated) olarak isaretlenmis
  • SQL hata parcalari: "SyntaxError", "undefined", "null pointer" - sizan backend hatalari

Gelismis assertion'lar

Duz metin eslesmesinin sinirlari vardir. Ciddi bir API izleme icin, JSON yapisi uzerindeki yapilandirilmis assertion'lar (JSONPath ifadeleri) ve cok adimli sentetik islemler (login -> korumali uc nokta -> logout) dogru aractir.

ePulz.io bu secenekleri dogrudan destekler. Multi-step / API izleme, 10 adima kadar zincirleme (GET/POST/PUT/PATCH/DELETE/HEAD), her adimda durum kodunu, icerigi ve bir JSONPath degerini dogrulama ve sonraki adimlar icin yanittan degisken saklama imkani verir. Ozellik Profi ve Business planlarinda mevcuttur ve birincil bolgede calisir. Alt planlardaki daha basit durumlar icin, bir HTTP monitorunu, sonucu bir heartbeat monitoru uzerinden gonderen ayri bir yardimci scriptle birlestirebilirsiniz.

Izlemede authentication

Izlenen bir uc nokta cogu zaman auth gerektirir. Secenekler:

  • Authorization basliginda Bearer token - tipik olarak suresi dolmayan uzun omurlu bir izleme token'i (guvenli sekilde saklayin)
  • Query parametresinde API key - loglarda gorunur, tercih edilmez
  • HMAC imzasi - paylasilan bir sirla imzalanmis timestamp + URL + body hash. En guvenlisi.
  • mTLS - izleme tarafinda bir istemci sertifikasi. Dahili API'ler icin uygun.

Guvenlik uyarisi: Izleme icin minimum yetkili adanmis bir hesap / token olusturun (read-only health uc noktasi, admin token degil). Token'i duzenli olarak dondurun. Izleme hizmeti ele gecirilirse, API'ye tam erisim sizmaz.

Yanit suresi SLO'su

API'nin yanit suresi HTTP kodu kadar onemlidir. 30 s timeout'lu bir istemci, "API 200'u 25 s'de donduruyor" ile "API timeout'a girdi" arasinda fark gormez. UX acisindan ikisi de kotudur.

Ayarlayin:

  • Hard timeout - 10-15 s sonra izleme DOWN bildirir
  • Soft threshold - 500-2000 ms arasi bir yanit suresi = warning (degraded performance)
  • Trend uyarilari - yanit suresinin 95. yuzdelik dilimi son 24 saatte %50 artarsa bir uyari

Uc nokta bazinda izleme

Buyuk bir API'nin onlarca uc noktasi vardir. Yalnizca /health uc noktasini izlemeyin - o da yalan soyleyebilir. 3-5 kritik uc nokta belirleyin:

  • En cok kullanilan is operasyonlari (POST /api/orders, GET /api/dashboard)
  • Bir cache hit'i test eden bir okuma uc noktasi (hizli yanit)
  • DB roundtrip'li bir yazma uc noktasi
  • Bir dis entegrasyon uc noktasi (ucuncu tarafi cagirir - bagimlilik kesintilerini tespit eder)

Her birini ayri izleyin. Bir olay sirasinda boylece API'nin hangi parcasinin dustugunu tam olarak gorursunuz.

Sonuc

API izleme bir HTTP durum koduna indirgenmez. Kaliteli izleme; durum + content match + yanit suresi + uc nokta bazinda ayrinti + authentication birlestirerek gercek bir istemciyi sadakatle taklit eder - yalnizca bir HTTP istemcisini degil.

Anahtar kelime eslesmeli API izleme

Durum kodu + icerikte anahtar kelime + yanit suresi + auth headers. Uc nokta bazinda ayrinti.

Izlemeyi baslat →

Ilgili

Paylaş: Bağlantı kopyalandı

ePulz.io'yu ücretsiz deneyin - 7 gün, kredi kartı gerekmez.

Hesap oluştur