Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Γεια σε όλους. Παρακάτω είναι η αποκρυπτογράφηση αναφορά από το Big Monitoring Meetup 4.

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

Η έκθεση θα συγκρίνει Θάνος и VictoriaMetrics — έργα μακροπρόθεσμης αποθήκευσης μετρήσεων Prometheus.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Περιορισμοί Προμηθέας:

  • Δεν έχει καθολική προβολή ερωτήματος. Αυτό συμβαίνει όταν έχετε πολλαπλές ανεξάρτητες περιπτώσεις prometheus. Συλλέγουν μετρήσεις. Και θέλετε να ρωτήσετε πάνω από όλες αυτές τις μετρήσεις που συλλέγονται από διαφορετικές παρουσίες του prometheus. Ο Προμηθέας δεν το επιτρέπει αυτό.
  • Με τον prometheus, η απόδοση περιορίζεται μόνο σε έναν διακομιστή. Ο Prometheus δεν μπορεί να κλιμακωθεί αυτόματα σε πολλούς διακομιστές. Μπορείτε να χωρίσετε μόνο χειροκίνητα τους στόχους σας μεταξύ πολλών Prometheus.
  • Το εύρος των μετρήσεων στον Prometheus περιορίζεται μόνο σε έναν διακομιστή για τον ίδιο λόγο που δεν μπορεί να κλιμακωθεί αυτόματα σε πολλούς διακομιστές αυτόματα.
  • Στον Προμηθέα δεν είναι τόσο εύκολο να οργανώσεις την ασφάλεια των δεδομένων.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Λύσεις σε αυτά τα προβλήματα/καθήκοντα;

Οι λύσεις είναι:

Όλες αυτές οι λύσεις προορίζονται για απομακρυσμένη αποθήκευση δεδομένων που συλλέγει ο Prometheus. Επιλύουν το πρόβλημα απομακρυσμένης αποθήκευσης από την προηγούμενη διαφάνεια με διαφορετικούς τρόπους. Σε αυτήν την παρουσίαση, θα μιλήσω μόνο για τις δύο πρώτες λύσεις: Θάνος и VictoriaMetrics.

Για πρώτη φορά πληροφορίες για Θάνος εμφανίστηκε στις αυτό το σύνδεσμο. Περιγράφεται η αρχιτεκτονική Θάνος και πώς λειτουργεί.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Έτσι ο Thanos παρέχει μια συνολική προβολή ερωτήματος. Μπορείτε να ρωτήσετε δεδομένα που είναι αποθηκευμένα στην αποθήκευση αντικειμένων από πολλές περιπτώσεις Prometheus.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ο Thanos υποστηρίζει PromQL και Prometheus querying API.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ο Thanos χρησιμοποιεί τον κώδικα Prometheus για την αποθήκευση δεδομένων.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το Thanos αναπτύσσεται από τους ίδιους προγραμματιστές με τον Prometheus.

