Todos los productos
Search
Centro de documentos

Application Real-Time Monitoring Service:Access Prometheus monitoring data through HTTP API URLs

Última actualización: Sep 05, 2026

Managed Service for Prometheus expone URL de API HTTP que permiten consultar los datos de monitoreo desde fuera de la consola de Alibaba Cloud. A continuación se describen dos casos de uso comunes:

  • Grafana autogestionado: agregue la URL de API HTTP como origen de datos de Prometheus para visualizar las métricas en su propia instancia de Grafana.

  • Aplicaciones personalizadas: invoque directamente la API HTTP compatible con Prometheus para recuperar las métricas de forma programática.

Autenticación

Managed Service for Prometheus admite dos versiones de instancia y cada una utiliza un método de autenticación distinto.

Versión de la instancia

Método de autenticación

Credenciales

Prometheus V1

Basada en token (opcional)

Token de autenticación generado en la consola

Prometheus V2

Basic auth (obligatorio)

AccessKey ID y AccessKey secret de su cuenta; el usuario de RAM asociado debe tener el permiso AliyunPrometheusMetricReadAccess o AliyunCloudMonitorFullAccess

Importante

En Prometheus V2, el acceso a los datos requiere tanto el AccessKey ID como el AccessKey secret de su cuenta. Además, el usuario de RAM asociado debe contar con el system permission AliyunPrometheusMetricReadAccess o AliyunCloudMonitorFullAccess.

Requisitos previos

Antes de empezar, compruebe que cuenta con lo siguiente:

  • Una instancia de Prometheus conectada. Para consultar las instrucciones de configuración, consulte:

  • (Para Grafana) Una instancia de Grafana autogestionada con acceso de administrador.

  • (Para Prometheus V2) Un par de AccessKey para su cuenta, y el usuario de RAM asociado debe tener los permisos obligatorios.

Obtención de la URL de API HTTP

  1. Inicie sesión en la consola de CloudMonitor.

  2. En el panel de navegación izquierdo, elija Managed Service for Prometheus > Instances.

  3. En la barra de navegación superior, seleccione la región donde reside su instancia de Prometheus.

  4. Busque su instancia de Prometheus y haga clic en Settings dentro de la columna Actions.

  5. En la pestaña Settings, copie la URL de API HTTP. HTTP API URL on the Settings tab

    • Utilice la URL pública si su instancia de Grafana o su aplicación se encuentra fuera de la red interna de Alibaba Cloud.

    • Utilice la URL interna si su instancia de Grafana o su aplicación se ejecuta dentro de la misma región de Alibaba Cloud y puede acceder a los endpoint internos.

  6. (Solo para Prometheus V1) Haga clic en Generate Token para crear un token de autenticación. Guarde este token para usarlo más adelante.

Importante

En una instancia de Prometheus V1, después de generar un token, debe incluirlo al configurar el origen de datos en Grafana. Sin el token, Grafana no puede leer los datos de monitoreo de la instancia.

Configuración de un origen de datos en Grafana autogestionado

Agregar el origen de datos

  1. Inicie sesión en su instancia de Grafana como administrador.

  2. Vaya a Connections > Data sources.

    Este menú solo es visible para los administradores de Grafana. En Grafana 8 y versiones anteriores, vaya a Configuration > Data sources . El menú Connections está disponible en Grafana 9 y versiones posteriores.
  3. Haga clic en + Add data source y luego seleccione Prometheus.

  4. En el campo Name, introduzca un nombre descriptivo para el origen de datos.

  5. En el campo Prometheus server URL (dentro de la sección HTTP), pegue la URL de API HTTP que copió anteriormente.

Configurar la autenticación

Siga los pasos correspondientes a la versión de su instancia de Prometheus.

Prometheus V1

Si generó un token, agréguelo como encabezado HTTP personalizado:

  1. En la sección Custom HTTP Headers, haga clic en + Add header.

  2. Establezca Header en Authorization.

  3. Establezca Value con el token de autenticación.

Custom HTTP header configuration for Prometheus V1

Prometheus V2

  1. Active Basic auth.

  2. Establezca User con su AccessKey ID.

  3. Establezca Password con su AccessKey secret.

Basic auth configuration for Prometheus V2

Guardar y probar

Haga clic en Save & test. Un mensaje de éxito confirma que Grafana puede comunicarse con el origen de datos de Prometheus.

Comprobación del origen de datos en Grafana

  1. En Grafana, vaya a Dashboards y haga clic en New > New dashboard.

  2. Haga clic en + Add visualization y seleccione el origen de datos que configuró.

  3. En la página Edit Panel, abra la pestaña Query. En la sección A, introduzca el nombre de una métrica en el campo Metrics (por ejemplo, arms_prometheus_target_interval_length_seconds_sum) y configure los Label filters según sea necesario.

  4. Haga clic en Run queries.

Si se muestra una gráfica con datos de métricas, el origen de datos funciona correctamente. Si no aparece ninguna gráfica, compruebe que la URL de la API o el token sean válidos y que el origen de datos contenga información de monitoreo. Para obtener más ayuda, consulte Solución de problemas.

Consulta programática de la API HTTP

Los siguientes ejemplos utilizan el endpoint /api/v1/query para consultas instantáneas. Para consultas por rango (/api/v1/query_range), metadatos de series y otros endpoint, consulte la referencia de la API HTTP de Prometheus.

