Consultar y ver métricas

Después de recoger métricas de las cargas de trabajo implementadas en el dispositivo aislado de Google Distributed Cloud (GDC), puedes empezar a analizarlas. Para analizar las métricas, puede visualizarlas y filtrarlas en paneles de control informativos de Grafana o acceder a ellas directamente desde Cortex mediante la herramienta curl para disfrutar de flexibilidad en las secuencias de comandos y la automatización.

Puedes acceder a tus métricas de dos formas:

  • Paneles de Grafana: descubre tendencias e identifica anomalías con visualizaciones intuitivas de métricas clave, como la utilización de la CPU, el consumo de almacenamiento y la actividad de la red. Grafana ofrece una interfaz fácil de usar para filtrar y analizar los datos de tus cargas de trabajo en paneles de control.
  • Endpoint de Cortex: para casos prácticos más avanzados, consulta directamente la instancia de Cortex de tu proyecto mediante la herramienta curl en una línea de comandos. Cortex almacena las métricas de Prometheus de tu proyecto y proporciona un endpoint HTTP para el acceso programático. Este acceso le permite exportar datos, automatizar tareas y crear integraciones personalizadas.

Antes de empezar

Para obtener los permisos que necesitas para consultar y visualizar métricas en los paneles de Grafana, pide al administrador de gestión de identidades y accesos de tu organización o proyecto que te conceda uno de los roles predefinidos de lector de Grafana de la organización o del proyecto. En función del nivel de acceso y de los permisos que necesites, puedes obtener roles de Grafana en una organización o en un proyecto.

También puedes pedir al administrador de gestión de identidades y accesos de tu proyecto que te conceda el rol Lector de Prometheus de Cortex del proyecto en el espacio de nombres de tu proyecto para obtener los permisos que necesitas para consultar métricas desde el endpoint de Cortex.

Para obtener más información sobre estos roles, consulta Preparar permisos de gestión de identidades y accesos.

Obtener y filtrar métricas

Selecciona uno de los siguientes métodos para crear consultas, visualizar tendencias y filtrar métricas de las cargas de trabajo de tu proyecto:

Paneles de control de Grafana

En esta sección se describe cómo acceder a sus métricas mediante los paneles de control de Grafana.

Identificar el endpoint de Grafana

La siguiente URL es el endpoint de la instancia de Grafana de tu proyecto:

  https://GDC_URL/PROJECT_NAMESPACE/grafana

Haz los cambios siguientes:

  • GDC_URL: la URL de tu organización en GDC.
  • PROJECT_NAMESPACE: el espacio de nombres de tu proyecto.

    Por ejemplo, el endpoint de Grafana del proyecto platform-obs de la organización org-1 es https://org-1/platform-obs/grafana.

Ver métricas en la interfaz de usuario de Grafana

Recupera métricas en la interfaz de usuario de Grafana:

  1. En la consola de GDC, selecciona tu proyecto.
  2. En el menú de navegación, selecciona Operaciones > Monitorización.
  3. Haz clic en Ver todo en Grafana.

    Se abrirá una página con su endpoint de Grafana y se mostrará la interfaz de usuario.

  4. En la interfaz de usuario,haga clic en Explorar Explorar en el menú de navegación para abrir la página Explorar.

  5. En el menú de la barra Explorar, seleccione una fuente de datos para obtener métricas según el tipo de universo:

    • Universos de una sola zona: selecciona prometheus para mostrar las métricas de la zona única de tu universo.
  6. Introduce una consulta para buscar métricas mediante expresiones de PromQL (lenguaje de consulta de Prometheus). Puedes completar este paso de cualquiera de las siguientes formas:

    • Seleccione una métrica y una etiqueta para su consulta en los menús Métrica y Filtros de etiquetas. Haz clic en Añadir Añadir para añadir más etiquetas a tu consulta. A continuación, haz clic en Ejecutar consulta.
    • Introduce tu consulta directamente en el campo de texto Métricas y pulsa Mayús+Intro para ejecutarla.

    En la página se muestran las métricas que coinciden con tu consulta.

    La opción Prometheus está seleccionada en la página Explorar para obtener métricas.

    Imagen 1. Opción de menú para consultar métricas desde la interfaz de usuario de Grafana.

    En la figura 1, la opción Prometheus muestra la interfaz que te permite crear consultas desde Grafana para obtener métricas.

    Para ver ejemplos de valores de etiquetas que puede usar para consultar métricas, consulte Consultas y etiquetas de ejemplo.