επί VictoriaMetrics. Εδώ σύνδεσμοςόπου μιλήσαμε για πρώτη φορά VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Η VictoriaMetrics λαμβάνει δεδομένα από αρκετούς prometheus API απομακρυσμένης εγγραφής πρωτόκολλο που υποστηρίζεται από τον Prometheus.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το VictoriaMetrics υποστηρίζει επίσης, όπως το Thanos, το PromQL και το Prometheus querying API.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Η VictoriaMetrics, σε αντίθεση με τον Thanos, κλιμακώνεται τόσο κάθετα όσο και οριζόντια. Τρώω Έκδοση ενός κόμβου, το οποίο κλιμακώνεται κατακόρυφα. Μπορείτε να ξεκινήσετε με έναν επεξεργαστή και 1 GB μνήμης και να αυξήσετε σε εκατοντάδες επεξεργαστές και 1 TB μνήμης. Η VictoriaMetrics ξέρει πώς να χρησιμοποιεί όλους αυτούς τους πόρους. Η απόδοσή του θα αυξηθεί κατά περίπου 100 φορές σε σύγκριση με ένα σύστημα 1 πυρήνα.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Η ιστορία του Thanos ξεκίνησε τον Νοέμβριο του 2017, όταν εμφανίστηκε το πρώτο δημόσιο commit. Πριν από αυτό, η Thanos αναπτύχθηκε εσωτερικά απίθανο.io.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τον Ιούνιο του 2019, υπήρξε μια ορόσημο κυκλοφορία 0.5.0, στην οποία αφαιρέθηκε κουτσομπολιά πρωτόκολλο. Απομάκρυνε από τον Θάνο γιατί δεν είχε καλή απόδοση. Συχνά το σύμπλεγμα Thanos δεν λειτουργούσε σωστά, οι κόμβοι συνδέονται λανθασμένα με αυτό λόγω του πρωτοκόλλου κουτσομπολιού. Έτσι αποφασίσαμε να το αφαιρέσουμε από εκεί. Πιστεύω ότι αυτή είναι η σωστή απόφαση.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τον ίδιο Ιούνιο του 2019 έστειλαν αριθμό αίτησης 256 в Ίδρυμα Cloud Native Computing.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Και μετά από μερικούς μήνες, ο Θάνος έγινε δεκτός Ίδρυμα Cloud Native Computing, το οποίο περιλαμβάνει Prometheus, Kubernetes και άλλα δημοφιλή έργα.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τον Ιανουάριο του 2018 ξεκίνησε η ανάπτυξη της VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τον Σεπτέμβριο του 2018, ανέφερα για πρώτη φορά δημόσια τη VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τον Δεκέμβριο του 2018, δημοσιεύτηκε η έκδοση Single-node.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τον Μάιο 2019 δημοσιεύθηκαν πηγές τόσο της έκδοσης ενός κόμβου όσο και της έκδοσης συμπλέγματος.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τον Ιούνιο του 2019, όπως και ο Θάνος, υποβάλαμε αίτηση στο ίδρυμα CNCF με τον αριθμό 255. Κάναμε αίτηση μια μέρα πριν κάνει αίτηση ο Θάνος.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Όμως, δυστυχώς, ακόμα δεν μας έχουν δεχτεί εκεί. Απαιτείται κοινοτική βοήθεια.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Εξετάστε τις πιο σημαντικές διαφάνειες που δείχνουν την αρχιτεκτονική των Thanos και VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ας ξεκινήσουμε με τον Θάνο. Τα κίτρινα συστατικά είναι συστατικά του Προμηθέα. Όλα τα άλλα είναι εξαρτήματα Thanos. Ας ξεκινήσουμε με το πιο σημαντικό στοιχείο. Το Thanos Sidecar είναι ένα εξάρτημα που εγκαθίσταται δίπλα σε κάθε Prometheus. Είναι υπεύθυνος για τη φόρτωση των δεδομένων Prometheus από την τοπική αποθήκευση στο S3 ή σε άλλο χώρο αποθήκευσης αντικειμένων.

Υπάρχει επίσης ένα στοιχείο όπως το Thanos Store Gateway, το οποίο μπορεί να διαβάσει αυτά τα δεδομένα από το Object Storage κατόπιν εισερχόμενων αιτημάτων από το Thanos Query. Το Thanos Query υλοποιεί το PromQL και το Prometheus API. Δηλαδή από έξω μοιάζει με τον Προμηθέα. Δέχεται αιτήματα PromQL, τα στέλνει στο Thanos Store Gateway, το Thanos Store Gateway λαμβάνει τα απαραίτητα δεδομένα από το Object Storage, τα στέλνει πίσω.

Όμως έχουμε αποθηκευμένα δεδομένα στο Object Storage χωρίς τις τελευταίες δύο ώρες λόγω της υλοποίησης του Thanos Sidecar, το οποίο δεν μπορεί να ανεβάσει τις τελευταίες δύο ώρες στο Object Storage S3, αφού ο Prometheus δεν έχει δημιουργήσει ακόμα αρχεία σε τοπικό χώρο αποθήκευσης για αυτές τις δύο ώρες.

Πώς αποφάσισες να το ξεπεράσεις αυτό; Το Thanos Query, εκτός από αιτήματα προς το Thanos Store Gateway, στέλνει παράλληλα αιτήματα σε κάθε Thanos Sidecar που βρίσκεται δίπλα στον Prometheus.

