Bonjour Ă tous. Voici la transcription .
â un systĂšme de surveillance de divers systĂšmes et services, qui permet aux administrateurs systĂšme de collecter des informations sur les paramĂštres actuels des systĂšmes et de configurer des alertes pour recevoir des notifications en cas d'anomalies dans le fonctionnement des systĂšmes.
La prĂ©sentation comparera et â des projets pour le stockage Ă long terme des mĂ©triques Prometheus.



Je vais d'abord parler de Prometheus. C'est un systÚme de surveillance qui collecte des métriques à partir de cibles définies et les stocke dans un stockage local. Prometheus peut enregistrer des métriques dans un stockage distant, générer des alertes et créer des rÚgles d'enregistrement.

Limitations de Prometheus :
- Il n'a pas de vue de requĂȘte globale. C'est quand vous avez plusieurs instances indĂ©pendantes de Prometheus. Elles collectent des mĂ©triques. Et vous souhaitez interroger toutes ces mĂ©triques collectĂ©es Ă partir des diffĂ©rentes instances de Prometheus. Prometheus ne le permet pas.
- La performance de Prometheus est limitée à un seul serveur. Prometheus ne peut pas automatiquement se mettre à l'échelle sur plusieurs serveurs. Vous devez manuellement répartir vos cibles entre plusieurs Prometheus.
- Le volume de mĂ©triques dans Prometheus est limitĂ© Ă un seul serveur pour la mĂȘme raison qu'il ne peut pas se mettre Ă l'Ă©chelle automatiquement sur plusieurs serveurs.
- Il n'est pas si facile d'organiser la sauvegarde des données dans Prometheus.

Quelles sont les solutions Ă ces problĂšmes / tĂąches ?
Les solutions sont les suivantes :
Toutes ces solutions visent le stockage distant des données collectées par Prometheus. Elles abordent le problÚme de stockage distant de la diapositive précédente de différentes maniÚres. Dans cette présentation, je ne parlerai que des deux premiÚres solutions : et .
Pour la premiÚre fois, des informations sur sont apparues dans . L'architecture y est décrite et comment cela fonctionne.

Thanos prend les données que Prometheus a sauvegardées sur le disque local et les copie dans S3, dans ou dans un autre stockage d'objets.

Ainsi, Thanos fournit une vue de requĂȘte globale. Vous pouvez interroger les donnĂ©es sauvegardĂ©es dans le stockage d'objets depuis plusieurs instances de Prometheus.

Thanos prend en charge PromQL et .

Thanos utilise le code de Prometheus pour le stockage des données.

Thanos est dĂ©veloppĂ© par les mĂȘmes dĂ©veloppeurs que Prometheus.
Ă propos de . Voici , oĂč nous avons parlĂ© pour la premiĂšre fois de .

VictoriaMetrics obtient des données de plusieurs Prometheus via un protocole pris en charge par Prometheus.

VictoriaMetrics fournit une vue de requĂȘte globale, car plusieurs instances de Prometheus peuvent Ă©crire des donnĂ©es dans une seule instance de VictoriaMetrics. Par consĂ©quent, vous pouvez interroger toutes ces donnĂ©es.

VictoriaMetrics prend Ă©galement en charge, tout comme Thanos, le PromQL et l'API de requĂȘte de Prometheus.

Contrairement à Thanos, le code source de VictoriaMetrics a été écrit de zéro et optimisé pour la vitesse et l'utilisation des ressources.

VictoriaMetrics, contrairement Ă Thanos, peut Ă©voluer Ă la fois verticalement et horizontalement. Il y a , qui se dĂ©veloppe verticalement. Vous pouvez commencer avec un processeur et 1 Go de RAM et progressivement augmenter jusqu'Ă une centaine de processeurs et 1 To de RAM. VictoriaMetrics peut utiliser toutes ces ressources. Sa performance augmentera d'environ 100 fois par rapport Ă un systĂšme Ă un cĆur.

L'histoire de Thanos a commencé en novembre 2017, avec le premier commit public. Avant cela, Thanos a été développé en interne par la société .

