Εισαγωγή στον Προμηθέα και τη Γραφάνα

Το Prometheus είναι ένα σύστημα παρακολούθησης ανοιχτού κώδικα, βασισμένο σε μετρήσεις. Συλλέγει δεδομένα από υπηρεσίες και κεντρικούς υπολογιστές στέλνοντας αιτήματα HTTP σε τελικά σημεία μετρήσεων. Στη συνέχεια, αποθηκεύει τα αποτελέσματα σε μια βάση δεδομένων χρονοσειρών και την καθιστά διαθέσιμη για ανάλυση και ειδοποίηση.

Γιατί παρακολούθηση;

  • Ενεργοποιεί ειδοποιήσεις όταν τα πράγματα πάνε στραβά, κατά προτίμηση πριν πάνε στραβά. Για να μπορεί κάποιος να το δει.
  • Παρέχει πληροφορίες για να επιτρέψει την ανάλυση, τον εντοπισμό σφαλμάτων και την επίλυση του ζητήματος.
  • Σας δίνει τη δυνατότητα να βλέπετε τάσεις/αλλαγές με την πάροδο του χρόνου. Για παράδειγμα, πόσες ενεργές συνεδρίες ανά πάσα στιγμή. Αυτό βοηθά στις αποφάσεις σχεδιασμού και στον προγραμματισμό χωρητικότητας.

Η παρακολούθηση συνήθως σχετίζεται με γεγονότα. Ένα συμβάν μπορεί να περιλαμβάνει λήψη αιτήματος HTTP, αποστολή απάντησης, ανάγνωση από δίσκο, σύνδεση χρήστη. Η παρακολούθηση ενός συστήματος θα μπορούσε να περιλαμβάνει προφίλ, καταγραφή, ιχνηλάτηση, μετρήσεις, ειδοποίηση και οπτικοποίηση.

Παρακολούθηση Blackbox εναντίον Whitebox

Η παρακολούθηση εμπίπτει σε δύο κύριες κατηγορίες:

Παρακολούθηση Blackbox

Στην παρακολούθηση Blackbox, η παρακολούθηση είναι σε επίπεδο εφαρμογής ή κεντρικού υπολογιστή καθώς παρατηρούνται από έξω. Αυτό μπορεί να είναι αρκετά περιοριστικό.

Παρακολούθηση Whitebox

Η παρακολούθηση Whitebox σημαίνει παρακολούθηση των εσωτερικών στοιχείων μιας υπηρεσίας. Θα εξέθετε δεδομένα σχετικά με την κατάσταση και την απόδοση των εσωτερικών στοιχείων.

Τα τέσσερα χρυσά σήματα

Σύμφωνα με την Googleεάν μπορείτε να μετρήσετε μόνο τέσσερις μετρήσεις του συστήματος που αντιμετωπίζει ο χρήστης, εστιάστε στις ακόλουθες τέσσερις, που ονομάζονται Τέσσερα χρυσά σήματα:

#1. Αφάνεια

Ο χρόνος που χρειάζεται για την εξυπηρέτηση ενός αιτήματος – επιτυχής ή αποτυχημένος. Είναι σημαντικό να παρακολουθείτε όχι μόνο επιτυχημένα αιτήματα αλλά και αποτυχημένα.

  18 αγορές για να κυνηγήσετε το πρώτο σας μη ανταλλάξιμο διακριτικό

#2. ΚΙΝΗΣΗ στους ΔΡΟΜΟΥΣ

Ένα μέτρο για το πόση ζήτηση υπάρχει στο σύστημά σας. Για μια υπηρεσία web, αυτό είναι συνήθως αιτήματα HTTP ανά δευτερόλεπτο.

#3. Σφάλματα

Το ποσοστό των αιτημάτων που αποτυγχάνουν.

#4. Κορεσμός

Πόσο γεμάτη είναι η υπηρεσία σας. Η αύξηση της καθυστέρησης είναι συχνά ένας σημαντικός δείκτης κορεσμού. Πολλά συστήματα υποβαθμίζουν την απόδοση πολύ πριν επιτύχουν 100% αξιοποίηση.

Τύποι μετρικών Προμηθέας

Οι μετρήσεις του Προμηθέα είναι τεσσάρων κύριων τύπων:

#1. Μετρητής

Η αξία ενός μετρητή θα αυξάνεται πάντα. Δεν μπορεί ποτέ να μειωθεί, αλλά μπορεί να μηδενιστεί. Έτσι, εάν αποτύχει ένα scrape, σημαίνει μόνο ένα χαμένο σημείο δεδομένων. Η σωρευτική αύξηση θα είναι διαθέσιμη στην επόμενη ανάγνωση. Παραδείγματα:

  • Συνολικός αριθμός αιτημάτων HTTP που ελήφθησαν
  • Ο αριθμός των εξαιρέσεων.