Και ο Thanos Sidecar, με τη σειρά του, κάνει proxy αιτήματα στον Προμηθέα και λαμβάνει δεδομένα για τις τελευταίες δύο ώρες.

Εκτός από αυτά τα εξαρτήματα, υπάρχει και ένα προαιρετικό εξάρτημα, χωρίς το οποίο ο Thanos θα αισθάνεται άσχημα. Αυτό είναι το Thanos Compact, το οποίο συγχωνεύει μικρά αρχεία στο Object Storage σε μεγαλύτερα αρχεία που έχουν ανέβει εδώ από την Thanos Sidecars. Ο Thanos Sidecar ανεβάζει αρχεία δεδομένων εκεί για δύο ώρες. Αυτά τα αρχεία, εάν δεν συγχωνευθούν σε μεγαλύτερα αρχεία, ο αριθμός τους μπορεί να αυξηθεί πολύ σημαντικά. Όσο περισσότερα τέτοια αρχεία, τόσο περισσότερη μνήμη χρειάζεται για το Thanos Store Gateway, τόσο περισσότεροι πόροι χρειάζονται για τη μεταφορά δεδομένων μέσω του δικτύου, μεταδεδομένα. Το Thanos Store Gateway γίνεται αναποτελεσματικό. Ως εκ τούτου, είναι απαραίτητο να εκτελέσετε το Thanos Compact, το οποίο συγχωνεύει μικρά αρχεία σε μεγαλύτερα, έτσι ώστε να υπάρχουν λιγότερα τέτοια αρχεία και να μειωθούν τα έξοδα στο Thanos Store Gateway.

Υπάρχει επίσης ένα τέτοιο στοιχείο όπως ο Thanos Ruler. Εκτελεί κανόνες ειδοποίησης Prometheus και μπορεί να υπολογίσει κανόνες εγγραφής Prometheus για να γράψει δεδομένα πίσω στο Object Storage. Αλλά αυτό το συστατικό δεν συνιστάται να χρησιμοποιείται, επειδή. Αυτός τείνει να επιστρέφει ελλιπή δεδομένα.

Εδώ είναι ένα απλό σχέδιο για τον Thanos.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τώρα ας κάνουμε σύγκριση με το σχήμα VictoriaMetrics.

Το VictoriaMetrics έχει 2 εκδόσεις: Έκδοση ενός κόμβου και συμπλέγματος. Ο μεμονωμένος κόμβος εκτελείται σε έναν υπολογιστή. Ο μεμονωμένος κόμβος δεν έχει αυτά τα στοιχεία, μόνο ένα δυαδικό. Αυτό το δυαδικό αρχείο στη διαφάνεια μοιάζει με αυτό το τετράγωνο. Τα πάντα μέσα στο τετράγωνο είναι τα περιεχόμενα του δυαδικού αρχείου για την έκδοση Single-node. Δεν χρειάζεται να το ξέρετε. Απλώς εκτελέστε το δυαδικό - και όλα λειτουργούν για εμάς.

