Este tema explica cómo integrar un Prometheus autogestionado con una instancia de ASM para el monitoreo de la malla. Se utiliza ack-prometheus-operator como ejemplo, un componente de código abierto para clústeres de ACK.
Requisitos previos
Debe contar con un clúster de ACK disponible. Para obtener más información, consulte Create an ACK managed cluster.
Debe contar con una instancia de ASM disponible. Para obtener más información, consulte Create an ASM instance. Además, las instancias de Prometheus y Grafana deben estar instaladas en el clúster de ACK. Para obtener más información, consulte Open source Prometheus monitoring.
Instalar ack-prometheus-operator
En este tema se utiliza ack-prometheus-operator como ejemplo, un componente de código abierto para clústeres de ACK. Si instala un Prometheus autogestionado en su clúster mediante otros métodos, debe agregar el contenido de additionalScrapeConfigs a las configuraciones de recolección de su instancia de Prometheus. Para obtener más información sobre estas configuraciones, consulte prometheus_scrape_config.
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, seleccione .
En la página Helm, busque ack-prometheus-operator y haga clic en Update dentro de la columna Actions.
-
En el panel Update Release, modifique el campo
additionalScrapeConfigsen el cuadro de texto YAML y, a continuación, haga clic en OK.El archivo YAML es extenso. Presione Ctrl+F para buscar el campo
additionalScrapeConfigs. A continuación se muestra el campoadditionalScrapeConfigsya modificado:additionalScrapeConfigs: # Scrape config for envoy stats - job_name: 'envoy-stats' metrics_path: /stats/prometheus kubernetes_sd_configs: - role: pod relabel_configs: - source_labels: [__meta_kubernetes_pod_container_port_name] action: keep regex: '.*-envoy-prom' - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port] action: replace regex: ([^:]+)(?::\d+)?;(\d+) replacement: $1:15090 target_label: __address__ - action: labeldrop regex: __meta_kubernetes_pod_label_(.+) - source_labels: [__meta_kubernetes_namespace] action: replace target_label: namespace - source_labels: [__meta_kubernetes_pod_name] action: replace target_label: pod_name
Generar métricas
Envíe solicitudes a los servicios del plano de datos. Este ejemplo utiliza la aplicación Bookinfo. Para obtener más información, consulte getting started. Acceda a la página de producto de la aplicación Bookinfo y actualícela varias veces para generar métricas. La aplicación de ejemplo funciona correctamente y genera métricas si la página muestra los detalles del libro The Comedy of Errors. Estos incluyen Book Details (como Type, Pages, Publisher, Language e ISBN) y Book Reviews (una reseña de cinco estrellas de Reviewer1 y otra de cuatro estrellas de Reviewer2).
Comprobar los resultados
Comprobar la recopilación de métricas de Envoy
Ejecute el siguiente comando. Si el comando devuelve métricas, significa que Envoy las está recopilando. Una respuesta vacía indica que la recopilación no funciona.
details=$(kubectl get pod -l app=details -o jsonpath={.items..metadata.name})
kubectl exec $details -c istio-proxy -- curl -s localhost:15090/stats/prometheus |grep istio
Consultar las métricas de la malla en Prometheus
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, seleccione .
En la página Services, busque el servicio de Prometheus y haga clic en su External IP.
En la página de Prometheus, introduzca
istio_requests_totalen el cuadro de entrada de expresiones y haga clic en Execute. La tabla de resultados puede incluir dos registros. El primero tiene unresponse_codede503(valor: 1), unsource_appdereviews, unsource_versiondev2y undestination_servicederatings.bookinfo.svc.cluster.local. El segundo presenta unresponse_codede200(valor: 19), unsource_appdereviews, unsource_versiondev2, undestination_appderatingsy undestination_versiondev1.
Consultar las métricas de la malla en Grafana
Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, seleccione .
En la página Services, busque Grafana y haga clic en su External IP.
En la página de Grafana, seleccione el Istio Workload Dashboard.
