Managed Service for Prometheus proporciona un endpoint Remote Read estándar. Agregue este endpoint a la configuración de su Prometheus autogestionado para consultar las métricas de su instancia en la nube. En este tema se describe cómo configurar un servidor Prometheus autogestionado para leer métricas de una instancia de Managed Service for Prometheus.
El modo Remote Read de Prometheus transfiere un gran volumen de datos crudos de series temporales al motor local de Prometheus para su procesamiento, por lo que presenta múltiples limitaciones de uso. Por esta razón, se recomienda utilizar directamente el protocolo de consulta de la API HTTP que ofrece Managed Service for Prometheus.
Managed Service for Prometheus incluye una API de consulta completa para Prometheus. Este servicio procesa las consultas en el servidor y devuelve únicamente los resultados finales, lo que ofrece un rendimiento varias veces superior al de Remote Read. La API le permite enviar consultas directamente por HTTP y conectar herramientas como Grafana sin necesidad de un motor local de Prometheus. Para más detalles sobre la configuración, consulte Connect Grafana or self-managed applications to Prometheus data by using an HTTP API endpoint.
Entre las limitaciones del enfoque Remote Read se incluyen:
Costos elevados de infraestructura para mantener un motor de cómputo local de Prometheus.
Alta latencia de extremo a extremo, ya que cada consulta requiere transferir grandes volúmenes de datos crudos por la red.
service limits estrictos que se superan con facilidad al consultar conjuntos de datos grandes.
Límites
El endpoint Remote Read no es compatible con HTTP/2.
Requisitos previos
Cree una instancia de Managed Service for Prometheus. Para obtener más información, consulte Create an instance.
(Opcional) Paso 1: Otorgar permisos de lectura y escritura de CMS a un usuario de RAM
Si su instancia de Prometheus de Alibaba Cloud se creó con una cuenta de Alibaba Cloud y necesita usar el AccessKey ID y el AccessKey Secret de un usuario de RAM para operaciones remotas de lectura y escritura, primero debe otorgar a ese usuario de RAM los permisos de lectura y escritura para CMS.
Inicie sesión en la consola de RAM con una cuenta de Alibaba Cloud o como administrador de RAM. En el panel de navegación izquierdo, seleccione .
-
En la página Authorize, haga clic en Create Authorization. En la página Create Authorization, configure los parámetros a continuación.
Parámetro
Descripción
Resource Range
Seleccione el alcance de recursos según sus necesidades.
Principal
Especifique la entidad principal, que corresponde al usuario de RAM al que desea otorgar permisos.
Policy
Agregue los siguientes permisos al usuario de RAM según sea necesario:
-
AliyunCloudMonitorFullAccess: permisos completos para CMS. Un usuario de RAM con este permiso tiene autorización total para consultar, editar y eliminar instancias de todos los subproductos. -
AliyunCloudMonitorReadOnlyAccess: permisos de solo lectura para CMS. Un usuario de RAM con este permiso solo puede consultar la información de las instancias de todos los subproductos. No puede modificar ni eliminar instancias.
-
Haga clic en Confirm y, a continuación, haga clic en Delete.
Paso 2: Obtener el endpoint Remote Read
Inicie sesión en la consola de CloudMonitor. En el panel de navegación izquierdo, seleccione Prometheus Monitoring para ir a la página Instance List.
En la barra de menú superior, seleccione la región de la instancia. En la columna Actions del clúster de destino, haga clic en Modify.
-
En la pestaña Modify, copie el endpoint Remote Read público o interno según corresponda.
El formato del endpoint público es
http://{region}.arms.aliyuncs.com:9090/api/v1/prometheus/xxx. El formato del endpoint interno eshttp://{region}-intranet.arms.aliyuncs.com:9090/api/v1/prometheus/xxx. La parte xxx corresponde a la credencial de autenticación generada por el sistema.
Paso 3: Configurar Prometheus autogestionado
Instale Prometheus. Para obtener más información, consulte la página de descarga de Prometheus.
-
Edite el archivo de configuración Prometheus.yml. Agregue el siguiente contenido al final del archivo. Reemplace la URL de
remote_readcon el endpoint obtenido en Step 2. Después, guarde el archivo.global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] remote_read: # Replace this with your Remote Read endpoint. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read" read_recent: true Reinicie el servicio de Prometheus autogestionado.
Paso 4: Consultar los datos de Prometheus de Alibaba Cloud en su Prometheus autogestionado
-
Inicie sesión en su Prometheus autogestionado desde un navegador.
http://localhost:9090 En la página Prometheus, haga clic en Graph en la barra de menú en la parte superior de la página.
-
En la pestaña Graph, introduzca una expresión de consulta en el cuadro de búsqueda y, a continuación, haga clic en Execute a la derecha del cuadro de búsqueda.
Por ejemplo, consulte la utilización de CPU de una dirección IP específica.
100 - (avg by (instance) (rate(node_cpu_seconds_total{instance="your_IP_address:9100", mode="idle"}[5m])) * 100)
Preguntas frecuentes
Las consultas no devuelven datos ni reportan errores después de configurar Remote Read
Si las consultas no devuelven datos tras completar la configuración, compruebe si su configuración local de Prometheus contiene external_labels. Este ajuste puede impedir que Remote Read consulte los datos esperados. Ejecute el siguiente comando para revisar la configuración de external_labels en el archivo de configuración de Prometheus y confirme que las etiquetas cloud y cluster estén establecidas correctamente.
[xxx prometheus]# head prometheus.yml
global:
scrape_interval: 60s
evaluation_interval: 15s
external_labels:
cloud: xxx
cluster: xxx