Η έκδοση συμπλέγματος είναι πιο δύσκολη. Μέσα σε αυτό υπάρχουν τρία διαφορετικά στοιχεία: vmselect, vminsert και vmstorage. Από το όνομά τους θα πρέπει να είναι ξεκάθαρο τι κάνει ο καθένας τους. Το στοιχείο Insert δέχεται δεδομένα σε διαφορετικές μορφές: από το API απομακρυσμένης εγγραφής Prometheus, το πρωτόκολλο γραμμής Influx, το πρωτόκολλο Graphite και το πρωτόκολλο OpenTSDB. Το στοιχείο Εισαγωγή τα αποδέχεται, τα αναλύει και τα διανέμει στα υπάρχοντα στοιχεία αποθήκευσης, όπου τα δεδομένα είναι ήδη αποθηκευμένα. Το στοιχείο Select, με τη σειρά του, δέχεται ερωτήματα PromQL. Εφαρμόζει PromQL, καθώς και το API ερωτημάτων Prometheus και μπορεί να χρησιμοποιηθεί ως αντικατάσταση του Prometheus στο Grafana ή σε άλλους πελάτες API του Prometheus. Το Select παίρνει ένα αίτημα promql, το αναλύει, διαβάζει τα απαραίτητα δεδομένα για την εκτέλεση αυτού του αιτήματος από κόμβους αποθήκευσης, επεξεργάζεται αυτά τα δεδομένα και επιστρέφει μια απάντηση.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ας συγκρίνουμε την πολυπλοκότητα της εγκατάστασης των Thanos και VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ας ξεκινήσουμε με τον Θάνο. Πριν ξεκινήσετε να εργάζεστε με το Thanos, πρέπει να δημιουργήσετε ένα bucket στο Object Storage, όπως το S3 ή το GCS, ώστε ο Thanos Sidecar να μπορεί να γράψει δεδομένα εκεί.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Στη συνέχεια, για κάθε Prometheus θα πρέπει να εγκαταστήσετε το Thanos Sidecar. Πριν από αυτό, πρέπει να θυμηθείτε να απενεργοποιήσετε τη συμπίεση δεδομένων στον Prometheus. Η συμπίεση δεδομένων συμπιέζει περιοδικά δεδομένα στην τοπική αποθήκευση του Prometheus προκειμένου να μειωθεί η κατανάλωση πόρων.

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Επομένως, ο Thanos συνιστά τη μείωση του χρόνου διατήρησης δεδομένων στην τοπική αποθήκευση σε 6-8 ώρες, προκειμένου να μειωθεί αυτή η επιβάρυνση μεγάλου αριθμού μικρών μπλοκ.

Αφού εγκαταστήσετε το Thanos Sidecar, πρέπει να εγκαταστήσετε δύο στοιχεία για κάθε κάδο αποθήκευσης αντικειμένων. Αυτά είναι τα Thanos Compactor και Thanos Store Gateway.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Μετά από αυτό, πρέπει να εγκαταστήσετε το Thanos Query και να το διαμορφώσετε έτσι ώστε να μπορεί να συνδεθεί με όλες τις πύλες Thanos Store που έχετε, καθώς και να μπορεί να συνδεθεί με όλα τα Thanos Sidecars.

