Προϋπολογισμοί σφαλμάτων και διαχείριση SLO
1) Γιατί SLO και προϋπολογισμός σφάλματος
SLO (Στόχος επιπέδου υπηρεσίας) - επίπεδο-στόχος που αντιλαμβάνεται ο χρήστης· SLI - μετρημένη μέτρηση· Σφάλμα προϋπολογισμού - ανοχή για αποκλίσεις ανά παράθυρο (συνήθως 30/90 ημέρες).
Ο προϋπολογισμός σφάλματος μετατρέπει την αξιοπιστία από μια «αφαίρεση» σε έναν διαχειριστή πόρο: όταν ο προϋπολογισμός καίγεται γρήγορα, παγώνουμε τα χαρακτηριστικά και το chinim? όταν ο προϋπολογισμός είναι υγιής - μπορείτε να επιταχύνετε την απελευθέρωση.
2) SLI pick: Τι μετράει ως «καλό»
Κριτήριο: «επιτυχής από την άποψη του χρήστη».
2. 1 Κλασικά SLI
Διαθεσιμότητα είναι το ποσοστό των επιτυχών αιτήσεων (εξαιρουμένων όσων ακυρώθηκαν από τον πελάτη).
'success = http_status ∈ {2xx, 3xx, 404} και no timeout' (404 μπορεί να θεωρηθεί επιτυχία API ανάγνωσης εάν αναμένεται σημασιολογία).
Καθυστέρηση: το ποσοστό των αιτήσεων είναι ταχύτερο από το κατώτατο όριο (π.χ. p95 ≤ 300 ms).
'good _ latency = duration_ms ≤ 300'.
Φρεσκάδα/σταθερότητα: «δεδομένα που δεν είναι παλαιότερα των X λεπτών» (μνήμη, κατάλογοι, συντελεστές).
Ποιότητα: ορθότητα του αποτελέσματος (επικυρωτές επιχειρήσεων διέλευσης/αναλλοίωτες υπηρεσίες υποστήριξης).
2. 2 Όρια και τμήματα
Οι SLI θα πρέπει να υπολογίζονται με σημαντικές φέτες: «διαδρομή», «ενοικιαστής/εμπορικό σήμα», «περιφέρεια/δικαιοδοσία», «πάροχος _ πληρωμής». Έτσι δεν θα «αμαυρώσετε» την αποτυχία μιας κριτικής λαβής σε όλο το σύστημα.
3) Τύποι και προϋπολογισμός
3. 1 Με βάση την αίτηση (προτιμάται για API)
SLO_availability = good_requests / total_requests
Error_budget = 1 - SLO_target
Burn = 1 - SLO_actual
3. 2 Χρονική βάση (για υπηρεσίες υποβάθρου/streaming)
SLO_uptime = good_minutes / total_minutes
3. 3 Παράδειγμα στόχων
API General: 99. 9% διαθεσιμότητα σε 30 ημέρες → προϋπολογισμό = 0. 1%.
Ζωτικής σημασίας στυλό πληρωμής: 99. 95%; καταλόγους/αναζήτηση: 99. 5%.
Καθυστέρηση: p95 ≤ 300 ms στις «/v1/πληρωμές », p99 ≤ 800 ms.
4) Όργανα SLI
4. 1 Αρχές
Καταγραφές/μονοπάτια → μετρήσεις RED (ρυθμός/σφάλματα/διάρκεια) με σαφείς κουβάδες.
Βεβαιωθείτε ότι θα τοποθετήσετε τον όρο «ενοικιαστής», «περιφέρεια», «διαδρομή _ κλάση» (χωρίς PII).
Μετρήστε δύο μετρήσεις: «επιτυχία» και «σύνολο», και για καθυστέρηση, «γρήγορη» και «συνολική».
4. 2 Prometheus παράδειγμα (ρυθμός ανά 5m)
promql
Availability (successes/total)
sli:success:rate5m = sum by(region, route)(
rate(http_requests_total{code=~"2.. 3.."}[5m])
)
sli:total:rate5m = sum by(region, route)(
rate(http_requests_total[5m])
)
sli:availability:ratio5m = sli:success:rate5m / sli:total:rate5m
Latency (fraction faster than 300 ms)
sli:fast:rate5m = sum by(region, route)(
rate(http_request_duration_seconds_bucket{le="0. 3"}[5m])
)
sli:latency_ok:ratio5m = sli:fast:rate5m / sli:total:rate5m
5) Ειδοποιήσεις με ρυθμό καύσης (πολλαπλών παραθύρων, πολλαπλών εγκαυμάτων)
5. 1 Ιδέα
Εξετάζουμε πόσο γρήγορα καίγεται ο προϋπολογισμός σε σχέση με τον στόχο. Αν η ταχύτητα είναι υψηλή σε ένα κοντό και μακρύ παράθυρο, σηματοδοτούμε.
5. 2 Χαρακτηριστικά κατωφλίου (για SLO 99. 9%)
Τηλεειδοποίηση: ρυθμός καύσης ≥ 14. 4 × (10% του προϋπολογισμού για 1 ώρα και 5% για 6 ώρες).
Εισιτήριο: ποσοστό καύσης ≥ 6 × (2% σε 6 ώρες και 1% σε 24 ώρες).
5. 3 Παράδειγμα κανόνων (Προμηθέας, ψευδο)
promql
Let's calculate the error_ratio on two windows short = 1 - (sum (rate (http_requests_total{code=~"2.. 3.."}[5m])) /
sum(rate(http_requests_total[5m])))
long = 1 - (sum(rate(http_requests_total{code=~"2.. 3.."}[1h])) /
sum(rate(http_requests_total[1h])))
For SLO = 99. 9%, error_budget=0. 001. BurnRate = error_ratio / 0. 001 burn_short = short / 0. 001 burn_long = long / 0. 001
Paging: Both windows exceed 14. 4× alert: SLOErrorBudgetBurnRateHigh expr: burn_short > 14. 4 and burn_long > 14. 4 for: 5m labels: { severity="page" }
annotations:
summary: "SLO burn rate high (short & long windows)"
runbook: "slo/runbooks/payments. md"
Ομοίως για 6 ώρες/24 ώρες για το εισιτήριο.
6) Υπηρεσία Προϋπολογισμού: Διαδικασίες
6. 1 Πύλες απελευθέρωσης
Εάν το υπόλοιπο του προϋπολογισμού είναι <25% και η τάση είναι αρνητική - «πάγωμα του κώδικα» στα χαρακτηριστικά, η προτεραιότητα είναι SRE/σταθερότητα.
Οι εκλύσεις καναρινιών πρέπει να έχουν ξεχωριστή φέτα SLO ("εγκατάσταση. περιβάλλον =» καναρίνι»').
6. 2 Προτεραιότητα στις καθυστερήσεις
Κατανομή της ικανότητας διοίκησης ανάλογα με το ρυθμό καύσης και τις επιπτώσεις στα έσοδα.
Δικαιολογήστε το τεχνικό χρέος με μετρήσεις: «ο καθορισμός X θα μειώσει το ποσοστό καύσης κατά Y%».
6. 3 Μετά το συμβάν
Κάθε περιστατικό - RCA και «fix που δεν μπορεί να επανατυλιχθεί» (ενεργοποιήσιμο), ο έλεγχος «έχει επιστρέψει στο SLO».
7) SLO ως κωδικός
7. Παράδειγμα μανιφέστου SLO (YAML)
yaml service: payments-api owner: team-payments slis:
- name: availability type: request_based success_query: sum(rate(http_requests_total{svc="pay",code=~"2.. 3.."}[5m]))
total_query: sum(rate(http_requests_total{svc="pay"}[5m]))
objective: 99. 95 window: 30d segments: ["region", "tenant", "route"]
- name: latency_p95_300ms type: latency_threshold good_query: sum(rate(http_request_duration_seconds_bucket{svc="pay",le="0. 3"}[5m]))
total_query: sum(rate(http_request_duration_seconds_count{svc="pay"}[5m]))
objective: 99. 0 window: 30d alerts:
- name: burn_high_page windows: ["5m", "1h"]
threshold_burn: 14. 4 severity: page
7. 2 Γενιά κανόνων
Χρησιμοποιήστε γεννήτριες (slo-generator, pyra, sloth) για να δημιουργήσετε αυτόματα κανόνες, ταμπλό και αναφορές.
8) Υποβάθμιση και προστασία SLO
Αφαίρεση φορτίου: δώστε γρήγορες απαντήσεις χωρίς «ακριβές» εξαρτήσεις στην κορυφή.
Cache & stale: 'stale-while-revalidate' для read.
Όρια επιτοκίου/συναλλάγματος: προστατεύει υποστηρικτές· σημαντικές διαδρομές - προτεραιότητα.
Κύκλωμα/Timeout: ταχύπλοα και «εφεδρικά» κλαδιά.
Σημαίες χαρακτηριστικών: απενεργοποίηση βαρέων χαρακτηριστικών με ένα κουμπί.
9) Παρατηρησιμότητα για SLO
Ταμπλό: SLO πραγματικό έναντι στόχου, δημοσιονομικό υπόλοιπο, ποσοστό καύσης, συνεισφορά από δρομολόγια/παρόχους.
Συσχέτιση: από την «οπή» του SLO έως το παράδειγμα συγκεκριμένου ιχνοστοιχείου/προφίλ.
Εκθέσεις: εβδομαδιαία - τάσεις, κατανάλωση του προϋπολογισμού, βασικοί λόγοι υποβάθμισης.
10) Αντιπατερίδια
Ένα «παγκόσμιο» SLO για το σύνολο του → κρύβει προβλήματα. Τμήμα.
«99. 99% για τα πάντα" εξαιρουμένου του κόστους και της πραγματικότητας. Επιλέξτε στόχους από την εμπειρία του χρήστη.
Συναγερμοί CPU/σωρού αντί για ρυθμό καύσης/SLO.
Αγνοώντας το 4xx/μακρύ ανακατευθύνει που χαλάει το UX.
Αδιαφανές παράθυρο (κύλιση έναντι ημερολογίου) - συγκρίσεις «μήλων με πορτοκάλια».
11) Ιδιαιτερότητες του iGaming/Finance
Χρηματικές διαδρομές (καταθέσεις/αναλήψεις): μεμονωμένες SLO άνω του συνολικού επιπέδου (π.χ. 99. 95% διαθεσιμότητα· p95 ≤ 250 ms).
πάροχοι υπηρεσιών PSP/KYC: SLO για κάθε πάροχο + ειδοποιήσεις για τη συμβολή τους στην καύση· αυτόματη αλλαγή διαδρομής (έξυπνη διαδρομή).
Δικαιοδοσίες/ενοικιαστές: SLO και προϋπολογισμοί ανά «περιφέρεια/δικαιοδοσία/εμπορικό σήμα» έτσι ώστε ένα τοπικό πρόβλημα να μην «πλημμυρίσει» τον παγκόσμιο μετρητή.
Υπεύθυνο παιχνίδι: SLO για την περίοδο εφαρμογής των ορίων/αυτοαποκλεισμού (τύποι συμμόρφωσης).
Έλεγχος/κανονιστική ρύθμιση: τήρηση εκθέσεων SLO και συμβάντων· διαφάνεια για τους εσωτερικούς ελέγχους.
12) Κατάλογος ελέγχου ετοιμότητας Prod
- Ορίζονται SLI (διαθεσιμότητα/καθυστέρηση/ποιότητα/φρεσκάδα) και τμήματα (διαδρομή/ενοικιαστής/περιφέρεια).
- Οι στόχοι (SLO) είναι ρεαλιστικοί, ευθυγραμμισμένοι με τις επιχειρήσεις. υπάρχουν κυλιόμενα παράθυρα 30/90 ημέρες.
- Ειδοποιήσεις με ρυθμό καύσης με πολλαπλά παράθυρα (τηλεειδοποίηση/εισιτήριο).
- SLO ως κωδικός (κανόνας/γεννήτρια ταμπλό)· εκθέσεις προϋπολογισμού.
- Οι πύλες αποδέσμευσης συνδέονται με τον υπόλοιπο προϋπολογισμό. τμήματα καναρινιών.
- Εφαρμόζονται και δοκιμάζονται μηχανισμοί υποβάθμισης (απόχρωση, απόκρυψη, κύκλωμα, όρια).
- Μετρικά ↔ μονοπάτια συσχέτισης, καθαρά runbooks.
- Οδοί χρηματοδότησης/δικαιοδοσίας - χωριστές SLO/καταχωρίσεις. Τα PSP/KYC αναλύονται.
- Τακτικές επενδύσεις αξιοπιστίας βάσει συμβάντων και εγκαυμάτων.
13) TL· DR
Ορισμός των SLI ανά τιμή χρήστη, καθορισμός ρεαλιστικών SLO και διαχείριση μέσω του προϋπολογισμού σφάλματος και ρυθμός καύσης με πολλαπλά παράθυρα. Ενεργοποίηση SLO-as-code, πύλες απελευθέρωσης και υποβάθμιση όπως έχει προγραμματιστεί. τμήμα ανά δρομολόγιο/ενοικιαστή/περιφέρεια· για τις χρηματικές διαδρομές διατηρούν αυστηρότερους στόχους και ξεχωριστές ειδοποιήσεις.