Passer au contenu principal
Ce guide explique comment configurer un Prometheus autogéré pour collecter les métriques de Vantage 3.0 auto-hébergé dans n’importe quel environnement. Sur AKS, où Azure Monitor Workspace et Azure Managed Grafana sont disponibles, consultez Azure Managed Monitoring pour un déploiement en service géré reposant sur la même approche.
Les exemples utilisent kube-prometheus-stack, mais la méthode est générique et s’applique à tout déploiement Prometheus. Pour connaître les contraintes propres au maillage, consultez Vue d’ensemble de la supervision.

Comment Vantage publie les métriques

Les pods d’application Vantage sont instrumentés avec des SDK OpenTelemetry et exposent des métriques au format Prometheus sur /metrics-text, sur le port 8080 du conteneur. Les services qui exposent ce point de terminaison portent le label abbyy.platform.metrics.text.endpoint: "1" et mettent en correspondance un port de service (généralement 80) avec le port du conteneur portant le nom http. Prometheus découvre ces services et en collecte les métriques via un ServiceMonitor ; aucun OpenTelemetry Collector distinct n’est requis pour la collecte des métriques. Pour une vue complète du concept et des contraintes du maillage de services, voir Vue d’ensemble de la supervision.

Prérequis

  • Une installation Vantage opérationnelle (opérateur et charges de travail déployés).
  • Helm 3.
  • Un accès kubectl au cluster.
  • Lorsque KEDA est activé, une instance Prometheus joignable à l’adresse prometheus-operated.observability.svc.cluster.local:9090.

Configurer Prometheus

Si vous prévoyez d’ingérer des métriques OTLP (voir ingestion OTLP), activez la fonctionnalité otlp-write-receiver et passez l’argument --web.enable-otlp-receiver à l’instance Prometheus. Ajoutez le dépôt Helm :
Créez un fichier de valeurs (observability-values.yaml) :
Installation :
Vérifiez que les pods sont bien démarrés :
Vous devriez voir Prometheus, Grafana, l’operator, kube-state-metrics et les pods node-exporter en cours d’exécution. Node-exporter s’exécute sous forme de DaemonSet ; il est normal que des pods soient en attente si le nombre de nœuds est encore en cours d’augmentation.

Configurer Prometheus pour collecter les métriques de Vantage

Le chart vantage-selfhosted peut créer les objets ServiceMonitor nécessaires pour surveiller Vantage :
Consultez la documentation du chart pour connaître les autres options. La clé observability se trouve au niveau racine et ne doit pas être placée sous vantage.

mTLS Linkerd

Avec la politique permissive par défaut de Linkerd, Prometheus peut normalement collecter les métriques des points de terminaison Vantage via le proxy Linkerd en clair. Installez Prometheus dans l’espace de noms observability, activez le ServiceMonitor de Vantage et vérifiez que chaque cible Vantage est UP. Si une politique d’autorisation stricte de Linkerd bloque la collecte, utilisez l’une des approches suivantes :
  1. Activez l’injection Linkerd pour l’espace de noms observability afin que Prometheus participe au maillage.
  2. Configurez observability.prometheus.serviceMonitor.scheme: https ainsi qu’un tlsConfig faisant référence aux certificats clients mis à la disposition de Prometheus par votre configuration Linkerd.
N’activez pas KEDA tant que Prometheus ne renvoie pas de valeurs à jour pour les métriques Vantage utilisées par les ressources ScaledObject. Voir Autoscaling avec KEDA pour les requêtes d’inspection et les vérifications de disponibilité.

Istio mTLS

Lorsque Vantage est déployé dans un maillage Istio avec mTLS en mode STRICT (par défaut lorsque ingress.enabled est true et ingress.type est istio), Prometheus et le ServiceMonitor doivent être configurés pour collecter les métriques des points de terminaison via mTLS, car Prometheus utilise directement les adresses IP des pods plutôt que le nom du service. Configurez le ou les pods Prometheus avec les annotations suivantes :
et les volume et volumeMount suivants (les noms et les chemins sont personnalisables ; les exemples ci-dessous les utilisent) :
Avec kube-prometheus-stack, cela peut se faire avec les valeurs suivantes :
Vous pouvez également consulter la documentation officielle d’Istio. Ensuite, installez le chart vantage-selfhosted afin que le(s) ServiceMonitor soient configuré(s) pour utiliser ces certificats :

Vérifiez que les métriques remontent

Effectuez une redirection de port vers l’UI de Prometheus :
Vérifiez que les cibles Vantage sont détectées et opérationnelles :
Interrogez une métrique de l’application Vantage :
Un résultat non nul confirme que les métriques sont bien collectées. Vous pouvez également consulter les cibles à l’adresse http://localhost:9090/targets pour voir le statut de collecte de chacune.

Accéder à Grafana

Ouvrez http://localhost:3000. Les identifiants par défaut sont admin / le mot de passe défini dans le fichier de valeurs. Prometheus est préconfiguré en tant que source de données.

Métriques disponibles

Les applications Vantage exposent, via le SDK OpenTelemetry, des métriques de processus, de client/serveur HTTP et de la plateforme ABBYY, toutes associées à service, pod, namespace et otel_scope_name. Voir Métriques disponibles pour consulter le catalogue complet.

Ingestion OTLP

L’ingestion OTLP fonctionne en mode push et est indépendante du flow ServiceMonitor ci-dessus, qui repose sur le scrape. Utilisez-la uniquement pour les services qui envoient des métriques OpenTelemetry au lieu d’exposer un point de terminaison de scrape.
Lorsque Prometheus est configuré avec le récepteur OTLP activé (--web.enable-otlp-receiver), tout service qui envoie des métriques OTLP via HTTP peut les envoyer à :