如何使用 Splunk 查询计算失败请求的百分比(HTTP 状态 401)?

How to calculate the percentage of failed requests (HTTP status 401) using Splunk query?

我有以下查询

<base query>  | 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

这给了我以下 table

event_date      200     401
==========      ===     ===
11/28/21        61      24
11/29/21        295     96

但是,我需要一个额外的列来显示状态 401 与总数的百分比,即“401”/(“200”+“401”),如下所示:

event_date      200     401     401 percentage
==========      ===     ===     ==============
11/28/21        61      24      28.24%
11/29/21        295     96      24.55%

谁能告诉我怎么做?非常感谢。

使用 eval 计算百分比。

| eval "401 percentage" = round('401'*100/('200'+'401'),2)."%"

round函数将计算限制为小数点后两位,."%"在末尾添加百分号。顺便说一句,一定要在我有的地方使用单引号,这样 Splunk 就知道它是一个字段名称而不是字符串文字。