|
Ce document a été traduit à l'aide d'une technologie de traduction automatique. Bien que nous nous efforcions de fournir des traductions exactes, nous ne fournissons aucune garantie quant à l'exhaustivité, l'exactitude ou la fiabilité du contenu traduit. En cas de divergence, la version originale anglaise prévaut et fait foi. |
Nettoyage de l’utilisation élevée de la mémoire
Chaque série temporelle dans Prometheus est identifiée de manière unique par son nom de métrique et des paires clé-valeur optionnelles appelées étiquettes.
Les étiquettes permettent de filtrer et d’agréger les données de séries temporelles, mais elles multiplient également la quantité de données que Prometheus collecte.
Chaque série temporelle a un ensemble défini d’étiquettes, et Prometheus génère une nouvelle série temporelle pour toutes les combinaisons uniques d’étiquettes. Si une métrique a deux étiquettes attachées, deux séries temporelles sont générées pour cette métrique. Modifier la valeur d’une étiquette, y compris ajouter ou supprimer une étiquette, créera une nouvelle série temporelle.
Prometheus est optimisé pour stocker des données indexées par séries. Il est conçu pour un nombre relativement constant de séries temporelles et un nombre relativement important d’échantillons qui doivent être collectés auprès des exportateurs au fil du temps.
Inversement, Prometheus n’est pas optimisé pour accueillir un nombre de séries temporelles en rapide évolution. Pour cette raison, de grandes poussées d’utilisation de la mémoire peuvent se produire lorsque la surveillance est installée sur des clusters où de nombreuses ressources sont créées et détruites, en particulier sur des clusters multi-locataires.
Réduction des poussées de mémoire
Pour réduire la consommation de mémoire, Prometheus peut être configuré pour stocker moins de séries temporelles, en collectant moins de métriques ou en attachant moins d’étiquettes aux séries temporelles. Pour voir quelles séries utilisent le plus de mémoire, vous pouvez consulter la page d’état de la TSDB (base de données de séries temporelles) dans l’interface utilisateur de Prometheus.
Les solutions Prometheus distribuées telles que Thanos et Cortex utilisent une architecture alternative dans laquelle plusieurs petites instances de Prometheus sont déployées. Dans le cas de Thanos, les métriques de chaque Prometheus sont agrégées dans le déploiement Thanos, puis ces métriques sont exportées vers un stockage persistant, tel que S3. Cette architecture plus robuste évite de surcharger une seule instance de Prometheus avec trop de séries temporelles, tout en préservant la capacité d’interroger les métriques à un niveau global.