Endpoint de Cortex

En esta sección se describe cómo acceder a tus métricas con Cortex.

Identificar tu endpoint de Cortex

La siguiente URL es el endpoint de la instancia de Cortex de tu proyecto:

  https://GDC_URL/PROJECT_NAMESPACE/cortex/prometheus/

Haz los cambios siguientes:

  • GDC_URL: la URL de tu organización en GDC.
  • PROJECT_NAMESPACE: el espacio de nombres de tu proyecto.

    Por ejemplo, el endpoint de Cortex del proyecto platform-obs de la organización org-1 es https://org-1/platform-obs/cortex/prometheus/.

Autenticar la solicitud curl

  1. Descarga e instala la CLI de gdcloud.
  2. Define la propiedad gdcloud core/organization_console_url:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. Inicia sesión con el proveedor de identidades configurado:

    gdcloud auth login
    
  4. Usa tu nombre de usuario y contraseña para autenticarte e iniciar sesión.

    Si el inicio de sesión se realiza correctamente, puedes usar el encabezado de autorización en tu solicitud cURL mediante el comando gdcloud auth print-identity-token. Para obtener más información, consulta gdcloud auth.

Llamar al endpoint de Cortex

Para acceder al endpoint de Cortex con la herramienta curl , sigue estos pasos:

  1. Autentica la solicitud curl.
  2. Usa curl para llamar al endpoint de Cortex y amplía la URL con la API HTTP estándar de Prometheus (https://prometheus.io/docs/prometheus/latest/querying/api/) para consultar métricas.

    A continuación, se muestra un ejemplo de solicitud curl:

    curl https://GDC_URL/PROJECT_NAME/cortex/prometheus/api/v1/query?query=my_metric{cluster="my-cluster"}&time=2015-07-01T20:10:51.781Z \
    -H "Authorization: Bearer $(gdcloud auth print-identity-token \
    --audiences=https://GDC_URL)"
    

    Obtendrás el resultado después del comando. La respuesta de la API está en formato JSON.

Consultas y etiquetas de ejemplo

Puede consultar métricas mediante el nombre de la métrica y los pares clave-valor de las etiquetas. Una consulta de PromQL tiene la siguiente sintaxis:

metric_name{label_one="value", label_two="value"}

Las etiquetas te permiten diferenciar las características de una métrica. De esta forma, los autores de contenedores hacen que sus cargas de trabajo generen métricas y añadan etiquetas para filtrar esas métricas.

Por ejemplo, puedes tener una métrica api_http_requests_total para contar el número de solicitudes HTTP recibidas. A continuación, puedes añadir una etiqueta request_method a esta métrica, que toma un valor POST, GET o PUT. Por lo tanto, debe crear tres flujos de métricas para cada tipo de solicitud que pueda recibir. En este caso, para encontrar el número de solicitudes HTTP GET, ejecuta la siguiente consulta:

api_http_requests_total{request_method="GET"}

Consulta https://prometheus.io/docs/practices/naming/ para obtener más información sobre las métricas y las etiquetas.

A continuación, se indican algunas de las etiquetas predeterminadas que añade el recurso personalizado MonitoringTarget. Puede usar estas etiquetas predeterminadas para consultar métricas:

  • _gdch_service: el nombre corto del servicio.
  • cluster: el nombre del clúster.
  • container_name: el nombre del contenedor de un pod.
  • namespace_name: el espacio de nombres de tu proyecto.
  • pod_name: el prefijo del nombre del pod.

En la siguiente tabla se describen las etiquetas que añade Prometheus automáticamente:

Etiquetas predeterminadas
Etiqueta de métrica Descripción
job Nombre interno del trabajo de raspado que se usa para recoger la métrica. Las tareas creadas por el recurso personalizado MonitoringTarget tienen un nombre con el siguiente patrón:

obs-system/OBS_SHADOW_PROJECT_NAME/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J

I y J son números únicos determinados internamente para evitar conflictos de nombres.
instance El $IP:$PORT del servicio retirado. Si un recurso de carga de trabajo tiene varias réplicas, usa este campo para diferenciarlas.

Los siguientes ejemplos de código muestran el uso de pares clave-valor para etiquetas con el fin de consultar diferentes métricas:

  • Ver todas las secuencias de métricas de las operaciones procesadas de tu proyecto:

    processed_ops_total
    
  • Para ver las operaciones procesadas recogidas en un clúster de Kubernetes, haz lo siguiente:

    processed_ops_total{cluster="CLUSTER_NAME"}
    
  • Para ver el uso de CPU recogido en un clúster de Kubernetes, sigue estos pasos:

    cpu_usage{cluster="CLUSTER_NAME"}
    

Usa la herramienta de cambio de nombre de métricas para añadir etiquetas que no se hayan expuesto inicialmente por los contenedores retirados y cambiar el nombre de las métricas producidas. Debe configurar el recurso personalizado MonitoringTarget para añadir etiquetas a las métricas que recoge. Especifica esas etiquetas en el campo metricsRelabelings del recurso personalizado. Para obtener más información, consulta Métricas de etiquetas.

Consultar métricas de la API de Cortex

Cortex es el almacenamiento a largo plazo de las métricas de Prometheus en GDC. La plataforma Observabilidad expone un endpoint de la API HTTP de Cortex para consultar y leer métricas, alertas y otros datos de series temporales de Prometheus de tu proyecto.

Consulta métricas directamente desde la API HTTP para leer y exportar métricas y otros datos de series temporales a herramientas externas, configurar tareas automatizadas, adaptar respuestas y crear integraciones según tu caso práctico de monitorización del sistema. Por ejemplo, puedes insertar el resultado en otro comando, exportar detalles a formatos de archivo de texto o configurar una tarea cron de Linux. Puedes llamar a la API desde la interfaz de línea de comandos (CLI) o un navegador web, y usar expresiones del lenguaje de consulta como parámetros de punto final para obtener el resultado en formato JSON.

En esta sección se explica cómo llamar al endpoint de la API de Cortex desde la CLI mediante la especificación de la API de Prometheus para consultar métricas de observabilidad de datos.

Antes de empezar

Debes obtener autorización para consultar métricas desde la CLI. Para obtener los permisos que necesitas para acceder al endpoint de la API Cortex, pide al administrador de gestión de identidades y accesos de tu proyecto que te asigne el rol Lector de Prometheus de Project Cortex (project-cortex-prometheus-viewer).

Crea los siguientes enlaces de rol con los comandos kubectl de Cortex Prometheus para cada perfil:

  1. Administrador raíz del operador de infraestructura (IO): Project Cortex Prometheus Viewer

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    io-cortex-prometheus-viewer-binding -n infra-obs 
    --user=fop-infrastructure-operator@example.com 
    --role=project-cortex-prometheus-viewer
    
  2. Administrador raíz de la plataforma (PA): Project Cortex Prometheus Viewer

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    pa-cortex-prometheus-viewer-binding -n platform-obs 
    --user=fop-platform-admin@example.com --role=project-cortex-prometheus-viewer
    
  3. Administrador raíz del operador de aplicaciones (AO): Project Cortex Prometheus Viewer

    kubectl --kubeconfig $HOME/root-admin-kubeconfig create rolebinding 
    project-cortex-prometheus-viewer-binding -n PROJECT_NAME 
    --user=USER_NAME --role=project-cortex-prometheus-viewer
    

    Haz los cambios siguientes:

    • PROJECT_NAME: el nombre de tu proyecto.
    • USER_NAME: nombre de la cuenta del usuario que requiere la vinculación de roles.

Una vez que se haya creado el enlace de rol, podrás acceder a la API de Prometheus con tu nombre de usuario de inicio de sesión.

Endpoint de API HTTP

La siguiente URL es el endpoint de la API HTTP para acceder a las métricas del proyecto platform-obs:

https://GDC_URL/PROJECT_NAME/cortex/prometheus/

Haz los cambios siguientes:

  • GDC_URL: la URL de tu organización en GDC.
  • PROJECT_NAME: el nombre de tu proyecto.

Llamar al endpoint de la API

Sigue estos pasos para acceder al endpoint de la API Cortex desde la CLI y consultar métricas:

  1. Asegúrate de que cumples los requisitos previos.
  2. Abre la CLI.
  3. Usa la herramienta curl para llamar al endpoint de Cortex y amplía la URL con el estándar https://prometheus.io/docs/prometheus/latest/querying/api/ para consultar métricas. Por ejemplo:

    curl https://console.org-1.zone1.google.gdch.test/alice/cortex/prometheus/api/v1/query?query=my_metric{cluster="org-1-system"}&time=2015-07-01T20:10:51.781Z
    

Obtendrás el resultado en la CLI después del comando. El formato de respuesta de la API es JSON.