En juin 2019, un lancement emblĂ©matique 0.5.0 a eu lieu, oĂč a Ă©tĂ© supprimĂ©. Il a Ă©tĂ© retirĂ© de Thanos car il a montrĂ© des performances peu satisfaisantes. Souvent, le cluster Thanos ne fonctionnait pas correctement, les nĆuds ne se connectant pas correctement en raison du protocole gossip. C'est pourquoi il a Ă©tĂ© dĂ©cidĂ© de l'enlever. Je pense que c'Ă©tait la bonne dĂ©cision.

Dans le mĂȘme mois de juin 2019, ils ont soumis la demande numĂ©ro dans .

Et aprÚs quelques mois, Thanos a été accepté dans , qui comprend Prometheus, Kubernetes et d'autres projets populaires.

En janvier 2018, le développement de VictoriaMetrics a commencé.

En septembre 2018, j'ai mentionné VictoriaMetrics publiquement pour la premiÚre fois.

En dĂ©cembre 2018, la version Ă nĆud unique a Ă©tĂ© publiĂ©e.

En mai 2019 En juin 2019, tout comme Thanos, nous avons soumis une demande à la fondation CNCF sous le numéro

. Nous avons soumis notre demande un jour avant que Thanos ne soumette la sienne. Mais, malheureusement, nous n'avons toujours pas été acceptés. Nous avons besoin de l'aide de la communauté.

Examinons les diapositives les plus importantes montrant l'architecture de Thanos et VictoriaMetrics.

Commençons par Thanos. Les composants jaunes sont des composants de Prometheus. Tout le reste est des composants de Thanos. Commençons par le composant le plus important. Thanos Sidecar est le composant qui s'installe à cÎté de chaque Prometheus. Il s'occupe de charger les données de Prometheus du stockage local vers S3 ou un autre stockage d'objets.

VictoriaMetrics fournit une vue de requĂȘte globale, car plusieurs instances de Prometheus peuvent Ă©crire des donnĂ©es dans une seule instance de VictoriaMetrics. Par consĂ©quent, vous pouvez interroger toutes ces donnĂ©es.
Il existe Ă©galement un composant appelĂ© Thanos Store Gateway, capable de lire ces donnĂ©es Ă partir de l'Object Storage lors des requĂȘtes entrantes de Thanos Query. Thanos Query implĂ©mente PromQL et l'API Prometheus. Autrement dit, il se prĂ©sente Ă l'extĂ©rieur comme Prometheus. Il accepte les requĂȘtes PromQL, les envoie au Thanos Store Gateway, qui extrait les donnĂ©es nĂ©cessaires de l'Object Storage et les renvoie.
Cependant, dans notre Object Storage, nous stockons des données sans les deux derniÚres heures en raison des particularités de l'implémentation de Thanos Sidecar, qui ne peut pas charger les deux derniÚres heures dans l'Object Storage S3, car pour ces deux derniÚres heures, Prometheus n'a pas encore créé de fichiers dans le stockage local.
Comment contourner ce problĂšme ? Thanos Query, en plus d'envoyer des requĂȘtes au Thanos Store Gateway, envoie parallĂšlement des requĂȘtes Ă chaque Thanos Sidecar situĂ© Ă proximitĂ© de Prometheus.
Et Thanos Sidecar, Ă son tour, relaye les requĂȘtes vers Prometheus et extrait les donnĂ©es des deux derniĂšres heures.
En plus de ces composants, il y a un autre composant optionnel sans lequel Thanos fonctionnerait mal. C'est Thanos Compact, qui s'occupe de la fusion de petits fichiers dans l'Object Storage en fichiers plus volumineux, qui ont été chargés ici par les Thanos Sidecars. Thanos Sidecar charge des fichiers contenant des données pour une période de deux heures. Si ces fichiers ne sont pas fusionnés en fichiers plus volumineux, leur nombre peut augmenter de maniÚre significative. Plus il y a de tels fichiers, plus il faut de mémoire pour Thanos Store Gateway, et plus les ressources nécessaires pour le transfert de données sur le réseau et les métadonnées augmentent. Le fonctionnement de Thanos Store Gateway devient inefficace. C'est pourquoi il est impératif de lancer Thanos Compact, qui fusionne les petits fichiers en fichiers plus volumineux, afin de réduire leur nombre et de diminuer la surcharge sur Thanos Store Gateway.
Il y a également un composant appelé Thanos Ruler. Il exécute les rÚgles d'alerte de Prometheus et peut calculer les rÚgles d'enregistrement de Prometheus pour enregistrer à nouveau des données dans l'Object Storage. Cependant, il n'est pas recommandé d'utiliser ce composant, car il .
Voilà à quoi ressemble le schéma simple de Thanos.

