Gráficos de series temporales en QRadar Pulse

A primera vista, la creación de un gráfico de serie temporal a partir de datos relacionales en QRadar® Pulse puede ser un reto. La cantidad de datos que devuelve una consulta AQL puede ser difícil de manejar, pero con un poco de conocimiento previo y una planificación adecuada, puede producir gráficos de series temporales relevante y con sentido.

Nota: Después de leer los gráficos de series de tiempo, cree un gráfico de series de tiempo dinámico siguiendo el procedimiento en Seguimiento de los cinco dispositivos más activos en los últimos diez minutos. En QRadar Pulse V2.1.4 o posterior, el gráfico de serie temporal tiene una opción de serie dinámica que es útil cuando no sabe qué dispositivos desea rastrear o le resulta difícil hacer que los gráficos de serie temporal funcionen correctamente. Detecta automáticamente series y las visualiza como líneas separadas en el gráfico de serie temporal.
Ordenar una métrica por starttime produce una serie temporal, como la consulta AQL siguiente, pero la cantidad de datos devueltos pueden ser difícil de comprender y de manejar.
select starttime as 'Start Time',
SUM(eventcount) as 'Event Count (Sum)'
from events
where eventcount <> NULL
GROUP BY starttime
order by starttime
LAST 60 minutes
La cantidad de datos devueltos puede provocar un gráfico caótico que no proporciona mucha información. Es posible que las horas de inicio del suceso no se produzcan a intervalos regulares, lo que puede crear brechas en el conjunto de datos.
Figura 1. Demasiados datos produce resultados caóticos
Gráfico ruidoso con grandes volúmenes de datos

Creación de intervalos en una consulta de serie temporal

El primer paso es decidir el tipo de intervalo que hay que utilizar para el análisis de datos. ¿Desea examinar datos desde un intervalo corto, como cada segundo? O en intervalos más largos de cada minuto o cada hora? Esta decisión es importante porque los puntos de datos se deben agrupar en intervalos de forma que se calcule una métrica.

Mediante el uso de la consulta original, puede agrupar los datos utilizando una de las técnicas siguientes:
  • Utilizando la cláusula GROUP BY para crear un intervalo: GROUP BY starttime/60000. Dado que starttime se visualiza en milisegundos, si divide por 60.000 (60 segundos x 1000 milisegundos), crea grupos o intervalos de 60 segundos (1 minuto).
  • Cambiando la cláusula ORDER BY para utilizar el agregado sTime.
La consulta cambia por el código siguiente:
select starttime as 'sTime',
SUM(eventcount) as 'Event Count (Sum)'
from events
where eventcount > 0
GROUP BY starttime/60000
order by "sTime"
LAST 60 minutes
Loa datos se pueden utilizar ahora de forma más visual y garantizan que un punto de datos se produzca cada minuto. Ahora que los intervalos están bien definidos, puede utilizar unas cuantas estrategias para formatear los datos en un formato de serie temporal más fácil.
Figura 2. Datos más consumibles resultan en intervalos bien definidos
Los datos son consumibles pero deben acotarse

Pivotar filas en columnas para crear una serie

Un método para crear un gráfico de series de tiempo implica pivotear las filas de datos en columnas que representan directamente una serie en Pulso. Por ejemplo, si utiliza un caso de uso para contar sucesos para un dispositivo específico para intervalos de 1 minuto, debe crear un agregado condicional separado para cada serie que desea trazar en el gráfico.
SUM(IF LOGSOURCETYPENAME(devicetype) = 'System Notification' THEN 1.0 ELSE 0.0) 
as system_notification
SUM(IF LOGSOURCETYPENAME(devicetype) = 'SIM Audit' THEN 1.0 ELSE 0.0) as sim_audit
La consulta completa tiene el aspecto del ejemplo siguiente:
SELECT starttime/(1000*60) as 'minute',
(minute * (1000*60)) as 'stime',
SUM(IF LOGSOURCETYPENAME(devicetype) = 'System Notification' THEN 1.0 ELSE 0.0) 
as system_notification,
SUM(IF LOGSOURCETYPENAME(devicetype) = 'SIM Audit' THEN 1.0 ELSE 0.0) as sim_audit
FROM events
WHERE devicetype <> NULL
GROUP BY minute
ORDER BY stime asc
LAST 10 minutes
La consulta toma los datos de fila de los dispositivos System Notification y SIM Audit y los pivotan en columnas separadas que corresponden a una serie del gráfico:
Figura 3. Resultados devueltos para columnas separadas
Resultados para pivotar filas de datos en columnas
En la imagen siguiente se muestra la configuración de vista y la visualización de gráficos para pivotar las filas.
Figura 4. Configuración de la visualización de vistas y gráficos
Configuración de filas de datos en columnas

