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
kubectlau 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 :
observability-values.yaml) :
Configurer Prometheus pour collecter les métriques de Vantage
Le chartvantage-selfhosted peut créer les objets ServiceMonitor nécessaires pour surveiller Vantage :
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 nomsobservability, 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 :
- Activez l’injection Linkerd pour l’espace de noms
observabilityafin que Prometheus participe au maillage. - Configurez
observability.prometheus.serviceMonitor.scheme: httpsainsi qu’untlsConfigfaisant référence aux certificats clients mis à la disposition de Prometheus par votre configuration Linkerd.
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 lorsqueingress.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 :
volume et volumeMount suivants (les noms et les chemins sont personnalisables ; les exemples ci-dessous les utilisent) :
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 :http://localhost:9090/targets pour voir le statut de collecte de chacune.
Accéder à Grafana
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.--web.enable-otlp-receiver), tout service qui envoie des métriques OTLP via HTTP peut les envoyer à :