Μπορεί να υπάρχει ένα μικρό πρόβλημα εδώ.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Πρέπει να ρυθμίσετε μια αξιόπιστη και ασφαλή σύνδεση από το Thanos Query σε αυτά τα στοιχεία. Και αν έχετε το Prometheus'y που βρίσκεται σε διαφορετικά κέντρα δεδομένων ή σε διαφορετικά VPC, τότε απαγορεύονται οι εξωτερικές συνδέσεις με αυτά. Αλλά για να λειτουργήσει το Thanos Query, πρέπει να ρυθμίσετε με κάποιο τρόπο τη σύνδεση εκεί και πρέπει να βρείτε έναν τρόπο.

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Στο VictoriaMetrics, τα πράγματα είναι λίγο πιο απλά. Για την έκδοση Single-node, απλώς εκτελέστε ένα δυαδικό και όλα λειτουργούν.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Αφού ξεκινήσετε μια δυαδική ή συμπλεγμένη έκδοση, πρέπει απλώς να προσθέσετε στη διαμόρφωση Prometheus ρύθμιση για url απομακρυσμένης εγγραφήςώστε να αρχίσει να γράφει δεδομένα παράλληλα με την τοπική αποθήκευση και την απομακρυσμένη αποθήκευση. Όπως μπορείτε να δείτε, αυτή η διαμόρφωση θα πρέπει να λειτουργεί πολύ πιο αξιόπιστα από τη διαμόρφωση Thanos. Δεν χρειάζεται να διατηρούμε σύνδεση από τη VictoriaMetrics σε όλα τα Prometheus, επειδή οι ίδιοι οι Prometheus συνδέονται με τη VictoriaMetrics και μεταφέρουν δεδομένα.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Εξετάστε το ενδεχόμενο υποστήριξης των Thanos και VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ο Thanos πρέπει να παρακολουθεί το Sidecar, ώστε να μην σταματήσει να ανεβάζει δεδομένα στο Object Storage. Ενδέχεται να διακόψουν αυτήν τη λήψη δεδομένων λόγω σφαλμάτων λήψης, για παράδειγμα, η σύνδεσή σας στο δίκτυο με το Object Storage έχει χαθεί προσωρινά ή το Object Storage δεν είναι προσωρινά διαθέσιμο. Ο Thanos Sidecar θα το παρατηρήσει σε αυτό το σημείο, θα αναφέρει ένα σφάλμα, μπορεί να κολλήσει και μετά να σταματήσει να λειτουργεί. Εάν δεν το παρακολουθείτε, τότε τα δεδομένα σας δεν θα μεταφέρονται πλέον στο Object Storage. Εάν περάσει ο χρόνος διατήρησης (συνιστάται 6-8 ώρες), τότε θα χάσετε δεδομένα που δεν μπήκαν στο Object Storage.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Οι συμπιεστές Thanos ενδέχεται να σταματήσουν να λειτουργούν λόγω αγώνες με Sidecar. Οι συμπιεστές λαμβάνουν δεδομένα από το Object Storage και τα συγχωνεύουν σε μεγαλύτερα κομμάτια δεδομένων. Εφόσον οι συμπιεστές δεν είναι συγχρονισμένοι με τα Sidecars, μπορεί να συμβεί το εξής: το Sidecar δεν είχε ακόμη χρόνο να προσθέσει το μπλοκ, το Compactor αποφασίζει ότι αυτό το μπλοκ έχει γραφτεί πλήρως. Ο συμπαγής αρχίζει να το διαβάζει. Διαβάζει το μπλοκ ατελώς και σταματά να λειτουργεί. Δείτε λεπτομέρειες εδώ.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το Store Gateway μπορεί να επιστρέψει ασυνεπή δεδομένα λόγω αγώνων μεταξύ Compactor και Sidecars. Είναι το ίδιο πράγμα εδώ, επειδή το Store Gateway δεν συγχρονίζεται με κανένα τρόπο με Compactors και Sidecars. Αντίστοιχα, οι συνθήκες αγώνα μπορεί να προκύψουν όταν το Store Gateway δεν βλέπει μέρος των δεδομένων ή βλέπει επιπλέον δεδομένα.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το στοιχείο Query στο Thanos επιστρέφει ένα μερικό αποτέλεσμα από προεπιλογή, εάν ορισμένα Sidecars ή Store Gateways δεν είναι διαθέσιμα αυτήν τη στιγμή. Θα λάβετε μερικά από τα δεδομένα και δεν θα γνωρίζετε καν ότι δεν λάβατε όλα τα δεδομένα. Έτσι λειτουργεί από προεπιλογή. Σε παρόμοια κατάσταση, η VictoriaMetrics επιστρέφει δεδομένα με ετικέτα ως μερική.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Σε αντίθεση με τον Thanos, η VictoriaMetrics σπάνια χάνει δεδομένα. Ακόμα κι αν διακοπεί η σύνδεση από το Prometheus στη VictoriaMetrics, τότε αυτό δεν αποτελεί πρόβλημα, αφού ο Prometheus συνεχίζει να εγγράφει εισερχόμενα νέα δεδομένα στο Write Ahead Log, το οποίο έχει διάρκεια 2 ωρών. Εάν επαναφέρετε τη σύνδεση στο VictoriaMetrics εντός δύο ωρών, τα δεδομένα δεν θα χαθούν. Προμηθέας μπορεί να προσθέσει δεδομένα μετά την επανασύνδεση στο VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το Kubernetes διαχειρίζεται αυτόματα το σύμπλεγμα σε αντίθεση με τον Thanos. Είναι δύσκολο να τοποθετήσετε όλα τα στοιχεία Thanos σε ένα σύμπλεγμα Kubernetes, σε αντίθεση με τα στοιχεία συμπλέγματος VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Η VictoriaMetrics έχει μια πολύ εύκολη αναβάθμιση στη νέα έκδοση. Απλώς σταματήστε το VictoriaMetrics, ενημερώστε τα δυαδικά και ξεκινήστε. Όταν διακοπεί μέσω ενός σήματος SIGINT, όλα τα δυαδικά αρχεία VictoriaMetrics κάνουν έναν χαριτωμένο τερματισμό. Αποθηκεύουν σωστά τα απαραίτητα δεδομένα, κλείνουν σωστά τις εισερχόμενες συνδέσεις για να μην χάσουν τίποτα. Έτσι δεν θα χάσετε τίποτα όταν κάνετε αναβάθμιση.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Είναι πολύ εύκολο για τη VictoriaMetrics να επεκτείνει το σύμπλεγμα. Απλώς προσθέστε τα απαραίτητα εξαρτήματα και συνεχίστε να εργάζεστε.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Σχετικά με τις παγίδες σε Thanos και VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ο Θάνος έχει τις εξής παγίδες. Ο Προμηθέας θα πρέπει να αποθηκεύσει δεδομένα για τις τελευταίες δύο ώρες. Αν χαθούν, θα τα χάσεις εντελώς, αφού δεν έχουν προλάβει να γράψουν στο Object Storage, όπως το S3.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το στοιχείο Store Gateway και το στοιχείο συμπιεστή μπορεί να απαιτούν μνήμη για την αντιμετώπιση μεγάλων αποθηκευτικών αντικειμένων εάν υπάρχουν πολλά μικρά αρχεία αποθηκευμένα εκεί. Όσο μεγαλύτερος είναι ο αριθμός και το μέγεθος των αρχείων, τόσο περισσότερη μνήμη RAM χρειάζεται η πύλη Store και ο συμπιεστής για την αποθήκευση μετα-πληροφοριών. Ο Θάνος έχει πολλά θέματα για το τι Αποθήκευση πύλης και συμπιεστής συντριβή σε μεσαίους όγκους δεδομένων που έχουν γραφτεί.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ο Θάνος διαφημίζεται ότι μπορεί να κλιμακώνεται επ' αόριστον με τον αριθμό του Προμηθέα που έχετε. Στην πραγματικότητα αυτό δεν είναι αλήθεια. Δεδομένου ότι όλα τα αιτήματα περνούν από το στοιχείο Query, το οποίο πρέπει να μετρήσει παράλληλα όλα τα στοιχεία του Store Gateway και όλα τα στοιχεία Sidecar, εξάγετε δεδομένα από εκεί και στη συνέχεια τα προεπεξεργάζεστε. Είναι προφανές ότι ο ρυθμός των αιτημάτων περιορίζεται από τον πιο αργό αδύναμο σύνδεσμο, το πιο αργό Store Gateway ή το πιο αργό Sidecar.

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Η VictoriaMetrics έχει επίσης παγίδες. Η πρώτη παγίδα είναι μια επιλογή που περιορίζει την ποσότητα μνήμης RAM που χρησιμοποιείται για την κρυφή μνήμη VictoriaMetrics. Η προεπιλογή είναι 60% RAM στο μηχάνημα όπου εκτελείται το VictoriaMetrics ή 60% RAM στο pod VictoriaMetrics στο Kubernetes.

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Δεύτερη επιλογή. Αυτή η περίοδος διατήρησης είναι μια περίοδος που έχει οριστεί σε 1 μήνα από προεπιλογή. Αυτός είναι ο χρόνος κατά τον οποίο η VictoriaMetrics διατηρεί τα δεδομένα. Μετά από αυτό το διάστημα, η VictoriaMetrics διαγράφει τα δεδομένα.