Comparons maintenant avec le schéma de VictoriaMetrics.
VictoriaMetrics propose 2 versions : une version Single-node et une version cluster. La version Single-node fonctionne sur un seul ordinateur. Dans la version Single-node, il n'y a pas ces composants, juste un binaire unique. Ce binaire apparaĂźt dans la diapositive sous la forme de ce carrĂ©. Tout ce qui se trouve Ă l'intĂ©rieur du carrĂ© reprĂ©sente le contenu du fichier binaire de la version Single-node. Vous n'avez pas besoin de vous en soucier. Il vous suffit de lancer le binaire â et tout fonctionne.
La version cluster est plus complexe. Elle comprend trois composants diffĂ©rents : vmselect, vminsert et vmstorage. Leurs noms indiquent clairement leurs fonctions respectives. Le composant Insert reçoit des donnĂ©es dans diffĂ©rents formats : via l'API remote write de Prometheus, le protocole line d'Influx, le protocole Graphite et celui d'OpenTSDB. Le composant Insert les reçoit, les analyse et les rĂ©partit entre les composants de stockage existants oĂč les donnĂ©es sont ensuite conservĂ©es. Le composant Select, quant Ă lui, prend des requĂȘtes en PromQL. Il implĂ©mente , ainsi que l'API de requĂȘtes de Prometheus, et peut ĂȘtre utilisĂ© comme une alternative Ă Prometheus dans Grafana ou d'autres clients API de Prometheus. Select prend une requĂȘte promql, l'analyse, lit les donnĂ©es nĂ©cessaires pour effectuer cette requĂȘte Ă partir des nĆuds de stockage, les traite et renvoie la rĂ©ponse.

Comparons la complexité d'installation de Thanos et de VictoriaMetrics.

Commençons par Thanos. Avant de commencer à utiliser Thanos, il faut créer un bucket dans un stockage d'objets, tel que S3 ou GCS, afin que le Thanos Sidecar puisse y enregistrer des données.

Ensuite, pour chaque instance de Prometheus, il est nécessaire d'installer le Thanos Sidecar. Il ne faut pas oublier de désactiver la compression des données dans Prometheus. La compression des données compresse périodiquement les données dans le stockage local de Prometheus pour réduire la consommation de ressources.
Lorsque vous installez le Thanos Sidecar sur vos instances de Prometheus, vous devez dĂ©sactiver cette compression des donnĂ©es, car le Thanos Sidecar ne fonctionne pas correctement lorsque la compression des donnĂ©es est activĂ©e. Cela signifie que votre Prometheus commence Ă enregistrer des donnĂ©es par blocs de deux heures et cesse de fusionner ces blocs en plus gros. Par consĂ©quent, si vous effectuez des requĂȘtes dĂ©passant la durĂ©e des deux derniĂšres heures, elles ne fonctionneront pas aussi efficacement que si la compression des donnĂ©es Ă©tait activĂ©e.

C'est pourquoi Thanos recommande de réduire la durée de conservation des données dans le stockage local à 6-8 heures afin de diminuer cette surcharge de nombreux petits blocs.
AprÚs avoir installé le Thanos Sidecar, vous devez installer deux composants pour chaque bucket de stockage d'objets. Ce sont Thanos Compactor et Thanos Store Gateway.

AprÚs cela, il est nécessaire d'installer Thanos Query et de le configurer pour qu'il puisse se connecter à tous les Thanos Store Gateway disponibles, ainsi qu'à tous les Thanos Sidecar.
Il peut y avoir un petit problĂšme ici.

