Späť na blog

API monitoring: keď HTTP 200 nestačí

· 7 min čítania

JSON API môže vrátiť HTTP 200 s telom o chybe - monitoring na status kód vyhlási UP. Pravý API monitoring kontroluje aj obsah odpovede, nie len HTTP.

API monitoring: keď HTTP 200 nestačí

Problém: HTTP 200 ≠ funkčné API

Podľa REST API konvencií sa majú status kódy používať správne (200 OK, 4xx client error, 5xx server error). V praxi:

  • Niektoré API vracajú vždy 200, chyba je v JSON body
  • API gateway môže transformovať 5xx na 200 s error JSON
  • Frontend BFF endpointy často wrappujú backendy a vracajú 200, ak komunikácia prebehla, aj keď backend zlyhal
  • GraphQL endpointy typicky vracajú 200; chyby (errors) sú v poli errors[]

Z perspektívy klasického monitoringu (HTTP status kód) je všetko OK. Z perspektívy reálneho klienta sa API rozbilo.

Content matching: kľúčové slová

Najjednoduchší doplnok HTTP monitoringu je zhoda kľúčového slova. Definujete reťazec, ktorý musí byť v odpovedi - ak chýba, príde upozornenie.

Príklad pre health check endpoint:

GET /api/health HTTP/1.1

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

Keyword match nastavte na "status":"ok". Ak DB padne a endpoint vráti "status":"degraded", monitoring to zachytí.

Negative matching: čo by malo chýbať

Niekedy je užitočnejšie kontrolovať, že určitý reťazec NIE je v odpovedi:

  • "error" - chyba v body
  • "maintenance" - nečakaný maintenance mód
  • "deprecated" - API endpoint bol označený ako zastaraný (deprecated)
  • SQL error fragmenty: "SyntaxError", "undefined", "null pointer" - prosakujúce backend chyby

Pokročilé asercie

Plain text match má svoje limity. Pre seriózny API monitoring sú vhodné štruktúrované asercie nad JSON štruktúrou (JSONPath výrazy) a viackrokové synthetic transakcie (login -> chránený endpoint -> logout).

ePulz.io tieto možnosti podporuje priamo. Multi-step / API monitoring umožňuje reťaziť až 10 krokov (GET/POST/PUT/PATCH/DELETE/HEAD), pri každom kroku overiť stavový kód, obsah aj JSONPath hodnotu a ukladať premenné z odpovede pre ďalšie kroky. Funkcia je dostupná na plánoch Profi a Business a beží na primárnom regióne. Pre jednoduchšie prípady na nižších plánoch môžete HTTP monitor skombinovať so samostatným pomocným skriptom, ktorý posiela výsledok cez heartbeat monitor.

Authentication v monitoringu

Monitorovaný endpoint často vyžaduje auth. Možnosti:

  • Bearer token v Authorization headeri - typicky long-lived monitoring token bez expirácie (treba ho bezpečne uložiť)
  • API key v query parametri - viditeľný v logoch, nepreferované
  • HMAC signature - timestamp + URL + body hash signed so shared secret. Najbezpečnejšie.
  • mTLS - klientský cert na strane monitoringu. Vhodné pre interné API.

Bezpečnostné upozornenie: Pre monitoring vytvorte dedikovaný account / token s minimálnymi právami (read-only health endpoint, nie admin token). Token rotujte pravidelne. Ak monitoring service utečie, neunikne celý prístup do API.

SLO času odozvy

Čas odozvy API je rovnako dôležitý ako HTTP kód. Klient s timeoutom 30 s nevidí rozdiel medzi "API vráti 200 za 25 s" a "API skončilo timeoutom". Z hľadiska UX sú oba zlé.

Nastavte:

  • Hard timeout - po 10-15 s monitoring oznámi DOWN
  • Soft threshold - čas odozvy medzi 500-2000 ms = warning (degraded performance)
  • Trendové upozornenia - upozornenie, ak 95. percentil času odozvy stúpne o 50 % za posledných 24 h

Per-endpoint monitoring

Veľké API má desiatky endpointov. Nemonitorujte len /health - aj ten môže klamať. Identifikujte 3-5 kritických endpointov:

  • Najpoužívanejšie business operations (POST /api/orders, GET /api/dashboard)
  • Čítací endpoint testujúci cache hit (rýchla odpoveď)
  • Write endpoint s DB roundtripom
  • External integration endpoint (volá tretiu stranu - detekuje výpadky závislostí)

Každý monitorujte samostatne. Pri incidente tak presne vidíte, ktorá časť API padla.

Záver

API monitoring nemožno zredukovať na HTTP status kód. Kvalitný monitoring kombinuje status + content match + čas odozvy + per-endpoint granularitu + authentication, aby verne napodobňoval reálneho klienta - nielen HTTP klienta.

API monitoring so zhodou kľúčového slova

Status kód + keyword v obsahu + čas odozvy + auth headers. Per-endpoint granularita.

Spustiť monitoring →

Súvisiace

Zdieľať: Odkaz skopírovaný

Vyskúšajte ePulz.io zadarmo - na 7 dní bez potreby kreditnej karty.

Vytvoriť účet