8.2. Mise en place de la collecte de métriques pour des projets définis par l'utilisateur
Vous pouvez créer une ressource ServiceMonitor pour extraire des métriques d'un point d'extrémité de service dans un projet défini par l'utilisateur. Cela suppose que votre application utilise une bibliothèque client Prometheus pour exposer les métriques au nom canonique /metrics.
Cette section décrit comment déployer un exemple de service dans un projet défini par l'utilisateur, puis créer une ressource ServiceMonitor qui définit comment ce service doit être contrôlé.
8.2.1. Déploiement d'un exemple de service Copier lienLien copié sur presse-papiers!
Pour tester la surveillance d'un service dans un projet défini par l'utilisateur, vous pouvez déployer un exemple de service.
Procédure
-
Créez un fichier YAML pour la configuration du service. Dans cet exemple, il s'appelle
prometheus-example-app.yaml. Ajoutez au fichier les détails de déploiement et de configuration des services suivants :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette configuration déploie un service nommé
prometheus-example-appdans le projetns1défini par l'utilisateur. Ce service expose la métrique personnaliséeversion.Appliquer la configuration au cluster :
oc apply -f prometheus-example-app.yaml
$ oc apply -f prometheus-example-app.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Le déploiement du service prend un certain temps.
Vous pouvez vérifier que le pod fonctionne :
oc -n ns1 get pod
$ oc -n ns1 get podCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY STATUS RESTARTS AGE prometheus-example-app-7857545cb7-sbgwq 1/1 Running 0 81m
NAME READY STATUS RESTARTS AGE prometheus-example-app-7857545cb7-sbgwq 1/1 Running 0 81mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.2.2. Spécifier comment un service est contrôlé Copier lienLien copié sur presse-papiers!
Pour utiliser les métriques exposées par votre service, vous devez configurer la surveillance de OpenShift Container Platform pour récupérer les métriques à partir du point de terminaison /metrics. Vous pouvez le faire en utilisant une définition de ressource personnalisée (CRD) ServiceMonitor qui spécifie comment un service doit être surveillé, ou une CRD PodMonitor qui spécifie comment un pod doit être surveillé. La première nécessite un objet Service, tandis que la seconde n'en nécessite pas, ce qui permet à Prometheus de récupérer directement des métriques à partir du point de terminaison de métriques exposé par un pod.
Cette procédure vous montre comment créer une ressource ServiceMonitor pour un service dans un projet défini par l'utilisateur.
Conditions préalables
-
Vous avez accès au cluster en tant qu'utilisateur ayant le rôle
cluster-adminoumonitoring-edit. - Vous avez activé la surveillance pour les projets définis par l'utilisateur.
Pour cet exemple, vous avez déployé le service exemple
prometheus-example-appdans le projetns1.NoteL'exemple de service
prometheus-example-appne prend pas en charge l'authentification TLS.
Procédure
-
Créez un fichier YAML pour la configuration de la ressource
ServiceMonitor. Dans cet exemple, le fichier s'appelleexample-app-service-monitor.yaml. Ajoutez les détails de configuration de la ressource
ServiceMonitorsuivants :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ceci définit une ressource
ServiceMonitorqui récupère les métriques exposées par le service d'échantillonnageprometheus-example-app, qui inclut la métriqueversion.NoteUne ressource
ServiceMonitordans un espace de noms défini par l'utilisateur ne peut découvrir que des services dans le même espace de noms. En d'autres termes, le champnamespaceSelectorde la ressourceServiceMonitorest toujours ignoré.Appliquer la configuration au cluster :
oc apply -f example-app-service-monitor.yaml
$ oc apply -f example-app-service-monitor.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Le déploiement de la ressource
ServiceMonitorprend un certain temps.Vous pouvez vérifier que la ressource
ServiceMonitorest en cours d'exécution :oc -n ns1 get servicemonitor
$ oc -n ns1 get servicemonitorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME AGE prometheus-example-monitor 81m
NAME AGE prometheus-example-monitor 81mCopy to Clipboard Copied! Toggle word wrap Toggle overflow