Vous devez configurer une connexion fiable et sécurisée de Thanos Query à ces composants. Si vous avez des Prometheus situés dans différents centres de données ou dans des VPC distincts, les connexions externes y sont interdites. Cependant, pour faire fonctionner Thanos Query, vous devez trouver un moyen d'établir cette connexion.
Si vous avez de nombreux centres de donnĂ©es, la fiabilitĂ© de l'ensemble du systĂšme en souffre. Thanos Query doit maintenir des connexions avec tous les Thanos Sidecar situĂ©s dans diffĂ©rents centres de donnĂ©es. Ă chaque requĂȘte entrante, il enverra des requĂȘtes Ă tous les Thanos Sidecar. Si la connexion est interrompue, vous obtiendrez soit un ensemble de donnĂ©es incomplet, soit un message disant que le « cluster ne fonctionne pas ».

Avec VictoriaMetrics, c'est un peu plus simple. Pour la version Ă nĆud unique, il suffit de lancer un binaire et tout fonctionne.

Pour la version en cluster, il suffit de lancer les trois types de composants mentionnĂ©s ci-dessus en quantitĂ©s nĂ©cessaires ou d'utiliser pour automatiser le lancement des composants dans Kubernetes. Nous prĂ©voyons Ă©galement de crĂ©er un opĂ©rateur Kubernetes. Le helm chart ne couvre pas certains cas et peut vous causer des problĂšmes. Par exemple, il permet de rĂ©duire le nombre de nĆuds de stockage, ce qui entraĂźne une perte de donnĂ©es.

AprĂšs avoir lancĂ© un binaire ou la version en cluster, il vous suffit d'ajouter Ă la configuration de Prometheus , afin qu'il commence Ă enregistrer les donnĂ©es Ă la fois dans le stockage local et dans le stockage distant. Comme vous l'avez remarquĂ©, cette configuration doit ĂȘtre beaucoup plus fiable par rapport Ă la configuration Thanos. Nous n'avons pas besoin de maintenir une connexion de VictoriaMetrics Ă tous les Prometheus, car les Prometheus se connectent eux-mĂȘmes Ă VictoriaMetrics et transmettent les donnĂ©es.

Examinons la prise en charge de Thanos et de VictoriaMetrics.

Thanos doit surveiller Sidecar pour s'assurer qu'il continue de charger les donnĂ©es dans l'Object Storage. Il peut arrĂȘter ce chargement en raison d'erreurs de tĂ©lĂ©chargement, par exemple si votre connexion rĂ©seau Ă l'Object Storage est temporairement interrompue ou si l'Object Storage devient temporairement indisponible. Ă ce moment-lĂ , Thanos Sidecar le remarquera, signalera l'erreur, peut se fermer et ensuite cesser de fonctionner. Si vous ne le surveillez pas, les donnĂ©es cesseront d'ĂȘtre transmises Ă l'Object Storage. Si le temps de rĂ©tention (6 Ă 8 heures recommandĂ©) s'Ă©coule, vous perdrez les donnĂ©es qui n'ont pas Ă©tĂ© transfĂ©rĂ©es dans l'Object Storage.

Les compresseurs Thanos peuvent cesser de fonctionner en raison de Les compresseurs prennent des données de l'Object Storage et les fusionnent en morceaux de données plus volumineux. Comme les compresseurs ne sont pas synchronisés avec les Sidecars, il peut se produire ce qui suit : le Sidecar n'a pas encore fini d'écrire un bloc, le Compactor décide que ce bloc est complÚtement écrit. Le Compactor commence à le lire. Il lit le bloc de maniÚre incomplÚte et cesse de fonctionner. Voir les détails. .

Le Store Gateway peut renvoyer des donnĂ©es inconsistantes en raison des courses entre le Compactor et les Sidecars. C'est le mĂȘme problĂšme puisque le Store Gateway n'est pas synchronisĂ© avec les Compactors et les Sidecars. Par consĂ©quent, des conditions de course peuvent se produire lorsque le Store Gateway ne voit pas certaines donnĂ©es, ou voit des donnĂ©es supplĂ©mentaires.

Le composant Query dans Thanos renvoie par dĂ©faut un rĂ©sultat partiel si certains Sidecars ou le Store Gateway ne sont pas disponibles Ă ce moment-lĂ . Vous obtiendrez une partie des donnĂ©es et ne saurez mĂȘme pas que vous n'avez pas reçu toutes les donnĂ©es. C'est ainsi qu'il fonctionne par dĂ©faut. Dans une situation similaire, VictoriaMetrics retourne les donnĂ©es marquĂ©es comme partielles.