Prometheus V1

curl -G '<your-http-api-url>/api/v1/query' \
  -H 'Authorization: <your-token>' \
  -H 'Accept: application/json' \
  --data-urlencode 'query=arms_prometheus_target_interval_length_seconds_sum' \
  --data-urlencode 'time=1635302655' \
  --data-urlencode 'timeout=1000'

Reemplace los siguientes marcadores de posición con los valores reales:

Marcador de posición

Descripción

Ejemplo

<your-http-api-url>

La URL de API HTTP de la pestaña Settings

https://cn-hangzhou.arms.aliyuncs.com/...

<your-token>

El token de autenticación generado en la consola

eyJhbGciOi...

También puede invocar la API desde Python mediante la biblioteca requests:

import requests

token = "your-token"
api_url = "https://your-prometheus-api-url"

response = requests.get(
    f"{api_url}/api/v1/query",
    params={"query": "up"},
    headers={"Authorization": f"Bearer {token}"}
)

data = response.json()
for result in data["data"]["result"]:
    print(f"Metric: {result['metric']}")
    print(f"Value: {result['value']}")
Nota

Reemplace token con el token de autenticación generado en step 1 y api_url con su URL de API HTTP.

Prometheus V2

curl -G '<your-http-api-url>/api/v1/query' \
  -u '<your-accesskey-id>:<your-accesskey-secret>' \
  -H 'Accept: application/json' \
  --data-urlencode 'query=arms_prometheus_target_interval_length_seconds_sum' \
  --data-urlencode 'time=1635302655' \
  --data-urlencode 'timeout=1000'

Reemplace los siguientes marcadores de posición con los valores reales:

Marcador de posición

Descripción

Ejemplo

<your-http-api-url>

La URL de API HTTP de la pestaña Settings

https://cn-hangzhou.arms.aliyuncs.com/...

<your-accesskey-id>

El AccessKey ID de su cuenta

LTAI5tXxx...

<your-accesskey-secret>

El AccessKey secret de su cuenta

xXxXxXx...

La opción -u codifica automáticamente el AccessKey ID y el AccessKey secret como un encabezado Base64 Authorization: Basic .

Además de curl, puede invocar la API con la biblioteca requests de Python y Basic Auth:

import requests
import time

# Obtain the HTTP API URL from the console.
api_url = 'http://cn-hangzhou.arms.aliyuncs.com:9090/api/v1/prometheus/{token}/{user_id}/{cluster_id}/{region}'

# Use the AccessKey ID as the username and the AccessKey secret as the password.
ak_id = 'your_access_key_id'
ak_secret = 'your_access_key_secret'

# Query a metric.
resp = requests.get(f'{api_url}/api/v1/query', params={'query': 'up'}, auth=(ak_id, ak_secret))
print(resp.json())

# Range query (the last 1 hour).
end = int(time.time())
start = end - 3600
resp = requests.get(f'{api_url}/api/v1/query_range', params={'query': 'up', 'start': start, 'end': end, 'step': '60s'}, auth=(ak_id, ak_secret))
print(resp.json())
Nota

Reemplace ak_id y ak_secret con el AccessKey ID y el AccessKey secret de su cuenta. También sustituya la URL de API HTTP en api_url por la que obtuvo en Get the HTTP API URL. La API también admite la autenticación STS; en ese caso, el formato del secreto es {secret}${STS Token}. Para obtener más información, consulte What is STS?.

Parámetros de consulta

Parámetro

Obligatorio

Descripción

query

Sí

Expresión PromQL que se va a evaluar.

time

No

Marca de tiempo de evaluación (marca de tiempo Unix o RFC 3339). De manera predeterminada, toma la hora actual del servidor.

timeout

No

Tiempo de espera de la evaluación en milisegundos.

Ejemplo de respuesta

Una consulta exitosa devuelve una respuesta JSON similar a la siguiente:

{
    "status": "success",
    "data": {
        "resultType": "vector",
        "result": [
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "15s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "146655.24420603***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "30s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "879810.747346***"
                ]
            },
            {
                "metric": {
                    "__name__": "arms_prometheus_target_interval_length_seconds_sum",
                    "instance": "localhost:9335",
                    "interval": "20s",
                    "job": "_arms-prom/kubelet/1"
                },
                "value": [
                    1635302655,
                    "73320.13578499***"
                ]
            }
        ]
    }
}

Solución de problemas

Síntoma

Posible causa

Solución

HTTP 401 Unauthorized

Credenciales no válidas o faltantes

Compruebe el token (V1) o el par de AccessKey (V2). Genérelos de nuevo si caducaron.

HTTP 403 Forbidden

Permisos insuficientes

Otorgue al usuario de RAM el permiso AliyunPrometheusMetricReadAccess o AliyunCloudMonitorFullAccess.

Tiempo de espera de conexión agotado

Red inaccesible

Si Grafana se ejecuta fuera de Alibaba Cloud, utilice la URL de API HTTP pública. Si se ejecuta dentro de la misma región, utilice la URL interna.

Sin datos en la gráfica de Grafana

No hay datos incorporados para la métrica consultada

Confirme que la instancia de Prometheus recopila activamente los targets y que el nombre de la métrica es correcto.

Temas relacionados