es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener métricas de uso para pods de Kubernetes en GKE desde un script externo en node.js

Necesito obtener las métricas de uso (CPU y RAM) para mis pods de Kubernetes, pero debido a que otros componentes de mi aplicación utilizan estos datos, necesito hacer una consulta a través de Node.js en lugar de utilizar el menú desplegable de exploración de métricas en la consola de GCP para ver los datos visualizados en un gráfico. He probado la API en https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/query que parece ser lo más parecido a lo que estoy buscando. Sin embargo, después de probarlo en mi proyecto, obtuve una respuesta vacía, a pesar de que la misma consulta en el Explorador de Métricas mostró datos en los gráficos. Si alguien tiene consejos sobre cómo utilizar esta API correctamente, lo apreciaría.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener métricas de uso (CPU y RAM) de los pods de Kubernetes a través de Node.js, puedes utilizar la API de Google Cloud Monitoring. Específicamente, el punto final de la API que puedes utilizar es https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/query.

    Aquí tienes algunos consejos sobre cómo utilizar esta API correctamente:

    1. Asegúrate de tener los permisos necesarios para acceder a la API. Es posible que necesites otorgar roles de IAM como monitoring.viewer o monitoring.metricWriter a tu cuenta de servicio.
    2. Utiliza el punto final de la API para construir tu consulta para los datos de la serie de tiempo deseados. Puedes especificar los siguientes campos:

      • name: El nombre de la métrica que estás consultando, como kubernetes/pod_memory_usage_bytes.
    3. filter: Los criterios de filtro para la consulta, como resource.labels.name={podName}. {podName} debe reemplazarse con el nombre real del pod del que deseas obtener las métricas.

    4. interval: El intervalo de tiempo para los datos solicitados, como startTime y endTime.

    5. Utiliza el paquete google-auth-library para autenticar tu solicitud a la API. Puedes proporcionar las credenciales de la cuenta de servicio como un archivo de clave JSON.

    6. Haz una solicitud al punto final de la API utilizando el paquete axios, pasando los encabezados y parámetros necesarios. Luego puedes analizar la respuesta de la API para obtener los datos de métricas deseados.

    Si aún obtienes una respuesta vacía aunque la misma consulta en el Explorador de métricas muestra datos en los gráficos, asegúrate de que los parámetros de tu consulta estén configurados correctamente, incluyendo los criterios de filtro. Además, ten en cuenta que la API puede requerir una configuración adicional, como habilitar las API necesarias en tu proyecto de GCP.

Comments are closed.