GH GambleHub

KPI-uri de infrastructură și timpul de funcționare

De ce ai nevoie de ea?

KPI-urile de infrastructură transformă „sentimentele” privind stabilitatea în obiective măsurabile, gestionează riscul și concentrarea muncii. Valorile corecte leagă SLI-urile tehnice de rezultatele afacerii (conversie, Time-to-Wallet, LTV) și vă permit să planificați dezvoltarea, încărcarea și cota de inovație vs fiabilitate.

Concepte de bază: SLI, SLO, SLA și bugetul de eroare

SLI (Service Level Indicator) - indicator de calitate măsurat: proporția de solicitări de succes, p95 latență, uptime pe interval.
SLO (Service Level Obiectiv) - obiectiv SLI (de exemplu, "succes ≥ 99. 9% în 30 de zile").
SLA (Acord) - promisiune externă cu penalități/credite. Întotdeauna derivat din, dar nu egal cu, SLO.
Eroare la buget = '1 − SLO'. Aceasta este rata maximă permisă de eșec pe fereastră de măsurare. Folosit pentru a lua decizii cu privire la eliberări riscante și experimente.

Exemplu:
  • Disponibilitate SLO 99. 95% în 30 de zile → buget de eroare 0. 05% ≈ 21. 6 minute de „eşec” într-o lună calendaristică.

Patru semnale de aur și suplimentare

1. Latență (p50/p90/p95/p99, coada este mai importantă decât media).
2. Erori (erori 5xx/timeout/business).
3. Trafic/debit (RPS/QPS, MBps).
4. Saturație (CPU/RAM/IO/FD/conexiuni/GC/cote).
Suplimentar: pornire la rece, cozi/restanțe, timp de implementare, conformitate SLO.

Model SLI pentru diferite tipuri de servicii

HTTP/API

Disponibilitate: '(succes 2xx/3xx − erori logice )/( toate cererile)'

Latență: „p95” pentru interogări de succes; ţintă pe rute fierbinţi.
Calitate: proporția cererilor cu „audiență/domeniu” corectă (fără erori authZ).

Cozi/asincrone

Timpul de procesare a mesajelor: p95 de la un capăt la altul ≤ N secunde

Restanţe: mediană <X, coada p99 <Y.
Eroare de livrare: ≤ Z ppm.

DB/Cache

Latența operațiunii: p95 obține/pune/comite.
Saturație: utilizare piscină conexiune, cache hit-raport.
Erori: timeout, blocaje, furtuni de evacuare.

CDN/Static

Hit Ratio: nivelul țintă ≥; degradarea → creșterea încărcăturii la origine.
Disponibilitate POP: Anycast, eșecurile sunt compensate de vecini.

Plăți (Business SLI)

Timp-la-Wallet p95, depozit/succes de ieșire%, rata de eșec PSP.

Calcularea disponibilității și a timpului de funcționare

Disponibilitatea serviciului = 'cereri de succes/toate cererile' (preferabil nu 'minute de uptime').
O alternativă pentru nodurile de infrastructură este „timpul verde/timpul de fereastră”.
Fereastra calendarului: 28-31 zile, fereastra glisanta: ultimele 30/90 zile.
Ore de lucru/ferestre critice: pentru backoffice poate fi considerat uptime în conformitate cu programul (de exemplu, 08: 00-22: 00 ora locală).