Πολλοί άνθρωποι τρέχουν το VictoriaMetrics χωρίς αυτήν την επιλογή και καταγράφουν δεδομένα για ένα μήνα. Και μετά ρωτούν: γιατί εξαφανίστηκαν τα δεδομένα για τον προηγούμενο μήνα; Επειδή η προεπιλεγμένη περίοδος διατήρησης είναι 1 μήνας. Επομένως, πρέπει να γνωρίζετε και να ορίσετε τη σωστή περίοδο διατήρησης.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ας δούμε τα μοναδικά χαρακτηριστικά.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το Thanos έχει ένα χαρακτηριστικό που ονομάζεται downsampling: 5 λεπτά και ωριαία διαστήματα, τα οποία είναι συχνά δεν λειτουργούν σωστά. Αν ψάξετε στο google και δείτε το πρόβλημά τους στο github, υπάρχουν πολλά ζητήματα που σχετίζονται με αυτήν τη μείωση δειγματοληψίας, ότι μερικές φορές δεν λειτουργεί σωστά ή δεν λειτουργεί όπως αναμένουν οι χρήστες.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ο Thanos έχει deduplication δεδομένων για τα ζεύγη Prometheus HA. Όταν δύο Prometheus συλλέγουν τις ίδιες μετρήσεις από τους ίδιους στόχους και ο Thanos τις προσθέτει στο Object Storage. Ο Thanos μπορεί να εξαπατήσει σωστά αυτά τα δεδομένα, σε αντίθεση με το VictoriaMetrics.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το Thanos έχει ένα στοιχείο ειδοποίησης που υπήρχε στο σχηματικό Thanos. Αλλά αυτός δεν συνιστάται για χρήση στην παραγωγή.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το κύριο χαρακτηριστικό της VictoriaMetrics είναι το MetricsQL. Αυτές είναι οι επεκτάσεις VictoriaMetrics για το PromQL, για τις οποίες μίλησα στην προηγούμενη μεγάλη συνάντηση παρακολούθησης.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Το VictoriaMetrics υποστηρίζει τη μεταφόρτωση δεδομένων χρησιμοποιώντας πολλά διαφορετικά πρωτόκολλα. Η VictoriaMetrics μπορεί όχι μόνο να λαμβάνει δεδομένα από τον Prometheus, αλλά και μέσω των πρωτοκόλλων Influx, OpenTSDB και Graphite.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Τα δεδομένα της VictoriaMetrics καταλαμβάνουν πολύ λιγότερο χώρο από τον Thanos και τον Prometheus.

