6.2. Configuration de la collection de métriques pour les projets définis par l’utilisateur
Dans un projet défini par l’utilisateur, vous pouvez créer une ressource ServiceMonitor pour gratter des métriques à partir d’un point de terminaison de service. Cela suppose que votre application utilise une bibliothèque cliente 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 la façon dont ce service doit être surveillé.
6.2.1. Déploiement d’un service d’échantillonnage Copier lienLien copié sur presse-papiers!
Afin de tester la surveillance d’un service dans un projet défini par l’utilisateur, vous pouvez déployer un service d’échantillonnage.
Conditions préalables
- En tant qu’utilisateur, vous avez accès au cluster avec le rôle cluster-admin ou en tant qu’utilisateur avec des autorisations administratives pour l’espace de noms.
Procédure
- Créez un fichier YAML pour la configuration du service. Dans cet exemple, il est appelé promesseheus-example-app.yaml.
Ajoutez les détails de configuration de déploiement et de service suivants au fichier:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cette configuration déploie un service nommé prometheus-example-app dans le projet ns1 défini par l’utilisateur. Ce service expose la métrique de version personnalisée.
Appliquer la configuration au cluster:
oc apply -f prometheus-example-app.yaml
$ oc apply -f prometheus-example-app.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Il faut du temps pour déployer le service.
Il est possible de vérifier que le pod est en cours d’exécution:
oc -n ns1 get pod
$ oc -n ns1 get pod
Copy 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 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.2. Indiquer comment un service est surveillé Copier lienLien copié sur presse-papiers!
Afin d’utiliser les métriques exposées par votre service, vous devez configurer la surveillance OpenShift Dedicated pour gratter les métriques du point de terminaison /metrics. Il est possible de le faire à l’aide d’une définition de ressource personnalisée (CRD) de ServiceMonitor qui spécifie la façon dont un service doit être surveillé, ou un CRD PodMonitor qui spécifie comment un pod doit être surveillé. Le premier nécessite un objet Service, tandis que le second ne le fait pas, permettant à Prometheus de gratter directement les métriques à partir du point de terminaison métrique 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
- En tant qu’utilisateur, vous avez accès au cluster avec le rôle dédié-admin ou le rôle de suivi-édition.
Dans cet exemple, vous avez déployé le service d’échantillons d’applications de promesseheus-example dans le projet ns1.
NoteLe service d’échantillon d’applications prometheus-example ne prend pas en charge l’authentification TLS.
Procédure
- Créez un nouveau fichier de configuration YAML nommé example-app-service-monitor.yaml.
Ajouter une ressource ServiceMonitor au fichier YAML. L’exemple suivant crée un moniteur de service nommé prometheus-example-monitor pour gratter les métriques exposées par le service prometheus-example-app dans l’espace de noms ns1:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteLa ressource ServiceMonitor dans un espace de noms défini par l’utilisateur ne peut découvrir que des services dans le même espace de noms. Autrement dit, le champ namespaceSelector de la ressource ServiceMonitor est toujours ignoré.
Appliquer la configuration au cluster:
oc apply -f example-app-service-monitor.yaml
$ oc apply -f example-app-service-monitor.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Il faut du temps pour déployer la ressource ServiceMonitor.
Assurez-vous que la ressource ServiceMonitor est en cours d’exécution:
oc -n <namespace> get servicemonitor
$ oc -n <namespace> get servicemonitor
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME AGE prometheus-example-monitor 81m
NAME AGE prometheus-example-monitor 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2.3. Exemples de paramètres d’authentification du point de terminaison du service Copier lienLien copié sur presse-papiers!
En utilisant les définitions de ressources personnalisées (CRD) de ServiceMonitor et PodMonitor, vous pouvez configurer l’authentification des points de terminaison de service pour la surveillance des projets définis par l’utilisateur.
Les échantillons suivants montrent différents paramètres d’authentification pour une ressource ServiceMonitor. Chaque échantillon montre comment configurer un objet secret correspondant qui contient des informations d’authentification et d’autres paramètres pertinents.
6.2.3.1. Exemple d’authentification YAML avec un jeton porteur Copier lienLien copié sur presse-papiers!
L’échantillon suivant montre les paramètres de jetons au porteur pour un objet secret nommé example-porter-auth dans l’espace de noms ns1:
Exemple de jeton de porteur secret
- 1
- Indiquez un jeton d’authentification.
L’échantillon suivant montre les paramètres d’authentification de jetons au porteur pour un CRD ServiceMonitor. L’exemple utilise un objet secret nommé example-porter-auth:
Exemple de paramètres d’authentification de jetons au porteur
Il ne faut pas utiliser BearerTokenFile pour configurer le jeton porteur. Lorsque vous utilisez la configuration BearerTokenFile, la ressource ServiceMonitor est rejetée.
6.2.3.2. Échantillon YAML pour l’authentification de base Copier lienLien copié sur presse-papiers!
L’échantillon suivant montre les paramètres d’authentification de base d’un objet secret nommé example-basic-auth dans l’espace de noms ns1:
Exemple de secret d’authentification de base
L’échantillon suivant montre les paramètres d’authentification de base pour un CRD ServiceMonitor. L’exemple utilise un objet secret nommé example-basic-auth:
Exemple de paramètres d’authentification de base
6.2.3.3. Exemple d’authentification YAML avec OAuth 2.0 Copier lienLien copié sur presse-papiers!
L’échantillon suivant montre les paramètres OAuth 2.0 pour un objet secret nommé example-oauth2 dans l’espace de noms ns1:
Exemple OAuth 2.0 secret
L’échantillon suivant montre les paramètres d’authentification OAuth 2.0 pour un CRD ServiceMonitor. L’exemple utilise un objet secret nommé example-oauth2:
Exemple de paramètres d’authentification OAuth 2.0
- 1
- La clé qui contient l’identifiant OAuth 2.0 dans l’objet secret spécifié.
- 2 4
- Le nom de l’objet secret qui contient les informations d’identification OAuth 2.0.
- 3
- La clé qui contient le secret OAuth 2.0 dans l’objet secret spécifié.
- 5
- L’URL utilisée pour récupérer un jeton avec le clientId et clientSecret spécifiés.