Splunk-根据事件计数和事件数据获取预定义的输出

时间:2019-01-09 09:38:35

标签: splunk splunk-query

我有一个如下查询。结果总是预定义为-

  1. 如果查询结果具有3个事件,并且如果第3个事件具有event =“ delivered”作为值,则整个事务需要返回为“ COMPLETE”。
  2. 如果存在第三个事件,并且有事件!=“ delivered”,则状态变为“待处理”
  3. 如果根本不存在第3个事件,则该事务将标记为ERROR

我的查询-

index=myindex OR index=myindex2 uuid=98as786-ffe6-4de1-929y-080e99bc2e6r (status="202") OR (TransactionStatus="PUBLISHED") | append [search index=myindex2 (logMessage="Producer created new event") event="delivered" OR event="processed" serviceName="abc" [search index=myindex uuid=98as786-ffe6-4de1-929y-080e99bc2e6r AND status="SUCCESS" AND serviceName="abc" | top limit=1 headerId | fields + headerId | rename headerId as message_id]]

结果事件-

事件1-202已接受

事件2-适配器成功

事件3-交付,错误或已处理

我的高级仪表板应如下所示-

完成-6378638

待处理-2173

错误-6356

唯一ID将是要在其上进行计数的UUID。 评估的可能方式是什么?抬头 ?不确定,因为我是新手。 如果我缺少某些东西,请告诉我是否需要更多信息。

1 个答案:

答案 0 :(得分:1)

看看是否有帮助。您的问题中的术语有点不一致,因此您可能需要在此查询中调整字段名称。

index=myindex OR index=myindex2 uuid=98as786-ffe6-4de1-929y-080e99bc2e6r ((status="202") OR (TransactionStatus="PUBLISHED")) OR (index=myindex2 (logMessage="Producer created new event") event="delivered" OR event="processed" serviceName="abc") (index=myindex uuid=98as786-ffe6-4de1-929y-080e99bc2e6r AND status="SUCCESS" AND serviceName="abc" )
| stats count, latest(event) as event by headerId
| eval result=case(count=3 AND event="delivered", "COMPLETE", count=3 AND event!="delivered", "PENDING", count!=3, "ERROR", 1=1, "UNKNOWN")
| stats count by result
| table result count