Όταν γράφετε πραγματικά δεδομένα, οι χρήστες μιλούν για 2-5 φορές μείωση του μεγέθους των δεδομένων στο δίσκο σε σύγκριση με τον Prometheus και τον Thanos.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ένα άλλο πλεονέκτημα της VictoriaMetrics είναι ότι είναι βελτιστοποιημένη για ταχύτητα.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ας δούμε το κόστος των υποδομών.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Ένα από τα πλεονεκτήματα του Thanos είναι ότι αποθηκεύει δεδομένα σε αποθήκευση αντικειμένων, η οποία είναι σχετικά φθηνή.

Κατά την αποθήκευση δεδομένων σε αποθήκευση αντικειμένων, πρέπει να πληρώσετε για λειτουργίες εγγραφής και ανάγνωσης δεδομένων (10 $ ανά εκατομμύριο λειτουργίες). Όταν γράφετε δεδομένα στην αποθήκευση αντικειμένων, πληρώνετε το κόστος φιλοξενίας για τη μεταφόρτωση δεδομένων στο Διαδίκτυο, εάν το σύμπλεγμα σας δεν είναι σε AWS - είναι δωρεάν εκεί. Όταν διαβάζετε δεδομένα, πληρώνετε μεταξύ 10 και 230 $ για 1 TB. Αυτό μπορεί να είναι σημαντικό εάν ζητάτε συχνά ιστορικά δεδομένα από το σύμπλεγμα Thanos.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Για ένα σύμπλεγμα Thanos, πρέπει να πληρώσετε για διακομιστές για Compact, Store Gateway, Query στοιχεία που απαιτούν πολλή μνήμη, CPU για μεγάλες ποσότητες δεδομένων.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Η VictoriaMetrics έχει τις ακόλουθες δαπάνες. Εάν αποθηκεύετε δεδομένα σε σκληρούς δίσκους GCE, τότε βγαίνουν 40 $ για 1 TB. Για τη VictoriaMetrics, οι απλοί δίσκοι HDD αρκούν, δεν χρειάζονται SSD, που κοστίζουν πέντε φορές περισσότερο. Το VictoriaMetrics έχει βελτιστοποιηθεί για HDD.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Η VictoriaMetrics χρειάζεται διακομιστές για εξαρτήματα: είτε Single-nod είτε για clustered components, τα οποία, σε αντίθεση με τα στοιχεία Thanos, απαιτούν πολύ λιγότερη CPU, RAM - αντίστοιχα, θα είναι φθηνότερα.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Παραδείγματα υλοποίησης.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Για τον Thanos, το παράδειγμα υλοποίησης είναι το Gitlab. Το Gitlab τρέχει εξ ολοκλήρου στο Thanos. Αλλά δεν είναι όλα τόσο ομαλά εκεί. Αν τα κοιτάξεις θέματα, τότε μπορείτε να δείτε ότι έχουν συνεχώς μερικά λειτουργικά προβλήματα με τον Θάνο: Δεν υπάρχει αρκετή μνήμη για στοιχεία Store Gateway ή Query. Πρέπει συνεχώς να αυξάνουν την ποσότητα της μνήμης.