#2. Μετρητής

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

#3. Ιστόγραμμα

Ένα ιστόγραμμα λαμβάνει δείγματα παρατηρήσεων και τις μετράει σε διαμορφώσιμους κάδους. Χρησιμοποιούνται για πράγματα όπως η διάρκεια αιτήματος ή τα μεγέθη απόκρισης. Για παράδειγμα, θα μπορούσατε να μετρήσετε τη διάρκεια αιτήματος για ένα συγκεκριμένο αίτημα HTTP. Το ιστόγραμμα θα έχει ένα σύνολο κουβάδων, ας πούμε 1ms, 10 ms και 25ms. Αντί να αποθηκεύει κάθε διάρκεια για κάθε αίτημα, ο Prometheus θα αποθηκεύει τη συχνότητα των αιτημάτων που εμπίπτουν σε έναν συγκεκριμένο κάδο.

#4. Περίληψη

Παρόμοια με τις παρατηρήσεις δειγμάτων ιστογράμματος, συνήθως απαιτούνται διάρκειες ή μεγέθη απόκρισης. Θα παρέχει έναν συνολικό αριθμό παρατηρήσεων και ένα άθροισμα όλων των παρατηρούμενων τιμών, επιτρέποντάς σας να υπολογίσετε τον μέσο όρο των παρατηρούμενων τιμών. Για παράδειγμα, σε ένα λεπτό, είχατε τρία αιτήματα που χρειάστηκαν 2,3,4 δευτερόλεπτα. Το άθροισμα θα ήταν 9 και η μέτρηση θα ήταν 3. Η καθυστέρηση θα ήταν 3 δευτερόλεπτα.

  Τα 16 καλύτερα ακουστικά Nintendo Switch για καλύτερη εμπειρία παιχνιδιού

Συστατικά του οικοσυστήματος του Προμηθέα

Ο διακομιστής Prometheus

Συλλέγει μετρήσεις, τις αποθηκεύει και τις καθιστά διαθέσιμες για ερωτήματα, στέλνει ειδοποιήσεις με βάση τις μετρήσεις που συλλέγονται.

Ξύσιμο

Προμηθέας είναι ένα σύστημα που βασίζεται σε έλξη. Για να ανακτήσει μετρήσεις, ο Prometheus στέλνει ένα αίτημα HTTP που ονομάζεται scrape. Στέλνει scrapes σε στόχους με βάση τη διαμόρφωσή του.

Κάθε στόχος (στατικά καθορισμένος ή δυναμικά ανακαλυπτόμενος) ξύνεται σε κανονικό διάστημα (διάστημα απόξεσης). Κάθε scrape διαβάζει το τελικό σημείο HTTP /metrics για να λάβει την τρέχουσα κατάσταση των μετρήσεων του πελάτη και διατηρεί τις τιμές στη βάση δεδομένων χρονοσειρών Prometheus.

Υπάρχουν περισσότερες βάσεις δεδομένων χρονοσειρών για λύσεις παρακολούθησης που μπορεί να θέλετε να εξερευνήσετε.

Βιβλιοθήκες πελατών

Για να παρακολουθήσετε μια υπηρεσία, πρέπει να προσθέσετε όργανα στον κώδικά σας. Υπάρχουν διαθέσιμες βιβλιοθήκες πελατών για όλες τις δημοφιλείς γλώσσες και χρόνους εκτέλεσης. Χρησιμοποιώντας αυτές τις βιβλιοθήκες, μόλις προσθέσετε μερικές γραμμές κώδικα, ο κώδικάς σας μπορεί να αρχίσει να εκπέμπει μετρήσεις. Αυτό ονομάζεται άμεσος εξοπλισμός. Αυτές οι βιβλιοθήκες σάς δίνουν τη δυνατότητα να ορίσετε εσωτερικές μετρήσεις και επίσης να τις εκθέσετε μέσω ενός τελικού σημείου HTTP. Όταν ο Prometheus εγγράφει το τελικό σημείο HTTP μετρήσεων, η βιβλιοθήκη πελάτη στέλνει τις μετρήσεις στον διακομιστή.

Οι επίσημες βιβλιοθήκες πελατών προσφέρονται από τον Prometheus για Go, Java, Python και Ruby. Ο Προμηθέας έχει ανοιχτό οικοσύστημα. Υπάρχουν επίσης κοινοτικές βιβλιοθήκες πελατών διαθέσιμες για C, PHP, Node.js, C#/.NET και πολλούς άλλους.