Contrairement Ă Thanos, VictoriaMetrics perd rarement des donnĂ©es. MĂȘme si la connexion de Prometheus Ă VictoriaMetrics est interrompue, ce n'est pas un problĂšme, car Prometheus continue d'Ă©crire les nouvelles donnĂ©es entrantes dans le Write Ahead Log, dont la taille est de 2 heures. Si vous restaurez la connexion Ă VictoriaMetrics dans les deux heures, les donnĂ©es ne seront pas perdues. Prometheus .

Contrairement Ă Thanos, qui enregistre les donnĂ©es dans un stockage d'objets seulement aprĂšs deux heures, Prometheus rĂ©plique automatiquement les donnĂ©es via le protocole remote write dans un stockage distant, tel que VictoriaMetrics. Vous n'avez pas Ă craindre la perte de stockage local dans Prometheus. Si jamais il perd le stockage local, vous ne perdrez au pire que les derniĂšres secondes de donnĂ©es qui n'ont pas eu le temps d'ĂȘtre enregistrĂ©es dans le stockage distant.

Kubernetes gÚre automatiquement le cluster contrairement à Thanos. Tous les composants de Thanos sont difficiles à placer dans un seul cluster Kubernetes, à la différence des composants cluster de VictoriaMetrics.

La mise Ă jour vers une nouvelle version de VictoriaMetrics est trĂšs simple. Il suffit d'arrĂȘter VictoriaMetrics, de mettre Ă jour les binaires et de relancer. Lors de l'arrĂȘt via le signal SIGINT, tous les binaires de VictoriaMetrics effectuent un arrĂȘt en douceur. Ils sauvegardent correctement les donnĂ©es nĂ©cessaires et ferment correctement les connexions entrantes pour ne rien perdre. Vous ne perdrez donc rien lors de la mise Ă jour.

Il est trÚs simple d'étendre le cluster de VictoriaMetrics. Il suffit d'ajouter les composants nécessaires et de continuer à travailler.

à propos des écueils dans Thanos et VictoriaMetrics.

Thanos a plusieurs Ă©cueils. Prometheus doit conserver les donnĂ©es des deux derniĂšres heures. Si elles sont perdues, vous les perdez complĂštement, car elles n'ont pas encore eu le temps d'ĂȘtre enregistrĂ©es dans un stockage d'objets tel que S3.

Le composant Store Gateway et le composant compactor peuvent nécessiter beaucoup de mémoire pour travailler avec un grand stockage d'objets s'il y a de nombreux petits fichiers. Plus le nombre et le volume de fichiers sont élevés, plus la mémoire vive requise par Store Gateway et compactor pour stocker les méta-informations est importante. Thanos a de nombreux problÚmes concernant cela. .

Thanos se vantent qu'il peut se dĂ©velopper indĂ©finiment en fonction de vos Prometheus. En rĂ©alitĂ©, c'est faux. Toutes les requĂȘtes passent par le composant Query, qui doit interroger en parallĂšle tous les composants Store Gateway et tous les composants Sidecar, extraire les donnĂ©es et ensuite les prĂ©traiter. Ăvidemment, la vitesse des requĂȘtes est limitĂ©e par le maillon le plus faible, que ce soit le Store Gateway le plus lent ou le Sidecar le plus lent.
Ces composants peuvent ĂȘtre soutenus de maniĂšre inĂ©gale. Par exemple, vous avez un Prometheus qui collecte des millions de mĂ©triques par seconde. Et il y a un Prometheus qui en collecte des milliers par seconde. Prometheus, qui collecte des millions de mĂ©triques par seconde, sollicite beaucoup plus le serveur sur lequel il fonctionne. Par consĂ©quent, le Sidecar fonctionne plus lentement. Et en gĂ©nĂ©ral, tout fonctionne plus lentement lĂ -bas. Le composant de requĂȘte extraira les donnĂ©es trĂšs lentement. Par consĂ©quent, les performances de l'ensemble de votre cluster seront limitĂ©es par ce Sidecar lent.

