Γεια σε όλους. Παρακάτω είναι η αποκρυπτογράφηση
Η έκθεση θα συγκρίνει
Να σας πω πρώτα για τον Προμηθέα. Αυτό είναι ένα σύστημα παρακολούθησης που συλλέγει μετρήσεις από συγκεκριμένους στόχους και τις αποθηκεύει σε τοπικό χώρο αποθήκευσης. Ο Prometheus μπορεί να γράψει μετρήσεις σε απομακρυσμένο χώρο αποθήκευσης, μπορεί να δημιουργήσει ειδοποιήσεις και κανόνες εγγραφής.
Περιορισμοί Προμηθέας:
- Δεν έχει καθολική προβολή ερωτήματος. Αυτό συμβαίνει όταν έχετε πολλαπλές ανεξάρτητες περιπτώσεις prometheus. Συλλέγουν μετρήσεις. Και θέλετε να ρωτήσετε πάνω από όλες αυτές τις μετρήσεις που συλλέγονται από διαφορετικές παρουσίες του prometheus. Ο Προμηθέας δεν το επιτρέπει αυτό.
- Με τον prometheus, η απόδοση περιορίζεται μόνο σε έναν διακομιστή. Ο Prometheus δεν μπορεί να κλιμακωθεί αυτόματα σε πολλούς διακομιστές. Μπορείτε να χωρίσετε μόνο χειροκίνητα τους στόχους σας μεταξύ πολλών Prometheus.
- Το εύρος των μετρήσεων στον Prometheus περιορίζεται μόνο σε έναν διακομιστή για τον ίδιο λόγο που δεν μπορεί να κλιμακωθεί αυτόματα σε πολλούς διακομιστές αυτόματα.
- Στον Προμηθέα δεν είναι τόσο εύκολο να οργανώσεις την ασφάλεια των δεδομένων.
Λύσεις σε αυτά τα προβλήματα/καθήκοντα;
Οι λύσεις είναι:
Όλες αυτές οι λύσεις προορίζονται για απομακρυσμένη αποθήκευση δεδομένων που συλλέγει ο Prometheus. Επιλύουν το πρόβλημα απομακρυσμένης αποθήκευσης από την προηγούμενη διαφάνεια με διαφορετικούς τρόπους. Σε αυτήν την παρουσίαση, θα μιλήσω μόνο για τις δύο πρώτες λύσεις:
Για πρώτη φορά πληροφορίες για
Ο Thanos παίρνει τα δεδομένα που αποθήκευσε ο Prometheus στην τοπική μονάδα δίσκου και τα αντιγράφει στο S3,
Έτσι ο Thanos παρέχει μια συνολική προβολή ερωτήματος. Μπορείτε να ρωτήσετε δεδομένα που είναι αποθηκευμένα στην αποθήκευση αντικειμένων από πολλές περιπτώσεις Prometheus.
Ο Thanos υποστηρίζει PromQL και
Ο Thanos χρησιμοποιεί τον κώδικα Prometheus για την αποθήκευση δεδομένων.
Το Thanos αναπτύσσεται από τους ίδιους προγραμματιστές με τον Prometheus.
επί
Η VictoriaMetrics λαμβάνει δεδομένα από αρκετούς prometheus
Το VictoriaMetrics παρέχει μια συνολική προβολή ερωτήματος, καθώς πολλές περιπτώσεις Prometheus μπορούν να γράψουν δεδομένα σε ένα μόνο VictoriaMetrics. Αντίστοιχα, μπορείτε να κάνετε ερωτήματα για όλα αυτά τα δεδομένα.
Το VictoriaMetrics υποστηρίζει επίσης, όπως το Thanos, το PromQL και το Prometheus querying API.
Σε αντίθεση με τον Thanos, ο πηγαίος κώδικας της VictoriaMetrics είναι γραμμένος από την αρχή και βελτιστοποιημένος για ταχύτητα και κατανάλωση πόρων.
Η VictoriaMetrics, σε αντίθεση με τον Thanos, κλιμακώνεται τόσο κάθετα όσο και οριζόντια. Τρώω
Η ιστορία του Thanos ξεκίνησε τον Νοέμβριο του 2017, όταν εμφανίστηκε το πρώτο δημόσιο commit. Πριν από αυτό, η Thanos αναπτύχθηκε εσωτερικά
Τον Ιούνιο του 2019, υπήρξε μια ορόσημο κυκλοφορία 0.5.0, στην οποία
Τον ίδιο Ιούνιο του 2019 έστειλαν αριθμό αίτησης
Και μετά από μερικούς μήνες, ο Θάνος έγινε δεκτός
Τον Ιανουάριο του 2018 ξεκίνησε η ανάπτυξη της VictoriaMetrics.
Τον Σεπτέμβριο του 2018, ανέφερα για πρώτη φορά δημόσια τη VictoriaMetrics.
Τον Δεκέμβριο του 2018, δημοσιεύτηκε η έκδοση Single-node.
Τον Μάιο 2019
Τον Ιούνιο του 2019, όπως και ο Θάνος, υποβάλαμε αίτηση στο ίδρυμα CNCF με τον αριθμό
Όμως, δυστυχώς, ακόμα δεν μας έχουν δεχτεί εκεί. Απαιτείται κοινοτική βοήθεια.
Εξετάστε τις πιο σημαντικές διαφάνειες που δείχνουν την αρχιτεκτονική των Thanos και 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.
Τώρα ας κάνουμε σύγκριση με το σχήμα VictoriaMetrics.
Το VictoriaMetrics έχει 2 εκδόσεις: Έκδοση ενός κόμβου και συμπλέγματος. Ο μεμονωμένος κόμβος εκτελείται σε έναν υπολογιστή. Ο μεμονωμένος κόμβος δεν έχει αυτά τα στοιχεία, μόνο ένα δυαδικό. Αυτό το δυαδικό αρχείο στη διαφάνεια μοιάζει με αυτό το τετράγωνο. Τα πάντα μέσα στο τετράγωνο είναι τα περιεχόμενα του δυαδικού αρχείου για την έκδοση Single-node. Δεν χρειάζεται να το ξέρετε. Απλώς εκτελέστε το δυαδικό - και όλα λειτουργούν για εμάς.
Η έκδοση συμπλέγματος είναι πιο δύσκολη. Μέσα σε αυτό υπάρχουν τρία διαφορετικά στοιχεία: vmselect, vminsert και vmstorage. Από το όνομά τους θα πρέπει να είναι ξεκάθαρο τι κάνει ο καθένας τους. Το στοιχείο Insert δέχεται δεδομένα σε διαφορετικές μορφές: από το API απομακρυσμένης εγγραφής Prometheus, το πρωτόκολλο γραμμής Influx, το πρωτόκολλο Graphite και το πρωτόκολλο OpenTSDB. Το στοιχείο Εισαγωγή τα αποδέχεται, τα αναλύει και τα διανέμει στα υπάρχοντα στοιχεία αποθήκευσης, όπου τα δεδομένα είναι ήδη αποθηκευμένα. Το στοιχείο Select, με τη σειρά του, δέχεται ερωτήματα PromQL. Εφαρμόζει
Ας συγκρίνουμε την πολυπλοκότητα της εγκατάστασης των Thanos και VictoriaMetrics.
Ας ξεκινήσουμε με τον Θάνο. Πριν ξεκινήσετε να εργάζεστε με το Thanos, πρέπει να δημιουργήσετε ένα bucket στο Object Storage, όπως το S3 ή το GCS, ώστε ο Thanos Sidecar να μπορεί να γράψει δεδομένα εκεί.
Στη συνέχεια, για κάθε Prometheus θα πρέπει να εγκαταστήσετε το Thanos Sidecar. Πριν από αυτό, πρέπει να θυμηθείτε να απενεργοποιήσετε τη συμπίεση δεδομένων στον Prometheus. Η συμπίεση δεδομένων συμπιέζει περιοδικά δεδομένα στην τοπική αποθήκευση του Prometheus προκειμένου να μειωθεί η κατανάλωση πόρων.
Όταν εγκαθιστάτε το Thanos Sidecar στον Prometheus σας, πρέπει να απενεργοποιήσετε αυτήν τη συμπίεση δεδομένων επειδή το Thanos Sidecar δεν λειτουργεί σωστά με ενεργοποιημένη τη συμπίεση δεδομένων. Αυτό σημαίνει ότι ο Prometheus σας αρχίζει να αποθηκεύει δεδομένα σε μπλοκ των δύο ωρών και σταματά να συγχωνεύει αυτά τα μπλοκ σε μεγαλύτερα. Αντίστοιχα, εάν υποβάλετε αιτήματα που υπερβαίνουν τη διάρκεια των δύο τελευταίων ωρών, τότε δεν θα λειτουργήσουν τόσο αποτελεσματικά όσο θα μπορούσαν να λειτουργήσουν εάν ήταν ενεργοποιημένη η συμπίεση δεδομένων.
Επομένως, ο Thanos συνιστά τη μείωση του χρόνου διατήρησης δεδομένων στην τοπική αποθήκευση σε 6-8 ώρες, προκειμένου να μειωθεί αυτή η επιβάρυνση μεγάλου αριθμού μικρών μπλοκ.
Αφού εγκαταστήσετε το Thanos Sidecar, πρέπει να εγκαταστήσετε δύο στοιχεία για κάθε κάδο αποθήκευσης αντικειμένων. Αυτά είναι τα Thanos Compactor και Thanos Store Gateway.
Μετά από αυτό, πρέπει να εγκαταστήσετε το Thanos Query και να το διαμορφώσετε έτσι ώστε να μπορεί να συνδεθεί με όλες τις πύλες Thanos Store που έχετε, καθώς και να μπορεί να συνδεθεί με όλα τα Thanos Sidecars.
Μπορεί να υπάρχει ένα μικρό πρόβλημα εδώ.
Πρέπει να ρυθμίσετε μια αξιόπιστη και ασφαλή σύνδεση από το Thanos Query σε αυτά τα στοιχεία. Και αν έχετε το Prometheus'y που βρίσκεται σε διαφορετικά κέντρα δεδομένων ή σε διαφορετικά VPC, τότε απαγορεύονται οι εξωτερικές συνδέσεις με αυτά. Αλλά για να λειτουργήσει το Thanos Query, πρέπει να ρυθμίσετε με κάποιο τρόπο τη σύνδεση εκεί και πρέπει να βρείτε έναν τρόπο.
Εάν έχετε πολλά τέτοια κέντρα δεδομένων, τότε, κατά συνέπεια, μειώνεται η αξιοπιστία ολόκληρου του συστήματος. Επειδή το Thanos Query πρέπει να διατηρεί συνεχώς συνδέσεις με όλα τα Thanos Sidecars που βρίσκονται σε διαφορετικά κέντρα δεδομένων. Με κάθε εισερχόμενο αίτημα, θα στέλνει αιτήματα σε όλα τα Thanos Sidecars. Εάν η σύνδεση διακοπεί, τότε είτε θα λάβετε ένα ημιτελές σύνολο δεδομένων είτε θα λάβετε μια απάντηση "το σύμπλεγμα δεν λειτουργεί".
Στο VictoriaMetrics, τα πράγματα είναι λίγο πιο απλά. Για την έκδοση Single-node, απλώς εκτελέστε ένα δυαδικό και όλα λειτουργούν.
Στην έκδοση συμπλέγματος, αρκεί να εκτελέσετε και τους τρεις παραπάνω τύπους εξαρτημάτων σε οποιαδήποτε ποσότητα χρειάζεστε ή να χρησιμοποιήσετε
Αφού ξεκινήσετε μια δυαδική ή συμπλεγμένη έκδοση, πρέπει απλώς να προσθέσετε στη διαμόρφωση Prometheus
Εξετάστε το ενδεχόμενο υποστήριξης των Thanos και VictoriaMetrics.
Ο Thanos πρέπει να παρακολουθεί το Sidecar, ώστε να μην σταματήσει να ανεβάζει δεδομένα στο Object Storage. Ενδέχεται να διακόψουν αυτήν τη λήψη δεδομένων λόγω σφαλμάτων λήψης, για παράδειγμα, η σύνδεσή σας στο δίκτυο με το Object Storage έχει χαθεί προσωρινά ή το Object Storage δεν είναι προσωρινά διαθέσιμο. Ο Thanos Sidecar θα το παρατηρήσει σε αυτό το σημείο, θα αναφέρει ένα σφάλμα, μπορεί να κολλήσει και μετά να σταματήσει να λειτουργεί. Εάν δεν το παρακολουθείτε, τότε τα δεδομένα σας δεν θα μεταφέρονται πλέον στο Object Storage. Εάν περάσει ο χρόνος διατήρησης (συνιστάται 6-8 ώρες), τότε θα χάσετε δεδομένα που δεν μπήκαν στο Object Storage.
Οι συμπιεστές Thanos ενδέχεται να σταματήσουν να λειτουργούν λόγω
Το Store Gateway μπορεί να επιστρέψει ασυνεπή δεδομένα λόγω αγώνων μεταξύ Compactor και Sidecars. Είναι το ίδιο πράγμα εδώ, επειδή το Store Gateway δεν συγχρονίζεται με κανένα τρόπο με Compactors και Sidecars. Αντίστοιχα, οι συνθήκες αγώνα μπορεί να προκύψουν όταν το Store Gateway δεν βλέπει μέρος των δεδομένων ή βλέπει επιπλέον δεδομένα.
Το στοιχείο Query στο Thanos επιστρέφει ένα μερικό αποτέλεσμα από προεπιλογή, εάν ορισμένα Sidecars ή Store Gateways δεν είναι διαθέσιμα αυτήν τη στιγμή. Θα λάβετε μερικά από τα δεδομένα και δεν θα γνωρίζετε καν ότι δεν λάβατε όλα τα δεδομένα. Έτσι λειτουργεί από προεπιλογή. Σε παρόμοια κατάσταση, η VictoriaMetrics επιστρέφει δεδομένα με ετικέτα ως μερική.
Σε αντίθεση με τον Thanos, η VictoriaMetrics σπάνια χάνει δεδομένα. Ακόμα κι αν διακοπεί η σύνδεση από το Prometheus στη VictoriaMetrics, τότε αυτό δεν αποτελεί πρόβλημα, αφού ο Prometheus συνεχίζει να εγγράφει εισερχόμενα νέα δεδομένα στο Write Ahead Log, το οποίο έχει διάρκεια 2 ωρών. Εάν επαναφέρετε τη σύνδεση στο VictoriaMetrics εντός δύο ωρών, τα δεδομένα δεν θα χαθούν. Προμηθέας
Σε αντίθεση με το Thanos, που εγγράφει δεδομένα σε αποθήκευση αντικειμένων μόνο μετά από δύο ώρες, ο Prometheus αναπαράγει αυτόματα δεδομένα μέσω πρωτοκόλλου απομακρυσμένης εγγραφής σε απομακρυσμένο χώρο αποθήκευσης, όπως το VictoriaMetrics. Δεν φοβάστε να χάσετε την τοπική αποθήκευση στον Προμηθέα. Εάν έχασε ξαφνικά τον τοπικό χώρο αποθήκευσης, τότε θα χάσετε τα τελευταία δευτερόλεπτα δεδομένων που δεν είχαν χρόνο να γράψουν σε απομακρυσμένο χώρο αποθήκευσης στη χειρότερη περίπτωση.
Το Kubernetes διαχειρίζεται αυτόματα το σύμπλεγμα σε αντίθεση με τον Thanos. Είναι δύσκολο να τοποθετήσετε όλα τα στοιχεία Thanos σε ένα σύμπλεγμα Kubernetes, σε αντίθεση με τα στοιχεία συμπλέγματος VictoriaMetrics.
Η VictoriaMetrics έχει μια πολύ εύκολη αναβάθμιση στη νέα έκδοση. Απλώς σταματήστε το VictoriaMetrics, ενημερώστε τα δυαδικά και ξεκινήστε. Όταν διακοπεί μέσω ενός σήματος SIGINT, όλα τα δυαδικά αρχεία VictoriaMetrics κάνουν έναν χαριτωμένο τερματισμό. Αποθηκεύουν σωστά τα απαραίτητα δεδομένα, κλείνουν σωστά τις εισερχόμενες συνδέσεις για να μην χάσουν τίποτα. Έτσι δεν θα χάσετε τίποτα όταν κάνετε αναβάθμιση.
Είναι πολύ εύκολο για τη VictoriaMetrics να επεκτείνει το σύμπλεγμα. Απλώς προσθέστε τα απαραίτητα εξαρτήματα και συνεχίστε να εργάζεστε.
Σχετικά με τις παγίδες σε Thanos και VictoriaMetrics.
Ο Θάνος έχει τις εξής παγίδες. Ο Προμηθέας θα πρέπει να αποθηκεύσει δεδομένα για τις τελευταίες δύο ώρες. Αν χαθούν, θα τα χάσεις εντελώς, αφού δεν έχουν προλάβει να γράψουν στο Object Storage, όπως το S3.
Το στοιχείο Store Gateway και το στοιχείο συμπιεστή μπορεί να απαιτούν μνήμη για την αντιμετώπιση μεγάλων αποθηκευτικών αντικειμένων εάν υπάρχουν πολλά μικρά αρχεία αποθηκευμένα εκεί. Όσο μεγαλύτερος είναι ο αριθμός και το μέγεθος των αρχείων, τόσο περισσότερη μνήμη RAM χρειάζεται η πύλη Store και ο συμπιεστής για την αποθήκευση μετα-πληροφοριών. Ο Θάνος έχει πολλά θέματα για το τι
Ο Θάνος διαφημίζεται ότι μπορεί να κλιμακώνεται επ' αόριστον με τον αριθμό του Προμηθέα που έχετε. Στην πραγματικότητα αυτό δεν είναι αλήθεια. Δεδομένου ότι όλα τα αιτήματα περνούν από το στοιχείο Query, το οποίο πρέπει να μετρήσει παράλληλα όλα τα στοιχεία του Store Gateway και όλα τα στοιχεία Sidecar, εξάγετε δεδομένα από εκεί και στη συνέχεια τα προεπεξεργάζεστε. Είναι προφανές ότι ο ρυθμός των αιτημάτων περιορίζεται από τον πιο αργό αδύναμο σύνδεσμο, το πιο αργό Store Gateway ή το πιο αργό Sidecar.
Αυτά τα εξαρτήματα ενδέχεται να είναι άνισα φορτωμένα. Για παράδειγμα, έχετε τον Prometheus, ο οποίος συλλέγει εκατομμύρια μετρήσεις ανά δευτερόλεπτο. Και υπάρχει ο Προμηθέας, που συλλέγει χιλιάδες μετρήσεις ανά δευτερόλεπτο. Ο Prometheus, ο οποίος συλλέγει εκατομμύρια μετρήσεις ανά δευτερόλεπτο, φορτώνει πολύ περισσότερο τον διακομιστή στον οποίο εκτελείται. Αντίστοιχα, το Sidecar είναι πιο αργό εκεί. Και γενικά όλα εκεί είναι αργά. Και το στοιχείο Ερώτημα θα τραβήξει δεδομένα πολύ αργά από εκεί. Αντίστοιχα, η απόδοση ολόκληρου του συμπλέγματός σας θα περιοριστεί από αυτό το αργό Sidecar.
Από προεπιλογή, το Thanos επιστρέφει μερικά δεδομένα εάν ορισμένα Sidecars και είτε οι πύλες καταστήματος δεν είναι διαθέσιμες. Για παράδειγμα, εάν έχετε Sidecars διάσπαρτα σε όλο τον κόσμο σε διαφορετικά κέντρα δεδομένων, τότε η πιθανότητα αποσύνδεσης και μη διαθεσιμότητας στοιχείων αυξάνεται σημαντικά. Αντίστοιχα, στις περισσότερες περιπτώσεις, θα λαμβάνετε μερικά δεδομένα χωρίς καν να το γνωρίζετε.
Η VictoriaMetrics έχει επίσης παγίδες. Η πρώτη παγίδα είναι μια επιλογή που περιορίζει την ποσότητα μνήμης RAM που χρησιμοποιείται για την κρυφή μνήμη VictoriaMetrics. Η προεπιλογή είναι 60% RAM στο μηχάνημα όπου εκτελείται το VictoriaMetrics ή 60% RAM στο pod VictoriaMetrics στο Kubernetes.
Εάν αλλάξετε αυτήν την τιμή εσφαλμένα, μπορείτε να καταστρέψετε την απόδοση του VictoriaMetrics. Για παράδειγμα, εάν η τιμή έχει οριστεί πολύ χαμηλή, τότε τα δεδομένα ενδέχεται να μην χωρούν πλέον στην κρυφή μνήμη VictoriaMetrics. Εξαιτίας αυτού, θα πρέπει να κάνει επιπλέον δουλειά και να φορτώσει τον επεξεργαστή με το δίσκο. Εάν κάνετε αυτήν την επιλογή πολύ μεγάλη, αυξάνει, πρώτον, την πιθανότητα να διακοπεί η VictoriaMetrics με σφάλμα εκτός μνήμης και, δεύτερον, θα οδηγήσει στο γεγονός ότι το λειτουργικό σύστημα θα έχει πολύ λίγη μνήμη RAM για το αρχείο κρύπτη. Και η VictoriaMetrics βασίζεται στην κρυφή μνήμη αρχείων για απόδοση. Εάν δεν είναι αρκετό, τότε το φορτίο στο δίσκο μπορεί να αυξηθεί πολύ. Επομένως, συμβουλή: μην αλλάξετε την παράμετρο εκτός εάν είναι απολύτως απαραίτητο.
Δεύτερη επιλογή. Αυτή η περίοδος διατήρησης είναι μια περίοδος που έχει οριστεί σε 1 μήνα από προεπιλογή. Αυτός είναι ο χρόνος κατά τον οποίο η VictoriaMetrics διατηρεί τα δεδομένα. Μετά από αυτό το διάστημα, η VictoriaMetrics διαγράφει τα δεδομένα.
Πολλοί άνθρωποι τρέχουν το VictoriaMetrics χωρίς αυτήν την επιλογή και καταγράφουν δεδομένα για ένα μήνα. Και μετά ρωτούν: γιατί εξαφανίστηκαν τα δεδομένα για τον προηγούμενο μήνα; Επειδή η προεπιλεγμένη περίοδος διατήρησης είναι 1 μήνας. Επομένως, πρέπει να γνωρίζετε και να ορίσετε τη σωστή περίοδο διατήρησης.
Ας δούμε τα μοναδικά χαρακτηριστικά.
Το Thanos έχει ένα χαρακτηριστικό που ονομάζεται downsampling: 5 λεπτά και ωριαία διαστήματα, τα οποία είναι συχνά
Ο Thanos έχει deduplication δεδομένων για τα ζεύγη Prometheus HA. Όταν δύο Prometheus συλλέγουν τις ίδιες μετρήσεις από τους ίδιους στόχους και ο Thanos τις προσθέτει στο Object Storage. Ο Thanos μπορεί να εξαπατήσει σωστά αυτά τα δεδομένα, σε αντίθεση με το VictoriaMetrics.
Το Thanos έχει ένα στοιχείο ειδοποίησης που υπήρχε στο σχηματικό Thanos. Αλλά αυτός
Ο Θάνος έχει το πλεονέκτημα ότι ο Θάνος και ο Προμηθέας μοιράζονται τον ίδιο κωδικό. Οι Thanos και Prometheus αναπτύσσονται από τους ίδιους προγραμματιστές. Με βελτιώσεις στον Θάνο ή στον Προμηθέα κερδίζει η άλλη πλευρά.
Το κύριο χαρακτηριστικό της VictoriaMetrics είναι το MetricsQL. Αυτές είναι οι επεκτάσεις VictoriaMetrics για το PromQL, για τις οποίες μίλησα στην προηγούμενη μεγάλη συνάντηση παρακολούθησης.
Το VictoriaMetrics υποστηρίζει τη μεταφόρτωση δεδομένων χρησιμοποιώντας πολλά διαφορετικά πρωτόκολλα. Η VictoriaMetrics μπορεί όχι μόνο να λαμβάνει δεδομένα από τον Prometheus, αλλά και μέσω των πρωτοκόλλων Influx, OpenTSDB και Graphite.
Τα δεδομένα της VictoriaMetrics καταλαμβάνουν πολύ λιγότερο χώρο από τον Thanos και τον Prometheus.
Όταν γράφετε πραγματικά δεδομένα, οι χρήστες μιλούν για 2-5 φορές μείωση του μεγέθους των δεδομένων στο δίσκο σε σύγκριση με τον Prometheus και τον Thanos.
Ένα άλλο πλεονέκτημα της VictoriaMetrics είναι ότι είναι βελτιστοποιημένη για ταχύτητα.
Ας δούμε το κόστος των υποδομών.
Ένα από τα πλεονεκτήματα του Thanos είναι ότι αποθηκεύει δεδομένα σε αποθήκευση αντικειμένων, η οποία είναι σχετικά φθηνή.
Κατά την αποθήκευση δεδομένων σε αποθήκευση αντικειμένων, πρέπει να πληρώσετε για λειτουργίες εγγραφής και ανάγνωσης δεδομένων (10 $ ανά εκατομμύριο λειτουργίες). Όταν γράφετε δεδομένα στην αποθήκευση αντικειμένων, πληρώνετε το κόστος φιλοξενίας για τη μεταφόρτωση δεδομένων στο Διαδίκτυο, εάν το σύμπλεγμα σας δεν είναι σε AWS - είναι δωρεάν εκεί. Όταν διαβάζετε δεδομένα, πληρώνετε μεταξύ 10 και 230 $ για 1 TB. Αυτό μπορεί να είναι σημαντικό εάν ζητάτε συχνά ιστορικά δεδομένα από το σύμπλεγμα Thanos.
Για ένα σύμπλεγμα Thanos, πρέπει να πληρώσετε για διακομιστές για Compact, Store Gateway, Query στοιχεία που απαιτούν πολλή μνήμη, CPU για μεγάλες ποσότητες δεδομένων.
Η VictoriaMetrics έχει τις ακόλουθες δαπάνες. Εάν αποθηκεύετε δεδομένα σε σκληρούς δίσκους GCE, τότε βγαίνουν 40 $ για 1 TB. Για τη VictoriaMetrics, οι απλοί δίσκοι HDD αρκούν, δεν χρειάζονται SSD, που κοστίζουν πέντε φορές περισσότερο. Το VictoriaMetrics έχει βελτιστοποιηθεί για HDD.
Η VictoriaMetrics χρειάζεται διακομιστές για εξαρτήματα: είτε Single-nod είτε για clustered components, τα οποία, σε αντίθεση με τα στοιχεία Thanos, απαιτούν πολύ λιγότερη CPU, RAM - αντίστοιχα, θα είναι φθηνότερα.
Παραδείγματα υλοποίησης.
Για τον Thanos, το παράδειγμα υλοποίησης είναι το Gitlab. Το Gitlab τρέχει εξ ολοκλήρου στο Thanos. Αλλά δεν είναι όλα τόσο ομαλά εκεί. Αν τα κοιτάξεις
Εξαιτίας αυτού, το κόστος επίλυσης αυτών των προβλημάτων αυξάνεται.
Η δεύτερη υλοποίηση, που μπορεί να είναι πιο επιτυχημένη, είναι η Improbable, που ξεκίνησε την ανάπτυξη του Thanos. Έδωσαν στη δημοσιότητα την πηγή Thanos. Η Improbable είναι μια εταιρεία που αναπτύσσει μηχανές παιχνιδιών.
Η VictoriaMetrics έχει δημόσια παραδείγματα υλοποίησης που είναι:
- πρόγραμμα δημιουργίας ιστοσελίδων wix
- Η Adidas εφαρμόζει το VictoriaMetrics και μάλιστα έκανε μια παρουσίαση στο τελευταίο PromCon 2019
- Δίκτυο διαφημίσεων TrafficStars
- Το Seznam.cz είναι μια δημοφιλής τσέχικη μηχανή αναζήτησης.
Και τότε υπήρχαν εταιρείες χωρίς όνομα που δεν μπορώ να ονομάσω τώρα. Δεν συμφώνησαν.
- Ένας σημαντικός προγραμματιστής παιχνιδιών. Μεγαλύτερο από το απίθανο.
- Μεγάλος προγραμματιστής λογισμικού γραφικών.
- Μεγάλη ρωσική τράπεζα.
- Ευρωπαίος κατασκευαστής ανεμογεννητριών που έχει δοκιμάσει με επιτυχία τη VictoriaMetrics. Αυτός ο κατασκευαστής εφαρμόζει τη VictoriaMetrics για την παρακολούθηση δεδομένων ανεμογεννητριών με ρυθμό 50 δειγμάτων ανά δευτερόλεπτο ανά αισθητήρα. Κάθε ανεμογεννήτρια έχει αρκετές εκατοντάδες αισθητήρες. Έχουν αρκετές εκατοντάδες ανεμογεννήτριες.
- Ρωσικές αεροπορικές εταιρείες που θέλουν να εφαρμόσουν τη VictoriaMetrics αλλά ακόμα δεν μπορούν. Είμαστε στο στάδιο της σύμβασης μαζί τους.
Συμπεράσματα.
Η VictoriaMetrics και η Thanos λύνουν παρόμοια προβλήματα, αλλά με διαφορετικούς τρόπους:
- Καθολική προβολή ερωτήματος
- οριζόντια κλιμάκωση
- αυθαίρετη διατήρηση
Σας ευχαριστώ.
Σας περιμένουμε στο δικό μας
Μόνο εγγεγραμμένοι χρήστες μπορούν να συμμετάσχουν στην έρευνα.
Τι χρησιμοποιείτε ως μακροπρόθεσμη αποθήκευση για το Prometheus;
-
35,3%Θάνος6
-
0,0%Cortex0
-
0,0%M3DB0
-
41,2%VictoriaMetrics 7
-
23,5%άλλα4
Ψήφισαν 17 χρήστες. 16 χρήστες απείχαν.
Πηγή: www.habr.com