Compoziția dependențelor (simplificată): Dacă serviciul A depinde de B și C, pentru eșecuri independente:
  • „Disponibilitate (A) ≈ Av (B) × Av (C) × Av (A 'B, C)” - este important să se stabilească SLO-uri la limitele.

Exemplu kit SLO (eșantion)

Gateway API: ≥ 99 disponibil. 95 %/30d; p95 latență ≤ 120 ms; eroare ≤ 0. 2%.
Checkout/Plăți: succes depozit ≥ 98. 5 %/30d; Time-to-Wallet p95 ≤ 90 с; PSP-timeout ≤ 0. 3%.
Baza de date: p95 citit ≤ 10 ms; p95 scrie ≤ 25ms; replica lag p95 ≤ 150 мс.
Cache: raportul lovit ≥ 85%; furtuni de evacuare = 0/30д.
Plăți: procesare p95 ≤ 5 min; fraud-falls-pozitiv ≤ 0. 3%.

Bugetul de eroare și gestionarea schimbărilor

Dacă bugetul de eroare este epuizat cu 50% + înainte de mijlocul ferestrei, se introduce o „înghețare” a caracteristicilor/eliberărilor, accentul se pune pe stabilizare.
Dacă bugetul este cheltuit încet, puteți accelera experimentele/canarii.
Conectați consumul bugetar la versiuni/incidente specifice prin intermediul 'release _ id'.

Alertă: cum să nu „suni noaptea” în zadar

Alerte numai pentru degradarea SLO și simptome vitale, nu pentru fiecare metrică.
Rată multi-fereastră, multi-burn: fereastră scurtă (5-15 min) + fereastră lungă (1-6 h).
Exemplu: „Rata de ardere 14 × în 5 minute ȘI 6 × într-o oră” → pagina de apel.
Ore liniștite pentru semnale non-P1; rutare de proprietate.

Tablouri de bord și practici de vizualizare

Panoul SLO: conformitatea serviciului, bugetul rămas, hărțile de dependență.
Panou latență: p50/p90/p95/p99, descompunere pe rute/chiriași/țări/ASN.
Panoul de erori: coduri/motive, corelație cu versiuni/steaguri de caracteristici.
Panou de capacitate: CPU/RAM/IO/rețea/FD/conexiuni, tendințe și previziuni.
Panoul de afaceri: Conversie, Timp-la-portofel, Depozite/Retrageri, Impactul protecțiilor (WAF/Anti-Bots).

Incidente, MTTR și post-mortem

KPI de reacţie:
  • MTTD (detectare), MTTA (acceptare), MTTR/MTTC (recuperare/izolare),% incidente fără RCA la timp.
  • Playbooks: cine escaladează, cum să activați steaguri/blocuri de caracteristici, cum să rulați înapoi eliberarea, comunicarea cu afacerea.
  • Postmortem (fără vină): fapte, linie de timp, cauze profunde (acele/procese), acțiuni: imediate/pe termen lung, teste de regresie, efect asupra SLO.

Performanță, saturație și degradare

Headroom: resursa țintă headroom (de ex. CPU <70% p95, RAM <75% p95).
Căi fierbinți: profilarea rutelor critice; „p99” este mai important decât media.
Moduri de degradare: cache-only, read-only, drop-slefuire a cererilor neimportante, „limita ratei „/cota.

Formule și exemple de calcule

1) Disponibilitate la cerere


availability = (total_requests - error_requests) / total_requests

unde 'error _ requires' = 5xx + timeout + erori de afaceri (configurabil).

2) Bugetul de eroare (minute)


error_budget_minutes = window_minutes (1 - SLO)

Exemplu: 30 zile (43.200 min), SLO 99. 95% → 21. 6 min.

3) Rata de ardere


burn_rate = observed_error_ratio / (1 - SLO)

Dacă SLO 99. 9% (buget 0. 1%) și eroare 1% → burn_rate = 10 ×.

4) Disponibilitate compusă


A_total ≈ A_gw × A_auth × A_db × A_psp

Căderile mici se înmulțesc a lovit totalul A.

Politici de măsurare și excepție

Ferestre neprogramate (incidente) - luate în considerare.
ferestre de întreținere planificate - luate în considerare numai în cazul în care SLA este prescris astfel; pentru SLO-uri de multe ori nu sunt scăzute (sau marcate separat ca „planificat _ downtime”).
Sintetice vs utilizatori reali: este util să aveți ambele canale (RUM + verificări sintetice).

Exemple de artefacte

KQL/PromQL (idei)

Eroare SLI (5xx + timeout) în 5 minute:
promql sum(rate(http_requests_total{status=~"5..    timeout"}[5m]))
/
sum(rate(http_requests_total[5m]))
p95 latență по traseu:
promql histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, route))
Rata de ardere 5m/1h:
promql
(
sum(rate(errors_total[5m])) / sum(rate(requests_total[5m]))
) / (1 - 0. 999)