Par dĂ©faut, Thanos fournit des donnĂ©es partielles si certains Sidecars ou Store Gateway ne sont pas disponibles. Par exemple, si vos Sidecars sont dispersĂ©s Ă travers le monde dans diffĂ©rents centres de donnĂ©es, la probabilitĂ© de coupure de connexion et d'indisponibilitĂ© des composants augmente considĂ©rablement. Par consĂ©quent, dans la plupart des cas, vous recevrez des donnĂ©es partielles, mĂȘme sans le savoir.

VictoriaMetrics a aussi ses piÚges. Le premier piÚge est une option qui limite la quantité de mémoire vive utilisée par le cache de VictoriaMetrics. Par défaut, elle est fixée à 60 % de la mémoire vive de la machine sur laquelle VictoriaMetrics est exécuté ou 60 % de la RAM du pod VictoriaMetrics dans Kubernetes.
Si vous modifiez incorrectement cette valeur, vous pouvez nuire aux performances de VictoriaMetrics. Par exemple, si vous définissez une valeur trop basse, les données peuvent ne plus entrer dans le cache de VictoriaMetrics. Cela entraßnera un travail supplémentaire pour le processeur et le disque. Si vous rendez cette option trop grande, cela augmente, d'une part, la probabilité que VictoriaMetrics rencontre une erreur de mémoire insuffisante, et, d'autre part, cela laissera trÚs peu de mémoire vive pour le cache de fichiers dans le systÚme d'exploitation. Or, VictoriaMetrics dépend de ce cache de fichiers pour ses performances. S'il est insuffisant, cela peut considérablement augmenter la charge sur le disque. Donc, conseil : ne modifiez pas ce paramÚtre sans nécessité absolue.

La deuxiĂšme option. C'est le retentionPeriod â pĂ©riode, qui est par dĂ©faut fixĂ©e Ă 1 mois. C'est le temps pendant lequel VictoriaMetrics conserve les donnĂ©es. Ă l'expiration de ce dĂ©lai, VictoriaMetrics supprime les donnĂ©es.
Beaucoup lancent VictoriaMetrics sans ce paramÚtre et enregistrent des données pendant un mois. Puis ils se demandent : pourquoi les données ont-elles disparu le mois précédent ? Parce que le retentionPeriod par défaut est de 1 mois. Il est donc crucial de connaßtre et d'établir un bon retentionPeriod.

Passons en revue les possibilités uniques.

Thanos possÚde une fonctionnalité appelée downsampling : des intervalles de 5 minutes et horaires, qui souvent . Si on recherche sur Google et qu'on regarde leurs problÚmes sur GitHub, il y a beaucoup d'issues liées à ce downsampling, qui ne fonctionne parfois pas comme prévu ou ne fonctionne pas comme les utilisateurs s'y attendent.

Thanos propose une dĂ©duplication des donnĂ©es pour les paires HA de Prometheus. Lorsque deux instances de Prometheus collectent les mĂȘmes mĂ©triques des mĂȘmes cibles, Thanos les stocke dans un Object Storage. Thanos dĂ©duplique correctement ces donnĂ©es, contrairement Ă VictoriaMetrics.

Thanos a un composant d'alerte, qui était sur le schéma de Thanos. Mais il .

L'avantage de Thanos est que le code de Thanos et de Prometheus est commun. Thanos et Prometheus ont Ă©tĂ© dĂ©veloppĂ©s par les mĂȘmes dĂ©veloppeurs. Lors des amĂ©liorations dans Thanos ou Prometheus, l'autre partie en bĂ©nĂ©ficie Ă©galement.

La principale fonctionnalité de VictoriaMetrics est MetricsQL. C'est une extension de VictoriaMetrics pour PromQL, dont j'ai parlé lors du dernier grand meetup sur le monitoring.

VictoriaMetrics supporte l'injection de données via de nombreux protocoles différents. VictoriaMetrics peut non seulement recevoir des données de Prometheus, mais aussi via les protocoles Influx, OpenTSDB et Graphite.

Les données de VictoriaMetrics occupent généralement beaucoup moins d'espace par rapport à Thanos et Prometheus.
Lorsque vous enregistrez des données réelles, les utilisateurs parlent d'une réduction de 2 à 5 fois de la taille des données sur disque par rapport à Prometheus et Thanos.

Un autre avantage de VictoriaMetrics est qu'elle est optimisée pour la vitesse.

Passons en revue le coût de l'infrastructure.

