Παρατηρήστε την υπηρεσία και τους χρήστες της
ΟλοκληρώθηκεΣυνδέστε μετρικές, αρχεία καταγραφής και traces με τους στόχους της υπηρεσίας. Σχεδιάστε ειδοποιήσεις, όρια δεδομένων και ελέγχους για τηλεμετρία που λείπει.
Εκδότης TaigaΠώς γράφουμε
Ελέγξτε τι κατανοήσατεΟ χρόνος απόκρισης της εξαγωγής αυξάνεται. Τα traces του δείγματος δείχνουν αργά spans στη βάση δεδομένων. Τι μπορείτε να συμπεράνετε;Κάντε την άσκηση
Τι θα μάθετε
- Επιλέξτε τηλεμετρία που απαντά σε συγκεκριμένο ερώτημα λειτουργίας.
- Διακρίνετε ένα σύμπτωμα της υπηρεσίας από μια εσωτερική αιτία.
- Προστατεύστε την τηλεμετρία και εντοπίστε αποδεικτικά στοιχεία που λείπουν ή δεν είναι πρόσφατα.
Ξεκινήστε από το ερώτημα
Το monitoring ελέγχει γνωστές συνθήκες. Το observability βοηθά να διερευνήσετε τη συμπεριφορά του συστήματος, ακόμη και αστοχίες που δεν προβλέψατε. Περισσότερα dashboards δεν παρέχουν αυτόματα καλύτερες απαντήσεις.
Για μια υποθετική υπηρεσία εξαγωγής, ξεκινήστε από ένα ερώτημα του χρήστη: μπορεί ένας εξουσιοδοτημένος χρήστης να λάβει τη σωστή εξαγωγή μέσα στον συμφωνημένο χρόνο; Έπειτα επιλέξτε σήματα που υποστηρίζουν αυτό το ερώτημα και βοηθούν να εξηγηθούν οι αστοχίες.
Το OpenTelemetry παρέχει μηχανισμούς συλλογής και πρότυπα τηλεμετρίας. Μπορεί να στέλνει σήματα σε συμβατά backends. Εξακολουθείτε να χρειάζεστε αποθήκευση, ερωτήματα αναζήτησης, ελέγχους πρόσβασης, διατήρηση δεδομένων και ανθρώπους που ενεργούν με βάση τα στοιχεία. Εισαγωγή στο observability.
Συνδέστε διαφορετικές μορφές αποδεικτικών στοιχείων
Μια μετρική μετρά μια ποσότητα με την πάροδο του χρόνου. Μια καταγραφή αποτυπώνει ένα γεγονός. Ένα trace συνδέει σχετικές ενέργειες καθώς ένα αίτημα διασχίζει το σύστημα. Ένα span αντιπροσωπεύει μία ενέργεια μέσα σε ένα trace.
| Ερώτημα λειτουργίας | Παράδειγμα αποδεικτικών στοιχείων | Περιορισμός που πρέπει να θυμάστε |
|---|---|---|
| Πόσες εξαγωγές που πληρούν τις προϋποθέσεις αποτυγχάνουν; | Αριθμός αποτυχιών και αριθμός αιτημάτων που πληρούν τις προϋποθέσεις | Λανθασμένος παρονομαστής δίνει παραπλανητικό ποσοστό |
| Τι συνέβη σε μια εξαγωγή; | Δομημένη καταγραφή με αναγνωριστικό εργασίας, αποτέλεσμα και έκδοση | Γεγονότα που δεν καταγράφηκαν αφήνουν κενά |
| Πού δαπανήθηκε ο χρόνος; | Trace που καλύπτει API, ουρά, worker και βάση δεδομένων | Η δειγματοληψία και η ελλιπής μεταφορά του πλαισίου συσχέτισης μπορούν να αποκρύψουν εργασία |
| Τι άλλαξε πριν από το σύμπτωμα; | Καταγραφές deployment και ρυθμίσεων | Η χρονική ακολουθία από μόνη της δεν τεκμηριώνει αιτία |
Για ασύγχρονες εργασίες, διατηρήστε ασφαλή συσχέτιση ανάμεσα στην εργασία που υποβλήθηκε και στην εκτέλεση του worker. Μια απόκριση HTTP 202 μπορεί να σημαίνει ότι η εργασία έγινε αποδεκτή. Δεν αποδεικνύει ότι η εξαγωγή ολοκληρώθηκε.
Στείλτε ειδοποίηση όταν χρειάζεται ενέργεια
Ορίστε τον SLI και τον παρονομαστή του πριν ορίσετε τον SLO. Στο παράδειγμα, μετρήστε τις εξαγωγές που πληρούν τις προϋποθέσεις και ολοκληρώνονται σωστά μέσα στη συμφωνημένη διάρκεια. Ορίστε πώς συμμετέχουν στη μέτρηση οι εργασίες μεγάλης διάρκειας και οι εγκαταλελειμμένες εργασίες.
Ένα error budget περιγράφει το επιτρεπόμενο επίπεδο αστοχίας μέσα στο χρονικό διάστημα του SLO. Ο ρυθμός κατανάλωσης, ή burn rate, περιγράφει πόσο γρήγορα οι αστοχίες καταναλώνουν αυτό το περιθώριο. Οι οδηγίες της Google χρησιμοποιούν πολλαπλά χρονικά διαστήματα για ισορροπία ανάμεσα στον έγκαιρο εντοπισμό και στις περιττές ειδοποιήσεις. Ειδοποιήσεις βάσει SLO.
Καλέστε τον αρμόδιο όταν η συνθήκη απαιτεί έγκαιρη ενέργεια. Βάλτε τις λιγότερο επείγουσες εργασίες σε ουρά. Κάθε ειδοποίηση χρειάζεται υπεύθυνο, περιγραφή αντικτύπου, σύνδεσμο διερεύνησης και οδηγία απόκρισης. Ανασκοπήστε ειδοποιήσεις που επανειλημμένα δεν οδηγούν σε καμία ενέργεια.
Μη χρησιμοποιείτε ένα γενικό όριο για κάθε υπηρεσία. Ο αντίκτυπος στους χρήστες, η κίνηση, το ωράριο λειτουργίας και η δυνατότητα απόκρισης επηρεάζουν την απόφαση.
Προστατεύστε το pipeline τηλεμετρίας
Η τηλεμετρία μπορεί να περιέχει προσωπικά δεδομένα, tokens, παραμέτρους αιτημάτων και εμπιστευτικά έγγραφα. Ορίστε τα επιτρεπόμενα πεδία πριν από τη συλλογή. Περιορίστε την πρόσβαση και τη διατήρηση. Αφαιρέστε μυστικά πριν από την εξαγωγή σε εξωτερικό backend. Ευαίσθητα δεδομένα τηλεμετρίας.
Μη χρησιμοποιείτε το email πελάτη ή το μοναδικό αναγνωριστικό εργασίας ως ετικέτα μετρικής. Οι ετικέτες χωρίς περιορισμένο σύνολο τιμών αυξάνουν τον αριθμό των χρονοσειρών και μπορούν να εκθέσουν αναγνωριστικά. Χρησιμοποιήστε ελεγχόμενες διαστάσεις για τις μετρικές. Τοποθετήστε εγκεκριμένα αναγνωριστικά συσχέτισης σε αρχεία καταγραφής ή traces με ελεγχόμενη πρόσβαση.
Μετρήστε και το ίδιο το pipeline. Ελέγξτε αποτυχίες εισαγωγής, δεδομένα που απορρίφθηκαν και την ηλικία της τελευταίας παρατήρησης. Ένα επίπεδο γράφημα σφαλμάτων μπορεί να σημαίνει ότι δεν υπάρχουν σφάλματα ή ότι δεν φτάνει τηλεμετρία. Δείξτε αυτή τη διαφορά.
Διερευνήστε μια συγκεκριμένη αστοχία
Η υποθετική υπηρεσία επιστρέφει HTTP 202 για κάθε αίτημα. Η ηλικία των εργασιών στην ουρά αυξάνεται από δευτερόλεπτα σε 15 λεπτά. Τα αρχεία καταγραφής των workers δείχνουν επαναλαμβανόμενες λήξεις χρονικού ορίου στη βάση δεδομένων. Τα traces του δείγματος δείχνουν ότι οι κλήσεις στη βάση δεδομένων καταλαμβάνουν το μεγαλύτερο μέρος του χρόνου των workers.
Αυτά τα στοιχεία υποστηρίζουν μια στοχευμένη διερεύνηση. Δεν τεκμηριώνουν αν η αιτία είναι αλλαγή ερωτήματος, εξάντληση διαθέσιμων συνδέσεων ή η δυναμικότητα επεξεργασίας της βάσης δεδομένων. Συγκρίνετε αυτές τις υποθέσεις με τη μέθοδο debugging.
Το Monitoring του Taiga παρέχει εικόνα της κατάστασης του προϊόντος με σήματα διαθεσιμότητας και εμπειρίας στον browser. Συμπληρώνει το observability της υποδομής και της εφαρμογής· δεν αντικαθιστά αυτά τα συστήματα. Monitoring.
Κάντε την άσκηση
Για την υποθετική εξαγωγή αυτού του μαθήματος, ορίστε έναν SLI, μία ειδοποίηση που απαιτεί ενέργεια, τρία επιτρεπόμενα και δύο απαγορευμένα πεδία τηλεμετρίας. Δηλώστε πώς θα εντοπίζατε ένα pipeline τηλεμετρίας που δεν λειτουργεί σωστά.
Λήψη φύλλου εργασίας (Markdown)Η κατάργηση αυτής της επιλογής διαγράφει όλη την πρόοδο που έχει αποθηκευτεί σε αυτόν τον browser.
Η πρόοδος παραμένει σε αυτό το πρόγραμμα περιήγησης. Χωρίς λογαριασμό ή παρακολούθηση.
Πηγές και πρόσθετη μελέτη
- OpenTelemetry: Observability primer ↗
- OpenTelemetry: Handling sensitive data ↗
- Google SRE: Alerting on SLOs ↗
- Taiga docs: Monitoring ↗