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.

Utilice las funciones internas de Prometheus _over_time() para consultas de rango en los puntos finales de la API.

La tarea consiste en medir ciertas métricas para un período de tiempo dado entre las marcas de tiempo de inicio y fin, con un paso definido, y luego obtener el valor mínimo/máximo/promedio de esta lista de valores proporcionados.

Los datos se solicitan a través de una API HTTP, la URL de ejemplo del punto final se ve así:

http://<prometheus_ip>:<port>/api/datasources/proxy/2/api/v1/query_range?query=container_memory_working_set_bytes{container=<container>}&start=<timestamp1>&end=<timestamp2>&step=<step>

Luego, la lista provista de [marca de tiempo, valor] se analiza mediante algunos métodos personalizados para obtener los valores mínimo/máximo/promedio, lo cual no es bueno, así que me gustaría usar las funciones incorporadas de <agregación>_over_time() de Prometheus aquí, ya que proporcionan exactamente lo que necesito directamente.

Encontré ejemplos de cómo se utiliza en la interfaz de usuario de Prometheus para consultar el mínimo/máximo/promedio del rango, pero ¿es posible usarlo de alguna manera en las solicitudes de la API con el punto final de ejemplo anterior para obtener directamente el valor mínimo/máximo/promedio en la respuesta JSON?</agregación>

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible utilizar las funciones <aggregation>_over_time() en las solicitudes de API con el punto final de ejemplo proporcionado para obtener el valor mínimo/máximo/promedio directamente en la respuesta JSON.

    Para utilizar estas funciones, puedes modificar el parámetro query en la URL del punto final para incluir la función de agregación. Por ejemplo, para obtener el valor mínimo a lo largo del tiempo, utilizarías min_over_time(container_memory_working_set_bytes{container=<container>}[<duration>]) como valor del parámetro de consulta.

    El [<duration>] especifica el intervalo de tiempo sobre el cual se realiza la agregación. Puedes reemplazar esto con el intervalo de tiempo deseado en segundos o una cadena de duración válida.

    De manera similar, puedes utilizar max_over_time() o avg_over_time() para obtener el valor máximo o promedio a lo largo del tiempo. La respuesta JSON resultante incluirá la marca de tiempo y el valor agregado para cada intervalo de tiempo especificado por el parámetro de paso.

Comments are closed.