SLO/SLA και μετρήσεις
SLO/SLA και μετρήσεις
1) Όροι και ιεραρχία
SLI (δείκτης επιπέδου υπηρεσίας) - ένας μετρήσιμος δείκτης «όπως μας βλέπει ο χρήστης»: το μερίδιο των επιτυχών αιτήσεων, η καθυστέρηση p95, η φρεσκάδα των δεδομένων, το μερίδιο των επιτυχώς επεξεργασμένων παρτίδων κ.λπ.
SLO (στόχος επιπέδου υπηρεσίας) - τιμή στόχος SLI στο διάστημα παρατήρησης (28/30/90 ημέρες). Παράδειγμα: "99. 9% των αιτήσεων/τέλος πληρωμής 400 m "
Σφάλμα - 1 − SLO. Στο SLO 99. 9% προϋπολογισμός σφάλματος = 0. 1% του χρόνου/των αιτήσεων.
SLA (συμφωνία) - νομικά σημαντικό επίπεδο εξυπηρέτησης: περιλαμβάνει SLO, μέτρηση, εξαιρέσεις, αποζημιώσεις/πρόστιμα.
2) Αρχές σχεδιασμού
Συμπτώματα> εσωτερικές μετρήσεις. Οι SLI θα πρέπει να αντικατοπτρίζουν την πραγματική εμπειρία του χρήστη.
Μικρός αριθμός βασικών SLI. Για υπηρεσία - 2-5 κύρια: επιτυχία, καθυστέρηση, απόδοση/φρεσκάδα, ορθότητα.
Κάλυψη κρίσιμων διαδρομών. Κάθε επιχειρηματικό σενάριο (checkout, login, webhook, ETL download) έχει το δικό του σύνολο SLI/SLO.
Αυστηρή σημασιολογία «επιτυχίας». Όχι «κωδικός 200», αλλά «ο χρήστης έλαβε απάντηση εγκαίρως και το αποτέλεσμα είναι έγκυρο».
Διαχωρισμός εξωτερικών και εσωτερικών SLO. Εσωτερικά - αυστηρότερα. εξωτερική SLA ≤ 1-2 εννέα κάτω.
3) Κατάλογος SLI (αναφορά)
3. 1 API/επιγραμμικές υπηρεσίες
Επιτυχία: 'SLI _ επιτυχία = 1 − (5xx + timeout + business_error )/ all_requests'
Καθυστέρηση: p95/p99 'http _ server _ διάρκεια _ δευτερόλεπτα' ανά διαδρομή/μέθοδο/ενοικιαστή
Εύρος ζώνης: 'RPS '/όρια/ποσοστώσεις
Ορθότητα: αναλογία έγκυρων απαντήσεων (υπογραφές, σχήματα, αναλλοίωτες)
3. 2 Webhooks/Ασύγχρονες παραδόσεις
Παράδοση: ποσοστό των συμβάντων που επιβεβαιώθηκαν σε T δευτερόλεπτα και ≤ N retrays
Πελάτες: ποσοστό συνδρομητών χωρίς μεγάλη καθυστέρηση (ανά ενοικιαστή)
3. 3 Δεδομένα/ETL/DWH
φρεσκάδα: "τώρα − last_successful_ingest_ts'
Πληρότητα: 'ingested _ raws/ expected_rows'
Ορθότητα: το ποσοστό των αρχείων που υποβλήθηκαν επιτυχώς σε ποιοτικούς ελέγχους
Αγωγοί: μερίδιο θέσεων εργασίας που έχουν ολοκληρωθεί πριν από τη λήξη της προθεσμίας
3. 4 Κινητά/Πελάτη SDK
Επιτυχία πελάτη: ποσοστό συνεδριών χωρίς μοιραία σφάλματα
Καθυστέρηση διαδρομής: p95 από την αίτηση έως την απόδοση
Cache hits: ποσοστό που εξυπηρετείται από την κρύπτη (ως σύμπτωμα της απόδοσης)
4) Τύποι και παραδείγματα στόχων
Διαθεσιμότητα (κατόπιν αιτήματος):- 'SLI _ req _ avail = 1 − (failed_requests/ total_requests)'
- 'SLO _ req _ avail = 99. 95% "για 30 ημέρες → προϋπολογισμός σφάλματος = 0. 05% των αιτήσεων.
- 'uptime = (obs_window − downtime )/ obs_window'
- 'SLO _ καθυστέρηση = p95 (διαδρομή = «/πληρωμή ») 400 m σε φέτες 7 ημερών, εκτός από προθέρμανση της κρύπτης (1%)
- 'SLO _ φρεσκάδα (σύνολο δεδομένων = «παραγγελίες») ≤ 10 λεπτά' p99 σε 24 ώρες.
5) Σφάλμα στη διαχείριση του προϋπολογισμού και των αλλαγών
Προϋπολογισμός (B): «B = 1 − SLO».
Καύση - Ο λόγος των πραγματικών σφαλμάτων προς τα επιτρεπόμενα σφάλματα.
- Υπερβολική δαπάνη (καύση> 1) → πάγωμα χαρακτηριστικών, εστίαση στην αξιοπιστία.
- Με ρυθμό καύσης> X σε κοντό παράθυρο - περιστατικό και καπάκι. μέτρα.
- Σχεδιασμός: Το μερίδιο αξιοπιστίας του σπριντ συσχετίζεται με την καύση κατά την προηγούμενη περίοδο.
6) Ειδοποίηση: κανόνες για το ποσοστό καύσης και για τα πολλαπλά παράθυρα
Η ιδέα: πιάνουμε γρήγορες διαρροές και αργή μετατόπιση.
Παράδειγμα (SLO 99. 9%, προϋπολογισμός 0. 1%):- Κρίσιμη: «2% προϋπολογισμός σε 1 ώρα» (γρήγορη πυρκαγιά).
- Προειδοποίηση: «5% του προϋπολογισμού σε 6 ώρες» (ανατριχιαστική υποβάθμιση).
- Σύντομο παράθυρο (ελάχιστη ώρα) για γρήγορα περιστατικά.
- Μακρύ παράθυρο (6-24 ώρες) για τις τάσεις.
- Καθυστέρηση: ειδοποίηση με p99> κατώφλι ≥5 min, με καταστολή του πτερυγισμού και επικοινωνία με ιχνοστοιχεία.
error_ratio_5m = errors[5m] / requests[5m]
error_ratio_1h = errors[1h] / requests[1h]
burn_5m = error_ratio_5m / error_budget_fraction burn_1h = error_ratio_1h / error_budget_fraction alert_critical if burn_1h > 14 and burn_5m > 14 alert_warning if burn_6h > 6 and burn_30m > 6
7) Πολυκατοικία και κατάτμηση
Η SLI/SLO υπολογίζεται σύμφωνα με τους ενοικιαστές/σχέδια/περιφέρειες, διαφορετικά η διάμεση τιμή θα «καλύψει» τις αστοχίες.
Ελάχιστος αριθμός συμβάντων για στατιστική σημασία (φρουρά-σιδηροτροχιές).
Η SLA μπορεί να διαφέρει ως προς τα τιμολόγια (για παράδειγμα, "Pro 99. 9%, δωρεάν 99. 5%»).
8) Σύνδεση με την παρατηρησιμότητα και τα ίχνη
Μετρήσεις SLI - από ιστογράμματα/μετρητές με υποδείγματα → μετάβαση σε «κακά» μονοπάτια.
Τα αρχεία καταγραφής είναι η πηγή των λόγων: timeouts, κωδικοί επιχειρηματικών σφαλμάτων, όρια.
Για τα δεδομένα - ένας σύνδεσμος με τη γενεαλογία: «ποια εργασία καθυστέρησε τη φρεσκάδα».
9) Συμβάσεις και SLA
Περιεκτικότητα σε SLA:- SLI/μέθοδος μέτρησης/ορισμοί παραθύρων.
- Εξαιρέσεις (προβλεπόμενη εργασία, ανωτέρα βία).
- Διαδικασία συμβάντος και επικοινωνίας (status page, RFO/RCA).
- Πιστωτικά μόρια υπηρεσίας και εντολή αίτησης.
- Διεθνής δικαιοδοσία, περίοδος ισχύος, όροι αναθεώρησης.
- Ποτέ δεν υποσχέθηκαν δημοσίως στους SLO αυστηρότερες από ό, τι επιτρέπουν η αρχιτεκτονική και οι επιχειρησιακές πρακτικές.
- Χωριστές εσωτερικές SLO και εξωτερικές SLA.
10) Κόστος και ιεράρχηση προτεραιοτήτων
Η τιμή των εννιάρια δεν αυξάνεται γραμμικά. «99. 9% → 99. 99%" = διαφορετική κατηγορία αρχιτεκτονικής (N + 1, πολλαπλών ζωνών, περιουσιακών στοιχείων).
Τοποθέτηση των SLO στις πιο πολύτιμες ενέργειες των χρηστών.
Έλεγχος του κόστους της τηλεμετρίας - μείωση της δειγματοληψίας, ποσοστώσεις, αντίγραφα και αποθήκευση ανά κατηγορία.
11) Διαδικασίες και υποβολή εκθέσεων
Εβδομαδιαίες εκθέσεις: εκτέλεση SLO ανά υπάλληλο/ενοικιαστή, δαπάνες προϋπολογισμού, βασικοί λόγοι, σχέδια βελτίωσης.
RCA μετά το συμβάν: συσχετίζουμε με τμήματα του προϋπολογισμού. θέτουμε καθήκοντα για την εξάλειψη των βαθύτερων αιτίων.
Fichfriz: κριτήρια καταχώρισης/απόσυρσης.
12) Υποδείγματα (για γρήγορη εκκίνηση)
12. 1 κάρτα SLO (παράδειγμα)
Service: Checkout API
SLI:
success: 1 - (5xx+timeouts+biz_failures)/all latency_p95: p95(http_server_duration_seconds{route="/pay"})
SLO:
success: 99. 95% / 30d latency_p95: ≤ 400ms / 7d
Windows:
primary: 30d rolling secondary: 7d rolling
Burn Alerts:
critical: use 1h/5m > 14 warning: use 6h/30m > 6
Owner: Team Checkout
Tenancy: per-tenant (≥ 1k req/day threshold)
Dashboards: RED + trace exemplars
12. Πίνακας διάρκειας 2 SLO
13) Παραδείγματα κανόνων (θραύσματα)
PromQL - επιτυχία/σφάλματα/καθυστέρηση:promql
Error rate (5xx + timeout) for the sum (rate (http_requests_total{route="/pay",code=~"5. route. 599"}[5m]))
/ sum(rate(http_requests_total{route="/pay"}[5m]))
p99 histogram_quantile latency (0. 99, sum(rate(http_server_duration_seconds_bucket{route="/pay"}[5m])) by (le))
Ποσοστό έγκαυσης συναγερμού (ιδέα κανόνων):
promql error_budget_fraction = 0. 001 for 99. 9%
(err_rate_5m / 0. 001 > 14) and (err_rate_1h / 0. 001 > 14) # critical
(err_rate_30m / 0. 001 > 6) and (err_rate_6h / 0. 001 > 6) # warning
Φρεσκάδα δεδομένων:
promql
Data order lag (minutes)
(max(time()) - max(last_ingest_ts_seconds{dataset="orders"})) / 60
14) SLO για δεδομένα και ML (χαρακτηριστικά)
End-to-end data SLOs: φρεσκάδα p99, πληρότητα p99, χρόνος «επανεπεξεργασίας» μετά τη σύγκρουση.
Συμβάσεις δεδομένων: αναμενόμενα συστήματα, όγκοι, προθεσμίες· παραβίαση δεδομένων → συμβάν.
ML: SLO για λανθάνουσα εξαγωγή, SLA για διαθεσιμότητα stor, παρασυρόμενη παρακολούθηση (η ποιότητα του μοντέλου είναι ξεχωριστό θέμα, εκτός SLA).
15) Ενσωμάτωση στην ασφάλεια και στην ιδιωτική ζωή
Αρχεία καταγραφής SLI χωρίς PII/μυστικά. μαρκινοποίηση/συγκάλυψη.
Αλλαγές ελέγχου σε SLO/SLA και δημοσιεύσεις εκθέσεων σε αμετάβλητα αρχεία καταγραφής.
Για ρυθμιστικές οδούς (πληρωμές/PII) - χωριστές, αυστηρότερες SLO.
16) Κατάλογοι ελέγχου
Πριν από την έναρξη της υπηρεσίας/των χαρακτηριστικών
- Καθορισμός των SLI επιτυχίας/καθυστέρησης/διεκπεραίωσης/φρεσκάδας.
- SLO και τα παράθυρα που ορίζονται· υπολογίζεται προϋπολογισμός σφάλματος.
- Ορισμός ειδοποιήσεων για την ταχύτητα καύσης (σύντομη + μεγάλη).
- Dashboards RED + υποδείγματα → διαδρομές· runibooks περιστατικών.
- Τμήματα πολλαπλών μισθώσεων και όρια σημαντικότητας.
- Fichfreeze και διαδικασία υποβολής εκθέσεων.
Πράξη
- Εβδομαδιαία έκθεση SLO/καύση, σχέδια σκλήρυνσης.
- Επανεκτίμηση SLO όταν αλλάζει αρχιτεκτονική/φορτίο.
- Περιοδικά «συμβάντα ασκήσεων» και επικαιροποιήσεις του runibook.
- Παρακολούθηση του κόστους τηλεμετρίας και καταμέτρηση SLI.
17) Runbook'и
Runbook: Ταχεία ανάπτυξη p99/αμοιβή
1. Το κατώφλι συναγερμού p99> → ανοίξει ένα ταμπλό → πάει μέσω υποδειγμάτων για να εντοπιστεί.
2. Βρείτε ένα στενό εύρος CLIENT/SERVER, συγκρίνετε περιοχές/εκδόσεις.
3. Ενεργοποίηση υποβάθμισης (μνήμη/όριο/οπισθοπορεία), ειδοποίηση εντολής εξάρτησης.
4. Μετά τη σταθεροποίηση - RCA, εργασίες βελτιστοποίησης, επικαιροποίηση των μετρήσεων SLO.
Εγχειρίδιο: δαπάνες προϋπολογισμού> 50% για την εβδομάδα
1. Χαρακτηριστικά παγώματος, αύξηση της προτεραιότητας αξιοπιστίας.
2. Ομαδοποίηση σφαλμάτων: κατά δρομολόγια/ενοικιαστές/εξαρτήσεις.
3. Εφαρμογή διορθώσεων → επιβεβαίωση της ανάκαμψης των τάσεων.
4. Αναδρομική προσαρμογή και προσαρμογή συναγερμού/ορίου.
18) ΣΥΧΝΈΣ ΕΡΩΤΉΣΕΙΣ
Ε: Πόσες SLO χρειάζεστε
A: Ελάχιστο σε κρίσιμα σενάρια χρηστών: επιτυχία + καθυστέρηση. Όλα τα άλλα είναι από ανάγκη.
Ε: Ποιο είναι καλύτερο - διαθεσιμότητα ανά ώρα ή ανά αίτηση
A: Κατά παραγγελία - περισσότερη μέτρηση του χρήστη. Ο χρόνος είναι βολικός για τις συνιστώσες δικτύου/υπέρυθρες.
Ε: Γιατί p95, όχι μέσος όρος
Α: Το μεσαίο κρύβει την ουρά. ο χρήστης αισθάνεται p95/p99.
Ε: Πώς να μην «σφίξουμε τις βίδες» πάρα πολύ
Α: Ξεκινήστε με ρεαλιστικούς στόχους (ιστορικά δεδομένα) και μετά σφίξτε όσο ωριμάζετε.
Συναφή υλικά:- «Παρατηρησιμότητα: κούτσουρα, μετρήσεις, ίχνη»
- «Κατανεμημένα ίχνη»
- «Λογιστικός έλεγχος και αμετάβλητα αρχεία καταγραφής»
- «Εγγυήσεις παράδοσης Webhook»
- «Σε διαμετακόμιση/σε ανάπαυση κρυπτογράφηση»
- «Προέλευση δεδομένων (γενεαλογία)»