有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Extract/filter Splunk查询和条件逻辑

我主要使用基本的Splunk查询,比如

index=myIndexHere source="path/to/logs/app.log" "Keyword to Filter Query On Example"

我的问题是,我想查找具有名为"Time taken:"的值的日志。好的,那太好了——根据我上面写的,我知道怎么做。我用Splunk返回了一堆搜索结果,这是一种JSON风格(这是从我的javaspring启动应用程序记录的),即

Object state is { "key1": "value",
  "key2": "value",
  "key3": "value"
}, Time taken: 500 ms

所以是这样的格式。我如何过滤/提取"Time taken:" VALUE(只是数字部分)并执行简单的逻辑条件,如“> 1000ms”,以便只返回大于1000ms的搜索结果


共 (1) 个答案

  1. # 1 楼答案

    一种方法是使用rex命令rex将捕获组提取到字段中,然后可以使用其他SPL命令处理这些字段

    index=myIndexHere source="path/to/logs/app.log" "Keyword to Filter Query On Example" "Time taken"
    | rex "Time Taken:\s(?<timeTaken>\d+)"
    | where timeTaken > 1000
    

    此查询假定时间字段始终为毫秒。如果可以更改,则查询将变得更复杂