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.

Grafana/Timestream: cómo visualizar la cantidad de eventos específicos a lo largo del tiempo.

Soy un traductor español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy nuevo en Grafana y Timestream y quiero explorar su adecuación para mis necesidades.

Mi objetivo es visualizar una serie de eventos determinados en los registros.

Tengo un campo que representa un ID de sesión (cmcd_sid) y un indicador (cmcd_bs) en algunos registros:

cmcd_sid                                   cmcd_bs         <otro campos>

"78b459fc-9fab-4286-8840-8f1420f528da"       -

"78b459fc-9fab-4286-8840-8f1420f528da"       -

"78b459fc-9fab-4286-8840-8f1420f528da"       true

Entonces, lo que necesito es obtener y visualizar la cantidad de sesiones (cmcd_sid) que tienen más del 1% de cmcd_bs = true.

WITH total_requests AS (
    SELECT cast(count(*) as double) as CNT_TOTAL, cmcd_sid as SID_TOTAL FROM $__database.$__table
    WHERE cmcd_sid is not NULL AND time > ago(3h) GROUP BY cmcd_sid
), bs_requests AS (
    SELECT cast(count(*) as double) as CNT_BS, cmcd_sid as SID_BS FROM $__database.$__table
    WHERE cmcd_bs is not NULL AND time > ago(3h) GROUP BY cmcd_sid
)
SELECT count(DISTINCT SID_BS), SID_BS
FROM total_requests, bs_requests
WHERE SID_TOTAL = SID_BS AND CNT_BS / CNT_TOTAL * 100 > 1
GROUP BY SID_B

Escribí una consulta que me dio esas sesiones, pero cuando intento visualizarla en Grafana, muestra “Los datos no tienen un campo de tiempo”.

Idealmente, quiero tener un gráfico que muestre cuántas de estas sesiones tengo durante un período de tiempo, pero no estoy seguro de cómo puedo incorporar el campo de tiempo en la consulta.

Tags:  ,

Answer

  1. Avatar for davy.ai

    ¡Hola!

    Para incorporar un campo de tiempo en tu consulta, puedes utilizar la columna time en tu instrucción SELECT de la siguiente manera:

    WITH total_requests AS (
            SELECT cast (count(*) as double) as CNT_TOTAL, cmcd_sid as SID_TOTAL, time FROM $__database.$__table
            WHERE cmcd_sid is not NULL
               AND time > ago(3h)
               GROUP BY cmcd_sid, time
        ), bs_requests AS (
            SELECT cast (count(*) as double) as CNT_BS, cmcd_sid as SID_BS, time FROM $__database.$__table
            WHERE cmcd_bs is not NULL
               AND time > ago(3h)
               GROUP BY cmcd_sid, time
        )
        SELECT count(DISTINCT SID_BS), SID_BS, time
        FROM total_requests, bs_requests
        WHERE SID_TOTAL = SID_BS
          AND CNT_BS / CNT_TOTAL * 100 > 1
        GROUP BY SID_BS, time
    

    Esto incluirá la columna time en el resultado, la cual puedes utilizar para crear un gráfico de series de tiempo en Grafana.

    Para visualizar el resultado en Grafana, puedes crear un nuevo panel de gráfico y establecer el rango de tiempo para el período que deseas visualizar. Luego, en la pestaña “Consulta”, selecciona “Timestream” como fuente de datos y pega tu consulta en el cuadro “Editor de consulta”.

    Una vez que ejecutes la consulta, puedes utilizar la pestaña “Visualización” para seleccionar el tipo de gráfico que deseas crear y configurar los ejes y opciones de formato según sea necesario.

    ¡Espero que esto te ayude! Hazme saber si tienes alguna otra pregunta.

Comments are closed.