Splunk - 跨多个查询共享数据集
Splunk - Share data set across multiple queries
我在 Splunk 索引中有事件日志。我想根据上周的 statusCode 获取 a) 成功请求和 b) 失败请求的数量。但是,我想显示每一天的数量。
根据我的理解,我可以使用如下方式执行昨天的查询:
index="my_index"
sourcetype="*"
_raw="*execTime*"
earliest=-1d@d
latest=now
| fields _time requestUrl statusCode
| stats
count(eval(statusCode<200 OR statusCode>299)) as failures
count(eval(statusCode>199 AND statusCode<300)) as successes
by requestUrl
| table requestUrl failures successes
这将为我提供昨天每个请求 url 的总成功和失败总数。我可以复制此查询并更改每天的 earliest
字段值。但是,似乎有两种更好的方法:
- 将此查询另存为报告并将
earliest
值作为参数传递。这将需要七个单独的搜索请求(每天一个)或
- 运行 一个获取一周所有事件的查询。然后,运行 查询该查询的结果。每天一个查询。我们的想法是,这将减少需要评估的事件集。
后者似乎更有效率。但是,我不知道这是否可能。我的问题是,是否可能,如果可能的话如何?它实际上更有效吗?
谢谢
是的,这两种方式都可以完成,但是 运行 一周的单个查询并让 Splunk 按天将它们分开会更容易。
index="my_index" sourcetype="*" _raw="*execTime*" earliest=-7d@d latest=@d
| fields _time requestUrl statusCode
```Separate the events into days by rounding _time to the beginning of the day```
| bin span=1d _time
```Count events by day and statusCode```
| stats
count(eval(statusCode<200 OR statusCode>299)) as failures
count(eval(statusCode>199 AND statusCode<300)) as successes
by _time,requestUrl
| table _time requestUrl failures successes
顺便说一句,构造 earliest=-1d@d latest=now
搜索了昨天和今天。要仅搜索昨天,请使用 earliest=-1d@d latest=@d
.
我在 Splunk 索引中有事件日志。我想根据上周的 statusCode 获取 a) 成功请求和 b) 失败请求的数量。但是,我想显示每一天的数量。
根据我的理解,我可以使用如下方式执行昨天的查询:
index="my_index"
sourcetype="*"
_raw="*execTime*"
earliest=-1d@d
latest=now
| fields _time requestUrl statusCode
| stats
count(eval(statusCode<200 OR statusCode>299)) as failures
count(eval(statusCode>199 AND statusCode<300)) as successes
by requestUrl
| table requestUrl failures successes
这将为我提供昨天每个请求 url 的总成功和失败总数。我可以复制此查询并更改每天的 earliest
字段值。但是,似乎有两种更好的方法:
- 将此查询另存为报告并将
earliest
值作为参数传递。这将需要七个单独的搜索请求(每天一个)或 - 运行 一个获取一周所有事件的查询。然后,运行 查询该查询的结果。每天一个查询。我们的想法是,这将减少需要评估的事件集。
后者似乎更有效率。但是,我不知道这是否可能。我的问题是,是否可能,如果可能的话如何?它实际上更有效吗?
谢谢
是的,这两种方式都可以完成,但是 运行 一周的单个查询并让 Splunk 按天将它们分开会更容易。
index="my_index" sourcetype="*" _raw="*execTime*" earliest=-7d@d latest=@d
| fields _time requestUrl statusCode
```Separate the events into days by rounding _time to the beginning of the day```
| bin span=1d _time
```Count events by day and statusCode```
| stats
count(eval(statusCode<200 OR statusCode>299)) as failures
count(eval(statusCode>199 AND statusCode<300)) as successes
by _time,requestUrl
| table _time requestUrl failures successes
顺便说一句,构造 earliest=-1d@d latest=now
搜索了昨天和今天。要仅搜索昨天,请使用 earliest=-1d@d latest=@d
.