0
_sourceCategory=myService
| json field=_raw "log.Log" as log_message
| json field=_raw "log.Barcode" as log_Barcode
| json field=_raw "log.MachineId" as machine_id
| where log_message contains "successfully sorted"
| count by machine_id

此查询将为我提供每个机器 ID 的成功计数。

我想要的是获取过去 24 小时内的所有消息并获得每小时的平均成功率。

所以而不是拥有

机器编号 成功率计数 时间
123445 2400 24小时

我得到类似的东西

机器编号 每小时成功率计数 时间
123445 100 24小时
4

1 回答 1

0

if在使用语句应用时间片之前,您必须标记成功与失败。然后在字段上应用时间片和聚合并计算比率。就像是:

_sourceCategory=myService
| json field=_raw "log.Log" as log_message
| json field=_raw "log.Barcode" as log_Barcode
| json field=_raw "log.MachineId" as machine_id
| if (log_message matches "*successfully sorted*", 1, 0) as success
| timeslice 1h
| count as total_records, sum(success) as successes by _timeslice
| successes / total_records * 100 as success_rate_pct
于 2021-12-08T04:42:15.943 回答