εξαγωγείς

Πολλές εφαρμογές εκθέτουν μετρήσεις σε μορφή μη Prometheus. Για αυτές και για εφαρμογές που δεν σας ανήκουν ή για τις οποίες δεν έχετε πρόσβαση σε κώδικα, δεν μπορείτε να προσθέσετε απευθείας όργανα. Για παράδειγμα, διακομιστής MySQL, Kafka, JMX, HAProxy και NGINX. Σε αυτά τα σενάρια, κάνετε χρήση του εξαγωγείς.

Ο εξαγωγέας είναι ένα εργαλείο που αναπτύσσετε μαζί με την εφαρμογή από την οποία θέλετε μετρήσεις. Ένας εξαγωγέας ενεργεί ως πληρεξούσιος μεταξύ της εφαρμογής και του Prometheus. Θα λαμβάνει αιτήματα από τον διακομιστή Prometheus, θα συλλέγει δεδομένα από τα αρχεία καταγραφής πρόσβασης, τα αρχεία καταγραφής σφαλμάτων της εφαρμογής, θα τα μετατρέπει στη σωστή μορφή και τέλος θα επιστρέψει στον διακομιστή Prometheus.

  Πρέπει να αγοράσετε το MacBook Pro 13 ιντσών (2020);

Μερικοί από τους δημοφιλείς εξαγωγείς είναι:

  • Windows – για μετρήσεις διακομιστή Windows
  • Κόμβος – για μετρήσεις διακομιστή Linux
  • Μαύρο κουτί – για μετρήσεις απόδοσης DNS και ιστότοπου
  • JMX – για μετρήσεις εφαρμογών που βασίζονται σε Java

Μόλις οι εφαρμογές έχουν οργανωθεί ή οι εξαγωγείς είναι σε θέση, πρέπει να πείτε στον Prometheus πού βρίσκονται. Αυτό μπορεί να γίνει χρησιμοποιώντας στατική διαμόρφωση. Στην περίπτωση δυναμικών περιβαλλόντων, αυτό δεν μπορεί να γίνει. Επομένως χρησιμοποιείται η ανακάλυψη υπηρεσίας.

Συναγερμός

Το Alerting with Prometheus αποτελείται από δύο μέρη:

Οι κανόνες ειδοποίησης στέλνουν ειδοποιήσεις στο Alertmanager.

Στη συνέχεια, ο Alertmanager διαχειρίζεται αυτές τις ειδοποιήσεις. Στέλνει ειδοποιήσεις χρησιμοποιώντας πολλές ενσωματώσεις out-of-the-box όπως email, Slack, Hipchat και PagerDuty. Το Alertmanager μπορεί επίσης να πραγματοποιήσει σίγαση ή συγκέντρωση για να μειώσει τον αριθμό των ειδοποιήσεων.

Εδώ είναι ο οδηγός για την παρακολούθηση του διακομιστή Linux χρησιμοποιώντας Prometheus και Dashboard.

Οπτικοποίηση με ταμπλό

Ο Prometheus διαθέτει έναν αριθμό API που χρησιμοποιούν τα ερωτήματα PromQL που μπορούν να παράγουν ακατέργαστα δεδομένα για οπτικοποιήσεις.

Αν και ο Prometheus περιλαμβάνει ένα πρόγραμμα περιήγησης εκφράσεων που μπορεί να χρησιμοποιηθεί για ad-hoc ερωτήματα, το καλύτερο διαθέσιμο εργαλείο είναι Γραφάνα. Το Grafana ενσωματώνεται πλήρως με τον Prometheus και μπορεί να παράγει μια μεγάλη ποικιλία από ταμπλό.

Θα χρειαστεί να διαμορφώσετε τον Prometheus ως την πηγή δεδομένων για το Grafana.

Μπορείτε να προσθέσετε πίνακες ελέγχου από:

  • Εισαγωγή πινάκων εργαλείων κατασκευασμένων από την κοινότητα
  • Χτίζοντας το δικό σας
  • Χρησιμοποιώντας έναν προκαθορισμένο πίνακα εργαλείων.

Έτσι φαίνεται ένας προκαθορισμένος πίνακας εργαλείων εξαγωγής κόμβων:

Το Grafana διαθέτει μια μονάδα worldPing που σας επιτρέπει να παρακολουθείτε μετρήσεις απόδοσης ιστότοπου και DNS παγκοσμίως.

Περίληψη

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

Το Grafana είναι το καλύτερο διαθέσιμο εργαλείο για την οπτικοποίηση μετρήσεων και ενσωματώνεται άψογα Προμηθέας.