SQL (SLI de afaceri de plată)

sql
SELECT date_trunc('minute', finished_at) AS ts,
100. 0 sum((status='SUCCESS')::int)::float / count() AS payment_success_pct,
percentile_cont(0. 95) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (finished_at - started_at))) AS ttw_p95_sec
FROM payments
WHERE finished_at > now() - interval '30 days'
GROUP BY 1 ORDER BY 1;

Gestionați dependențele și cascadele

Contracte SLO între echipe: gateway↔auth↔wallet↔PSP.
Politici de degradare: atunci când dependența scade, serviciul intră în „mod simplificat”.
Caracteristici: dezactivarea funcțiilor non-critice, „eliberare gri” pentru a reduce cozile de latență.

Planificarea și previziunile capacității

Schomes. RPS/MBps prognozate de tendințe și evenimente (turnee, meciuri, promoții).
Testarea încărcării prin „căi de aur”, teste separate pentru PSP/plăți.
Stocul la vârf: factorul țintă 1. 3 × -2. 0 × din sarcina preconizată.

Lista de verificare a implementării SLO/KPI

1. Identificați căile critice ale utilizatorilor și negociați SLI „din perspectiva clientului”.
2. Selectați obiectivele SLO și fereastra (30/90 zile); calculează bugetul de eroare.
3. Construiți colectarea metrică în gateway-uri/servicii, normalizați codurile/motivele.
4. Configurați alerte burn-rate (fereastră scurtă + lungă), rutare și de gardă.
5. Vizualizați conformitatea SLO, asociați-vă cu versiuni/steaguri de caracteristici.
6. Crearea unui buget împotriva politicii de schimbare și a unui proces de înghețare.
7. Retrospective și RCA pe fiecare exces, teste de regresie.
8. Revizuirea SLO trimestrială pentru utilizarea reală a bugetului și obiectivele de afaceri.

Greșeli comune

Măsurați „uptime by ping”, ignorând erorile aplicației.
SLO-urile sunt stabilite „în rezervă” (99. 999%), dar de neatins și nu rezolvă nimic.
Alerte pe valori de nivel scăzut în loc de simptome de utilizator.
Nu există nici o hartă de dependență → nu este clar unde arde.
Nu există nicio legătură între SLO și versiuni → nu este clar cine a „mâncat” bugetul.
Ignorați cozile p99 → medii bune, dar utilizatori VIP UX răi.

iGaming/fintech specific

Vârfuri programate: meciuri/evenimente/promoții - creșterea capacității în avans, încălzirea memoriei cache/CDN, includ profiluri limită speciale.
Business SLI: Time-to-Wallet, succes de depunere/retragere, „viteza de plată” p95; la rădăcina tablourilor de bord.
PSP/parteneri: SLO/tablouri de bord individuale de către furnizor, comutare automată a traseului.
Antibot/antifraudă: nu ar trebui să existe buget pentru erori - „blocuri legitime” separate de „erori tehnice”.
Reglementare: stocare jurnal, reproductibilitatea calculelor SLO/SLA, rapoarte incidente.

ÎNTREBĂRI FRECVENTE

Trebuie să scad munca planificată de la SLO?
De obicei, nu: SLO reflectă experiența experimentată de utilizator. Puteți specifica excepții pentru SLA.

De ce p95, nu medie?
Cel din mijloc maschează cozile; UX definesc cozi (p95/p99).

Pot avea un SLO pentru întregul produs?
Aveți nevoie de un arbore SLO: agregați după produs și copii după căi/componente critice.

Total

Un sistem KPI puternic de infrastructură este SLI-urile personalizate, SLO-urile realiste, bugetul de eroare ca pârghie de control al schimbării, disciplina inteligentă de alertă și incidente și RCA-urile. Conectați indicatorii tehnici cu măsurătorile de afaceri, automatizați colectarea și vizualizarea - iar infrastructura va deveni previzibilă, iar timpul de funcționare va fi controlat chiar și în scenariile de vârf.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Telegram
@Gamble_GC
Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.