The examples use kube-prometheus-stack, but the approach is generic and applies to any Prometheus deployment. For the mesh-specific constraints, see Monitoring Overview.
How Vantage exposes metrics
Vantage application pods are instrumented with OpenTelemetry SDKs and expose Prometheus-format metrics on/metrics-text at container port 8080. Services that expose this endpoint carry the label abbyy.platform.metrics.text.endpoint: "1" and map a service port (typically 80) to the container port with the port name http. Prometheus discovers and scrapes these services via a ServiceMonitor; no separate OpenTelemetry Collector is required for metrics collection.
For the full concept and service-mesh constraints, see Monitoring Overview.
Prerequisites
- A running Vantage installation (operator and workloads deployed).
- Helm 3.
kubectlaccess to the cluster.- When KEDA is enabled, a Prometheus instance reachable as
prometheus-operated.observability.svc.cluster.local:9090.
Configure Prometheus
If you plan to ingest OTLP metrics (see OTLP ingestion), enable theotlp-write-receiver feature and pass the --web.enable-otlp-receiver argument to the Prometheus instance.
Add the Helm repo:
observability-values.yaml):
Configure Prometheus to scrape Vantage
Thevantage-selfhosted chart can create the requisite ServiceMonitor objects to monitor Vantage:
observability key is top-level and must not be nested under vantage.
Linkerd mTLS
With Linkerd’s default permissive policy, Prometheus can normally scrape the Linkerd-proxied Vantage endpoints over plaintext. Install Prometheus in theobservability namespace, enable the Vantage ServiceMonitor, and confirm every Vantage target is UP.
If a strict Linkerd authorization policy blocks the scrape, use one of these approaches:
- Enable Linkerd injection for the
observabilitynamespace so Prometheus participates in the mesh. - Configure
observability.prometheus.serviceMonitor.scheme: httpsand atlsConfigthat references the client certificates made available to Prometheus by your Linkerd configuration.
ScaledObject resources. See Autoscaling with KEDA for the inspection queries and readiness checks.
Istio mTLS
When Vantage is placed in an Istio mesh using STRICT mTLS (the default wheningress.enabled is true and ingress.type is istio), Prometheus and the ServiceMonitor must be configured to scrape endpoints over mTLS, because Prometheus uses pod IPs directly rather than the service name.
Configure the Prometheus pod(s) with the following annotations:
volume and volumeMount (names and paths are customizable; the examples below use these):
vantage-selfhosted chart so the ServiceMonitor(s) are configured to use these certificates:
Verify metrics are flowing
Port-forward to the Prometheus UI:http://localhost:9090/targets to see individual scrape status.
Access Grafana
http://localhost:3000. Default credentials are admin / the password set in the values file. Prometheus is pre-configured as a data source.
Available metrics
Vantage applications expose process, HTTP client/server, and ABBYY platform metrics through the OpenTelemetry SDK, all labeled withservice, pod, namespace, and otel_scope_name. See Available metrics for the full catalog.
OTLP ingestion
OTLP ingestion is push-based and independent of the scrape-based
ServiceMonitor flow above. Use it only for services that push OpenTelemetry metrics rather than exposing a scrape endpoint.--web.enable-otlp-receiver), any service that pushes OTLP metrics via HTTP can send them to:
