Los ejemplos usan kube-prometheus-stack, pero el enfoque es genérico y se aplica a cualquier implementación de Prometheus. Para conocer las restricciones específicas de cada mesh, consulte Monitoring Overview.
Cómo Vantage expone métricas
/metrics-text, en el puerto 8080 del contenedor. Los servicios que exponen este endpoint llevan la etiqueta abbyy.platform.metrics.text.endpoint: "1" y asignan un puerto del servicio (normalmente, el 80) al puerto del contenedor con el nombre de puerto http. Prometheus detecta estos servicios y recopila sus métricas mediante un ServiceMonitor; no se necesita un OpenTelemetry Collector independiente para la recopilación de métricas.
Para consultar el concepto completo y las restricciones de la malla de servicios, consulte Monitoring Overview.
Requisitos previos
- Una instalación de Vantage en funcionamiento (operador y cargas de trabajo desplegados).
- Helm 3.
- Acceso al clúster mediante
kubectl. - Si KEDA está habilitado, una instancia de Prometheus accesible en
prometheus-operated.observability.svc.cluster.local:9090.
Configurar Prometheus
otlp-write-receiver y pase el argumento --web.enable-otlp-receiver a la instancia de Prometheus.
Añada el repositorio de Helm:
observability-values.yaml):
Configurar Prometheus para recopilar métricas de Vantage
vantage-selfhosted puede crear los objetos ServiceMonitor necesarios para supervisar Vantage:
observability está en el nivel superior y no debe anidarse en vantage.
mTLS de Linkerd
observability, habilite el ServiceMonitor de Vantage y confirme que todos los destinos de Vantage aparezcan como UP.
Si una política estricta de autorización de Linkerd bloquea la recopilación, use uno de estos enfoques:
- Habilite la inyección de Linkerd para el espacio de nombres
observabilitypara que Prometheus participe en la malla de servicio. - Configure
observability.prometheus.serviceMonitor.scheme: httpsy untlsConfigque haga referencia a los certificados de cliente que su configuración de Linkerd pone a disposición de Prometheus.
ScaledObject. Consulte Escalado automático con KEDA para ver las consultas de inspección y las comprobaciones de preparación.
Istio mTLS
ingress.enabled es true y ingress.type es istio), Prometheus y ServiceMonitor deben configurarse para recopilar métricas de los endpoints mediante mTLS, porque Prometheus usa directamente las IP de los pods en lugar del nombre del servicio.
Configure los pods de Prometheus con las siguientes anotaciones:
volume y volumeMount (los nombres y las rutas se pueden personalizar; en los ejemplos a continuación se usan estos):
vantage-selfhosted para configurar los ServiceMonitor de modo que usen estos certificados:
Compruebe que las métricas se estén enviando
http://localhost:9090/targets para ver el estado de recopilación de cada uno.
Acceso a Grafana
http://localhost:3000. Las credenciales predeterminadas son admin / la contraseña establecida en el archivo de valores. Prometheus está preconfigurado como fuente de datos.
Métricas disponibles
service, pod, namespace y otel_scope_name. Consulte Métricas disponibles para ver el catálogo completo.
Ingestión de OTLP
La ingestión de OTLP se realiza mediante push y es independiente del flujo
ServiceMonitor basado en scrape descrito arriba. Úsela solo para servicios que envían métricas de OpenTelemetry por push, en lugar de exponer un endpoint de scrape.--web.enable-otlp-receiver), cualquier servicio que envíe métricas OTLP a través de HTTP puede enviarlas a:
