2.12. Contrôler l'impact des attributs de métriques non liés dans les projets définis par l'utilisateur
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 possède une série temporelle unique. L'utilisation de nombreux attributs non liés dans les étiquettes peut créer un nombre exponentiel de séries temporelles, ce qui peut avoir un impact sur les performances de Prometheus et l'espace disque disponible.
Les administrateurs de cluster peuvent utiliser les mesures suivantes pour contrôler l'impact des attributs de métriques non liés dans les projets définis par l'utilisateur :
- Limiter le nombre d'échantillons qui peuvent être acceptés pour chaque analyse de la cible dans les projets définis par l'utilisateur
- Limiter le nombre d'étiquettes scannées, la longueur des noms d'étiquettes et la longueur des valeurs d'étiquettes.
- Créer des alertes qui se déclenchent lorsqu'un seuil d'échantillonnage est atteint ou lorsque la cible ne peut pas être scrappée
Pour éviter les problèmes liés à l'ajout de nombreux attributs non liés, limitez le nombre d'échantillons, de noms d'étiquettes et d'attributs non liés que vous définissez pour les métriques. Réduisez également le nombre de combinaisons potentielles de paires clé-valeur en utilisant des attributs liés à un ensemble limité de valeurs possibles.
2.12.1. Définition des limites d'échantillons et d'étiquettes pour les projets définis par l'utilisateur Copier lienLien copié sur presse-papiers!
Vous pouvez limiter le nombre d'échantillons qui peuvent être acceptés par balayage cible dans des projets définis par l'utilisateur. Vous pouvez également limiter le nombre d'étiquettes scrappées, la longueur des noms d'étiquettes et la longueur des valeurs d'étiquettes.
Si vous définissez des limites d'échantillons ou d'étiquettes, aucune autre donnée d'échantillon n'est ingérée pour ce balayage cible une fois la limite atteinte.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin, ou en tant qu'utilisateur ayant le rôleuser-workload-monitoring-config-editdans le projetopenshift-user-workload-monitoring. - Vous avez activé la surveillance pour les projets définis par l'utilisateur.
-
Vous avez installé l'OpenShift CLI (
oc).
Procédure
Modifiez l'objet
user-workload-monitoring-configConfigMapdans le projetopenshift-user-workload-monitoring:oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ajoutez la configuration
enforcedSampleLimitàdata/config.yamlpour limiter le nombre d'échantillons qui peuvent être acceptés par balayage de cible dans les projets définis par l'utilisateur :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Une valeur est requise si ce paramètre est spécifié. Cet exemple
enforcedSampleLimitlimite à 50 000 le nombre d'échantillons pouvant être acceptés par target scrape dans les projets définis par l'utilisateur.
Ajoutez les configurations
enforcedLabelLimit,enforcedLabelNameLengthLimit, etenforcedLabelValueLengthLimitàdata/config.yamlpour limiter le nombre d'étiquettes scrappées, la longueur des noms d'étiquettes et la longueur des valeurs d'étiquettes dans les projets définis par l'utilisateur :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indique le nombre maximal d'étiquettes par balayage. La valeur par défaut est
0, ce qui signifie qu'il n'y a pas de limite. - 2
- Spécifie la longueur maximale en caractères d'un nom d'étiquette. La valeur par défaut est
0, ce qui signifie qu'il n'y a pas de limite. - 3
- Spécifie la longueur maximale en caractères d'une valeur d'étiquette. La valeur par défaut est
0, ce qui signifie qu'il n'y a pas de limite.
Enregistrez le fichier pour appliquer les modifications. Les limites sont appliquées automatiquement.
NoteLes configurations appliquées à l'objet
user-workload-monitoring-configConfigMapne sont pas activées à moins qu'un administrateur de cluster n'ait activé la surveillance pour les projets définis par l'utilisateur.AvertissementLorsque les modifications sont enregistrées dans l'objet
user-workload-monitoring-configConfigMap, les pods et autres ressources du projetopenshift-user-workload-monitoringpeuvent être redéployés. Les processus de surveillance en cours dans ce projet peuvent également être redémarrés.
2.12.2. Création d'alertes d'échantillons scrape Copier lienLien copié sur presse-papiers!
Vous pouvez créer des alertes qui vous préviennent lorsque :
-
La cible ne peut pas être scannée ou n'est pas disponible pour la durée spécifiée
for -
Un seuil d'échantillonnage par raclage est atteint ou dépassé pendant la durée spécifiée
for
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-admin, ou en tant qu'utilisateur ayant le rôleuser-workload-monitoring-config-editdans le projetopenshift-user-workload-monitoring. - Vous avez activé la surveillance pour les projets définis par l'utilisateur.
-
Vous avez créé l'objet
user-workload-monitoring-configConfigMap. -
Vous avez limité le nombre d'échantillons qui peuvent être acceptés par target scrape dans les projets définis par l'utilisateur, en utilisant
enforcedSampleLimit. -
Vous avez installé l'OpenShift CLI (
oc).
Procédure
Créez un fichier YAML avec des alertes qui vous informent lorsque les cibles sont en panne et lorsque la limite d'échantillons imposée approche. Le fichier de cet exemple s'appelle
monitoring-stack-alerts.yaml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Définit le nom de la règle d'alerte.
- 2
- Spécifie le projet défini par l'utilisateur dans lequel la règle d'alerte sera déployée.
- 3
- L'alerte
TargetDownest déclenchée si la cible ne peut pas être grattée ou si elle n'est pas disponible pendant la durée de l'alertefor. - 4
- Le message qui sera affiché lorsque l'alerte
TargetDownse déclenchera. - 5
- Les conditions de l'alerte
TargetDowndoivent être vraies pendant cette durée avant que l'alerte ne soit déclenchée. - 6
- Définit la gravité de l'alerte
TargetDown. - 7
- L'alerte
ApproachingEnforcedSamplesLimitest déclenchée lorsque le seuil d'échantillonnage défini est atteint ou dépassé pendant la durée spécifiéefor. - 8
- Le message qui sera affiché lorsque l'alerte
ApproachingEnforcedSamplesLimitse déclenchera. - 9
- Le seuil de l'alerte
ApproachingEnforcedSamplesLimit. Dans cet exemple, l'alerte est déclenchée lorsque le nombre d'échantillons par balayage cible a dépassé 80 % de la limite d'échantillons imposée de50000. La durée defordoit également s'être écoulée avant que l'alerte ne soit déclenchée. La valeur<number>de l'expressionscrape_samples_scraped/<number> > <threshold>doit correspondre à la valeurenforcedSampleLimitdéfinie dans l'objetuser-workload-monitoring-configConfigMap. - 10
- Les conditions de l'alerte
ApproachingEnforcedSamplesLimitdoivent être vraies pendant cette durée avant que l'alerte ne soit déclenchée. - 11
- Définit la gravité de l'alerte
ApproachingEnforcedSamplesLimit.
Appliquer la configuration au projet défini par l'utilisateur :
oc apply -f monitoring-stack-alerts.yaml
$ oc apply -f monitoring-stack-alerts.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow