Die Beispiele verwenden kube-prometheus-stack, aber das Vorgehen ist allgemein und gilt für jede Prometheus-Bereitstellung. Informationen zu den mesh-spezifischen Einschränkungen finden Sie unter Überwachungsübersicht.
Wie Vantage Metriken offenlegt
/metrics-text über den Container-Port 8080 bereit. Services, die diesen Endpunkt bereitstellen, tragen das Label abbyy.platform.metrics.text.endpoint: "1" und ordnen einen Service-Port (in der Regel 80) dem Container-Port mit dem Portnamen http zu. Prometheus erkennt diese Services über einen ServiceMonitor und liest ihre Metriken ab; für die Metrikenerfassung ist kein separater OpenTelemetry Collector erforderlich.
Das vollständige Konzept sowie die Einschränkungen des Service-Mesh finden Sie unter Überwachungsübersicht.
Voraussetzungen
- Eine laufende Vantage-Installation (Operator und Workloads sind bereitgestellt).
- Helm 3.
kubectl-Zugriff auf das Cluster.- Wenn KEDA aktiviert ist, eine Prometheus-Instanz, die unter
prometheus-operated.observability.svc.cluster.local:9090erreichbar ist.
Prometheus konfigurieren
otlp-write-receiver und übergeben Sie das Argument --web.enable-otlp-receiver an die Prometheus-Instanz.
Fügen Sie das Helm-Repository hinzu:
observability-values.yaml):
Prometheus zum Scraping von Vantage konfigurieren
vantage-selfhosted-Chart kann die erforderlichen ServiceMonitor-Objekte erstellen, um Vantage zu überwachen:
observability befindet sich auf oberster Ebene und darf nicht unter vantage verschachtelt werden.
Linkerd mTLS
observability, aktivieren Sie den Vantage-ServiceMonitor, und vergewissern Sie sich, dass jedes Vantage-Ziel den Status UP hat.
Wenn eine strikte Linkerd-Autorisierungsrichtlinie das Abfragen blockiert, verwenden Sie einen der folgenden Ansätze:
- Aktivieren Sie die Linkerd-Injektion für den Namespace
observability, damit Prometheus am Mesh teilnimmt. - Konfigurieren Sie
observability.prometheus.serviceMonitor.scheme: httpsund einetlsConfig, die auf die Client-Zertifikate verweist, die Prometheus durch Ihre Linkerd-Konfiguration zur Verfügung gestellt werden.
ScaledObject-Ressourcen verwendet werden. Siehe Autoskalierung mit KEDA für die Prüfabfragen und Readiness-Checks.
Istio mTLS
ingress.enabled auf true und ingress.type auf istio gesetzt ist), müssen Prometheus und der ServiceMonitor so konfiguriert werden, dass sie Endpoints über mTLS abfragen, da Prometheus Pod-IPs direkt verwendet und nicht den Service-Namen.
Konfigurieren Sie die Prometheus-Pods mit den folgenden Annotationen:
volume und volumeMount (Namen und Pfade sind anpassbar; in den folgenden Beispielen werden sie verwendet):
vantage-selfhosted-Chart, damit die ServiceMonitor(s) für die Verwendung dieser Zertifikate konfiguriert werden:
Prüfen, ob Metriken ankommen
http://localhost:9090/targets aufrufen, um den Scrape-Status der einzelnen Targets anzuzeigen.
Zugriff auf Grafana
http://localhost:3000. Die Standard-Anmeldedaten sind admin / das in der values-Datei festgelegte Kennwort. Prometheus ist als Datenquelle vorkonfiguriert.
Verfügbare Metriken
service, pod, namespace und otel_scope_name gekennzeichnet sind. Die vollständige Liste finden Sie unter Verfügbare Metriken.
OTLP-Ingestion
Die OTLP-Ingestion erfolgt pushbasiert und ist unabhängig vom oben beschriebenen scrape-basierten
ServiceMonitor-Flow. Verwenden Sie sie nur für Services, die OpenTelemetry-Metriken per Push senden, anstatt einen Scrape-Endpunkt bereitzustellen.--web.enable-otlp-receiver), kann jeder Service, der OTLP-Metriken per HTTP pusht, diese an Folgendes senden:
