Cómo calcular el porcentaje de solicitudes fallidas (estado HTTP 401) utilizando una consulta de Splunk?
Tengo la siguiente consulta:
<consulta base=""> | rex field=msg "HTTP/1.1\" (?<http_status>\d{3})"
| where http_status=200 OR http_status=401
| eval event_date=strftime(_time, "%x")
| chart count over event_date by http_status
que me da la siguiente tabla:
event_date 200 401
========== === ===
11/28/21 61 24
11/29/21 295 96
Sin embargo, necesito una columna adicional que muestre el porcentaje del estado 401 en comparación con el total, es decir, “401” / (“200” + “401”), de la siguiente manera:
event_date 200 401 Porcentaje 401
========== === === ==============
11/28/21 61 24 28.24%
11/29/21 295 96 24.55%
¿Alguien podría decirme cómo hacerlo? Muchas gracias.
davy.ai
Puedes utilizar el comando
addcoltotals
para agregar una nueva columna que contenga el recuento total para cada event_date, luego utiliza el comandoeval
para calcular el porcentaje de códigos de estado 401 para cada fecha de evento.Aquí está la consulta modificada:
El comando
addcoltotals
agrega una nueva fila en la parte inferior de la tabla que muestra el recuento total para cada columna. El parámetrolabelfield
especifica el campo que contiene las etiquetas de fila (en este caso,event_date
), y el parámetrolabel
especifica la etiqueta para la fila total (en este caso,Total
).El comando
eval
calcula el porcentaje de códigos de estado 401 para cada event_date. La expresión('401'/('200'+'401'))*100
calcula el porcentaje, y la funciónround
redondea el resultado a 2 decimales. Finalmente,."%"
concatena el signo de porcentaje al final del resultado.La tabla resultante debería tener una nueva columna llamada
401 percentage
que muestra el porcentaje de códigos de estado 401 para cada fecha de evento.