7.11. Enquêter sur les problèmes de surveillance
OpenShift Container Platform inclut une pile de surveillance préconfigurée, préinstallée et auto-actualisée qui fournit une surveillance pour les composants de base de la plateforme. Dans OpenShift Container Platform 4.12, les administrateurs de clusters peuvent optionnellement activer la surveillance pour des projets définis par l'utilisateur.
Vous pouvez suivre ces procédures si vos propres mesures ne sont pas disponibles ou si Prometheus consomme beaucoup d'espace disque.
7.11.2. Déterminer pourquoi Prometheus consomme beaucoup d'espace disque
Les développeurs peuvent créer des étiquettes pour définir les attributs des métriques sous la forme de paires clé-valeur. Le nombre de paires clé-valeur potentielles correspond au nombre de valeurs possibles pour un attribut. Un attribut dont le nombre de valeurs potentielles est illimité est appelé attribut non lié. Par exemple, un attribut customer_id
est non consolidé car il possède un nombre infini de valeurs possibles.
Chaque paire clé-valeur attribuée a une série chronologique unique. L'utilisation de nombreux attributs non liés dans les étiquettes peut entraîner une augmentation exponentielle du nombre de séries temporelles créées. Cela peut avoir un impact sur les performances de Prometheus et consommer beaucoup d'espace disque.
Vous pouvez utiliser les mesures suivantes lorsque Prometheus consomme beaucoup de disque :
- Check the number of scrape samples qui sont collectés.
- Check the time series database (TSDB) status using the Prometheus HTTP API pour plus d'informations sur les étiquettes qui créent le plus de séries temporelles. Cette opération nécessite des privilèges d'administrateur de cluster.
Reduce the number of unique time series that are created en réduisant le nombre d'attributs non liés attribués aux mesures définies par l'utilisateur.
NoteL'utilisation d'attributs liés à un ensemble limité de valeurs possibles réduit le nombre de combinaisons potentielles de paires clé-valeur.
- Enforce limits on the number of samples that can be scraped dans des projets définis par l'utilisateur. Cette opération nécessite des privilèges d'administrateur de cluster.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin
. -
Vous avez installé l'OpenShift CLI (
oc
).
Procédure
-
Dans la perspective Administrator, naviguez vers Observe
Metrics. Exécutez la requête Prometheus Query Language (PromQL) suivante dans le champ Expression. Cette requête renvoie les dix métriques qui ont le plus grand nombre d'échantillons de scrape :
topk(10,count by (job)({__name__=~".+"}))
Étudier le nombre de valeurs d'étiquettes non liées attribuées à des mesures dont le nombre d'échantillons raclés est plus élevé que prévu.
- If the metrics relate to a user-defined projectdans le cas d'une charge de travail, passez en revue les paires clé-valeur de métriques attribuées à votre charge de travail. Celles-ci sont mises en œuvre par les bibliothèques client Prometheus au niveau de l'application. Essayez de limiter le nombre d'attributs non liés référencés dans vos étiquettes.
- If the metrics relate to a core OpenShift Container Platform projectcréez un dossier d'assistance Red Hat sur le portail client Red Hat.
Examinez l'état de la TSDB à l'aide de l'API HTTP Prometheus en exécutant les commandes suivantes en tant qu'administrateur de cluster :
$ oc login -u <nom d'utilisateur> -p <mot de passe>
$ host=$(oc -n openshift-monitoring get route prometheus-k8s -ojsonpath={.spec.host})
$ token=$(oc whoami -t)
$ curl -H "Authorization: Bearer $token" -k "https://$host/api/v1/status/tsdb"
Exemple de sortie
"status": "success",
Ressources supplémentaires
- Pour plus d'informations sur la définition d'une limite d'échantillonnage pour les projets définis par l'utilisateur et la création des règles d'alerte correspondantes, voir Définir une limite d'échantillonnage pour les projets définis par l'utilisateur