Εξαιτίας αυτού, το κόστος επίλυσης αυτών των προβλημάτων αυξάνεται.

Η δεύτερη υλοποίηση, που μπορεί να είναι πιο επιτυχημένη, είναι η Improbable, που ξεκίνησε την ανάπτυξη του Thanos. Έδωσαν στη δημοσιότητα την πηγή Thanos. Η Improbable είναι μια εταιρεία που αναπτύσσει μηχανές παιχνιδιών.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Η VictoriaMetrics έχει δημόσια παραδείγματα υλοποίησης που είναι:

  • πρόγραμμα δημιουργίας ιστοσελίδων wix
  • Η Adidas εφαρμόζει το VictoriaMetrics και μάλιστα έκανε μια παρουσίαση στο τελευταίο PromCon 2019
  • Δίκτυο διαφημίσεων TrafficStars
  • Το Seznam.cz είναι μια δημοφιλής τσέχικη μηχανή αναζήτησης.

Και τότε υπήρχαν εταιρείες χωρίς όνομα που δεν μπορώ να ονομάσω τώρα. Δεν συμφώνησαν.

  • Ένας σημαντικός προγραμματιστής παιχνιδιών. Μεγαλύτερο από το απίθανο.
  • Μεγάλος προγραμματιστής λογισμικού γραφικών.
  • Μεγάλη ρωσική τράπεζα.
  • Ευρωπαίος κατασκευαστής ανεμογεννητριών που έχει δοκιμάσει με επιτυχία τη VictoriaMetrics. Αυτός ο κατασκευαστής εφαρμόζει τη VictoriaMetrics για την παρακολούθηση δεδομένων ανεμογεννητριών με ρυθμό 50 δειγμάτων ανά δευτερόλεπτο ανά αισθητήρα. Κάθε ανεμογεννήτρια έχει αρκετές εκατοντάδες αισθητήρες. Έχουν αρκετές εκατοντάδες ανεμογεννήτριες.
  • Ρωσικές αεροπορικές εταιρείες που θέλουν να εφαρμόσουν τη VictoriaMetrics αλλά ακόμα δεν μπορούν. Είμαστε στο στάδιο της σύμβασης μαζί τους.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetricsΣυμπεράσματα.

Η VictoriaMetrics και η Thanos λύνουν παρόμοια προβλήματα, αλλά με διαφορετικούς τρόπους:

  • Καθολική προβολή ερωτήματος
  • οριζόντια κλιμάκωση
  • αυθαίρετη διατήρηση

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

Σας ευχαριστώ.

Σας περιμένουμε στο δικό μας κανάλι τηλεγραφήματος.

Επιλογή καταστήματος δεδομένων για το Prometheus: Thanos vs VictoriaMetrics

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

Τι χρησιμοποιείτε ως μακροπρόθεσμη αποθήκευση για το Prometheus;

  • 35,3%Θάνος6

  • 0,0%Cortex0

  • 0,0%M3DB0

  • 41,2%VictoriaMetrics 7

  • 23,5%άλλα4

Ψήφισαν 17 χρήστες. 16 χρήστες απείχαν.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο