Παρακολούθηση ενοποιήσεων: ειδοποιήστε για τη σιωπή, όχι μόνο για σφάλματα

Ένας τοίχος από πράσινα πλακίδια κατάστασης συγχρονισμού με ένα μοναδικό κεχριμπαρί πλακίδιο προειδοποίησης

Μια εξαίρεση καταγράφεται, μια ειδοποίηση ενεργοποιείται, κάποιος τη διορθώνει. Αυτός ο βρόχος λειτουργεί - για αποτυχίες αρκετά δυνατές ώστε να ανακοινώνουν τον εαυτό τους. Οι αποτυχίες που κοστίζουν πραγματικά χρήματα στους πελάτες μας είναι οι σιωπηλές: ο προμηθευτής άλλαξε αθόρυβα ένα κλειδί SFTP, η νυχτερινή εξαγωγή παρήγαγε ένα έγκυρο αρχείο με μηδέν γραμμές, ο καταναλωτής της ουράς «τρέχει» αλλά δεν επεξεργάζεται τίποτα.

Τίποτα δεν έδωσε σφάλμα. Όλα σταμάτησαν.

Μετρικές ροής αντί για health checks

Ένα health check απαντά στο «είναι η διεργασία ζωντανή;». Το ερώτημα που έχει σημασία είναι «έγινε η δουλειά;». Έτσι, το κύριο σήμα σε κάθε ενοποίηση που λειτουργούμε είναι μια μετρική ροής - εγγραφές ανά διάστημα, συγκρινόμενες με ό,τι φέρει κανονικά αυτό το διάστημα:

  • Παραγγελίες που συγχρονίζονται ανά ώρα, με βασικές τιμές (baselines) καθημερινής/Σαββατοκύριακου - μια ήσυχη Κυριακή είναι φυσιολογική· μια ήσυχη Τρίτη στις 10:00 είναι περιστατικό.
  • Αφίξεις αρχείων ως προθεσμίες, όχι ως συμβάντα: «το αρχείο τιμών του συνεργάτη Χ οφείλεται μέχρι τις 06:30» - η ειδοποίηση ενεργοποιείται όταν δεν φτάσει.
  • Καθυστέρηση από άκρη σε άκρη, μετρημένη από το timestamp της πηγής μέχρι το commit στον προορισμό, όχι από την είσοδο στην ουρά.

Το πρόβλημα των μηδέν γραμμών

Ειδική μνεία για τη πιο συνηθισμένη σιωπηλή αποτυχία που βλέπουμε: μια προγραμματισμένη εργασία που πετυχαίνει με κενό αποτέλεσμα. Κάπου upstream άλλαξε ένα φίλτρο, ένα διαπιστευτήριο έχασε πρόσβαση ανάγνωσης σε έναν πίνακα, ένα σφάλμα σε παράθυρο ημερομηνιών απέκλεισε τα πάντα - και η εργασία βγαίνει με κωδικό 0, πράσινο παντού.

Κάθε εξαγωγή που παραδίδουμε φέρει ένα κατώφλι εύλογης πιθανότητας (plausibility floor): το μικρότερο μέγεθος αποτελέσματος που υπήρξε ποτέ έγκυρο για αυτή την εργασία και το ημερολογιακό πλαίσιο. Κάτω από το κατώφλι, η εκτέλεση κρατείται και ζητείται από έναν άνθρωπο: «αυτό παρήγαγε 0 γραμμές· οι τελευταίες 90 Τρίτες είχαν μέσο όρο 4.200 - να προχωρήσουμε;». Αυτή η μοναδική δικλείδα ασφαλείας έχει εντοπίσει περισσότερα πραγματικά περιστατικά από όλες τις ειδοποιήσεις εξαιρέσεών μας μαζί.

Η σιωπή είναι ένα σήμα. Οργανώστε την παρακολούθησή σας σκόπιμα για αυτήν, γιατί ποτέ δεν θα ανακοινώσει τον εαυτό της.