如何在splunk中及时获取最大请求数

How get max count of request in time in splunk

您好,我正在开发 rails Web 应用程序,其中包含 Solr 搜索引擎。获取搜索结果的路径是'/search/results'。

用户在搜索某些内容时会发出很多请求,而我需要一直获取最大的 intime 搜索请求数(以检查是否需要它进行一些优化或增加 RAM 等)。我知道有高峰期,加载很关键,搜索速度很慢。

我使用 Splunk 服务来收集应用程序日志,并且可以从日志中获取此请求计数,但我不知道如何编写正确的 Splunk 查询来获取我需要的数据。

那么,我怎样才能获得日期范围内每 1 小时对“/search/results”路径的最大请求数?

谢谢!

如果您可以 post 您的示例数据和或您的示例搜索,它更容易理解。我只是 post 几个我认为可能会引导您走向正确方向的例子。


假设“/search/results”位于名为 "uri_path" 的字段中。

earliest=-2w latest=-1w sourcetype=app_logs uri_path='/search/results' 
| stats count(uri_path) by date_hour

会为您提供上周每小时的计数(总和)。

earliest=-2w latest=-1w sourcetype=app_logs uri_path=*
| stats count by uri_path, hour

会将 table(您可以认为 'group by')拆分为不同的 uri_paths。

如果您不想使用时间范围缩写,可以使用搜索栏右侧的时间范围选择器来使用 GUI select 您的时间,(w=week , mon=month, m=minute, 等等)。

之后,您需要做的就是 | 管道到 stats 命令,您可以在其中按 date_hour(这是一个自动生成的字段)进行计数。



注意: 如果您还没有提取 uri_path 字段,您可以使用 rex 命令非常轻松地完成。

... | rex "matching stuff before uri path (?<uri_path>\/\w+\/\w+) stuff after'
| uri_path='/search/results'
| stats count(uri_path) by date_hour

如果您想了解更多:

  1. Stats Functions (in Splunk)
  2. Field Extractor - 用于永久提取