Si bien este método es bastante eficaz para transformar datos relacionales en datos de serie temporal, debe saber de antemano qué datos está buscando.

Creación de una serie temporal dinámica

¿Qué sucede si no sabe de antemano qué dispositivos está buscando o desea poner en un gráfico los cinco principales dispositivos más activos en la última hora? Puede crear una serie temporal dinámica en QRadar Pulse V2.1.4. En lugar de pivotar filas de datos en columnas, la segunda estrategia utiliza una cláusula secundaria GROUP BY (denominada "device" en los ejemplos) para crear una serie temporal dinámica.
SELECT starttime/(1000*60) as 'minute', 
MIN(starttime) as 'stime', 
eventcount as 'eventCount', devicetype as 'deviceType',
LOGSOURCETYPENAME(devicetype) as 'device', 
count(*) as 'total'
FROM events
WHERE deviceType IN (
    SELECT deviceType FROM (
        SELECT devicetype as 'deviceType', 
        count(*) as 'total'
        FROM events
        GROUP BY deviceType
        ORDER BY total DESC
        LIMIT 8
        LAST {Time_Span}
    )
) and devicetype not in (18,105,147,368)
GROUP BY minute, device
ORDER BY minute asc
LAST {Time_Span}
Los resultados devueltos para la consulta tienen la imagen siguiente:
Figura 5. Resultados devueltos para dispositivo
Resultados de datos para series de tiempo dinámico

La diferencia respecto al método anterior es que los datos no se pivotan en columnas y contiene repeticiones en la columna de tiempo provocadas por la cláusula GROUP BY. Utilizando la opción de serie temporal dinámica, QRadar Pulse divide los datos en un formato de serie temporal adecuado. Seleccione la columna que contiene time (stime para el eje x), la columna que contiene data (total para el eje y) y la columna que contiene la cláusula GROUP BY (para extraer la serie diferente por device).

Figura 6. División de los datos por dispositivo
Dividir los datos por dispositivo en series de tiempo dinámico

Si bien el gráfico tiene el mismo aspecto que el que se creó con el método anterior, la consulta AQl subyacente es mucho más dinámica. Si los orígenes del registro cambian con el tiempo, el gráfico se actualiza automáticamente porque los valores ya no se codifican en la consulta.

No obstante, debe saber algunas advertencias. Dado que las filas de datos no pivotan en columnas, el tamaño de los datos es mucho mayor y crece proporcionalmente con el número de dispositivos. QRadar Pulse procesa los datos, por lo que el tamaño de los datos puede afectar negativamente a la capacidad de respuesta general del navegador. Para evitar la degradación del rendimiento, QRadar Pulse representa las primeras 20 series de datos que detecta e ignora las series posteriores. Limite el tamaño de los datos utilizando la cláusula WHERE en LIMIT y efectúe ORDER de los conjuntos de datos para utilizarlos en una serie de tiempo dinámica. Por ejemplo, si el caso de uso es "contar los tres dispositivos principales más activos en los últimos 10 minutos, excluyendo 'Health Metrics'," cree la consulta siguiente:
SELECT starttime/(1000*60) as 'minute', (minute * (1000*60)) as 'stime', LOGSOURCETYPENAME(devicetype) as 'device', count(*) as 'total'
FROM events
WHERE device IN (
    SELECT deviceList FROM (
        SELECT LOGSOURCETYPENAME(devicetype) as deviceList, count(*) as topDevices
        FROM events
        WHERE deviceList <> 'Health Metrics'
        GROUP BY deviceList
        ORDER BY topDevices DESC
        LIMIT 3
        LAST 10 minutes
    )
)
GROUP BY minute, device
ORDER BY stime asc
LAST 10 minutes
La consulta es más eficaz y asegúrese de que las tres series representadas corresponden a los tres dispositivos principales más activos en el intervalo de tiempo seleccionado.