Un des avantages de Thanos est qu'il stocke les données dans des object storages, qui sont relativement bon marché.
Lorsqu'il s'agit de stocker des donnĂ©es dans un object storage, vous devez payer pour les opĂ©rations d'Ă©criture et de lecture des donnĂ©es (10 $ par million d'opĂ©rations). Lorsque vous Ă©crivez des donnĂ©es dans un object storage, vous en payez les frais d'hĂ©bergement pour le tĂ©lĂ©chargement des donnĂ©es sur Internet, si votre cluster n'est pas dans AWS â lĂ -bas, c'est gratuit. Lorsque vous lisez des donnĂ©es, vous payez entre 10 et 230 $ pour 1 To. Cela peut ĂȘtre significatif si vous demandez souvent des donnĂ©es historiques Ă partir du cluster Thanos.

Pour le cluster Thanos, il est nécessaire de payer pour des serveurs pour les composants Compact, Store Gateway et Query, qui nécessitent beaucoup de mémoire et de CPU pour de grands volumes de données.

Pour VictoriaMetrics, les coûts sont les suivants. Si les données sont stockées sur des disques GCE HDD, cela revient à 40 $ par To. Pour VictoriaMetrics, des disques HDD ordinaires suffisent, il n'est pas nécessaire d'utiliser des SSD, qui coûtent cinq fois plus cher. VictoriaMetrics est optimisée pour les HDD.

Pour VictoriaMetrics, des serveurs sont nécessaires pour les composants : soit Single-node, soit pour des composants en cluster, qui, contrairement aux composants Thanos, nécessitent beaucoup moins de CPU et de RAM, ce qui sera donc moins cher.

Exemples d'implémentation.

Un exemple d'implémentation de Thanos est Gitlab. Gitlab fonctionne entiÚrement sur Thanos. Mais tout n'est pas si simple. Si l'on regarde leurs , on peut voir qu'ils rencontrent constamment des : ils manquent de mémoire pour les composants Store Gateway ou Query. Ils doivent constamment augmenter la mémoire.
Cela augmente les coûts pour résoudre ces problÚmes.
Une deuxiĂšme implĂ©mentation, qui pourrait ĂȘtre plus rĂ©ussie, est l'entreprise Improbable, qui a commencĂ© le dĂ©veloppement de Thanos. Ils ont publiĂ© le code source de Thanos. Improbable est une entreprise spĂ©cialisĂ©e dans le dĂ©veloppement de moteurs de jeu.

Les exemples publics d'implémentation de VictoriaMetrics sont :
- wix.com, un constructeur de sites web
- Adidas implĂ©mente VictoriaMetrics et a mĂȘme fait une prĂ©sentation lors du dernier PromCon 2019
- TrafficStars â rĂ©seau publicitaire
- Seznam.cz â un moteur de recherche tchĂšque populaire.
Et ensuite, il y a des entreprises inconnues que je ne peux pas nommer pour le moment. Elles n'ont pas donné leur accord.
- Un grand développeur de jeux. Plus grand qu'Improbable.
- Un important développeur de logiciels graphiques.
- Une grande banque russe.
- Un fabricant européen d'éoliennes qui a réussi à tester VictoriaMetrics. Ce fabricant implémente VictoriaMetrics pour le suivi des données reçues des éoliennes avec une vitesse de 50 échantillons par seconde pour chaque capteur. Chaque éolienne a plusieurs centaines de capteurs. Ils ont plusieurs centaines d'éoliennes.
- Les lignes aériennes russes qui souhaitent implémenter VictoriaMetrics, mais n'y parviennent pas. Nous sommes en phase de contrat avec eux.
Conclusions.
VictoriaMetrics et Thanos résolvent des problÚmes similaires, mais de maniÚres différentes :
- Vue de requĂȘte globale
- mise à l'échelle horizontale
- rétention arbitraire

Merci.
Nous vous attendons sur notre .

Seuls les utilisateurs enregistrés peuvent participer au sondage. , s'il vous plaßt.
Quel est votre stockage Ă long terme pour Prometheus ?
35,3%Thanos6
0,0%Cortex0
0,0%M3DB0
41,2%VictoriaMetrics7
23,5%autre4
17 utilisateurs ont voté. 16 utilisateurs se sont abstenus.
Source : habr.com
