Splunk - stats 命令



stats 命令用于计算搜索结果或从索引检索到的事件的汇总统计信息。stats 命令作用于整个搜索结果,并且仅返回您指定的字段。

每次调用 stats 命令时,您可以使用一个或多个函数。但是,您只能使用一个 BY 子句。如果 stats 命令未使用 BY 子句,则只返回一行,即对整个传入结果集的聚合。如果使用了 BY 子句,则对于 BY 子句中指定的每个不同的值,都会返回一行。

下面我们来看一些常用 stats 命令的示例。

查找平均值

我们可以使用 **avg()** 函数查找数值字段的平均值。此函数以字段名称作为输入。如果没有 BY 子句,它将给出单个记录,其中显示所有事件的字段的平均值。但是,使用 BY 子句,它将根据新字段对字段进行分组的方式返回多行。

在下面的示例中,我们根据与这些文件关联的事件关联的各种 http 状态代码,查找文件的平均字节大小。

Stats1

查找范围

stats 命令可用于通过使用 **range** 函数显示数值字段的值范围。我们继续前面的示例,但现在不使用平均值,而是将 **max()、min()** 和 **range** 函数一起用于 stats 命令,以便我们可以看到范围是如何通过获取 max 和 min 列的值之间的差值来计算的。

Stats2

查找均值和方差

字段的统计重点值(如均值和方差)也以类似的方式计算,如上所述,通过使用适当的函数和 stats 命令。在下面的示例中,我们使用 **mean() & var()** 函数来实现此目的。我们继续使用前面示例中显示的相同字段。结果显示名为 bytes 的字段的值的均值和方差,这些值按事件的 http 状态值组织成行。

Stats3
广告