Splunk - 根据事件计数和事件数据获取预定义输出
Splunk - Get Prefefined Outputs Based on the event count and event data
我有一个查询如下。结果总是预定义为 -
- 如果查询结果有 3 个事件,并且如果第 3 个事件的值为 event="delivered",则整个交易需要返回为 "COMPLETE"。
- 如果存在第 3 个事件且 event!="delivered" 则状态变为 "PENDING"
- 如果第三个事件根本不存在,则交易被标记为错误
我的查询 -
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。
有什么可能的方法可以做到这一点 - eval ?抬头 ?不确定,因为我是 splunk 的新手。
如果我遗漏了什么,请告诉我是否需要更多信息。
看看这是否有帮助。您问题中的术语有点不一致,因此您可能需要调整此查询中的字段名称。
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
我有一个查询如下。结果总是预定义为 -
- 如果查询结果有 3 个事件,并且如果第 3 个事件的值为 event="delivered",则整个交易需要返回为 "COMPLETE"。
- 如果存在第 3 个事件且 event!="delivered" 则状态变为 "PENDING"
- 如果第三个事件根本不存在,则交易被标记为错误
我的查询 -
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。 有什么可能的方法可以做到这一点 - eval ?抬头 ?不确定,因为我是 splunk 的新手。 如果我遗漏了什么,请告诉我是否需要更多信息。
看看这是否有帮助。您问题中的术语有点不一致,因此您可能需要调整此查询中的字段名称。
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