使用mstats过滤出值

问题描述

我正在尝试过滤掉指标中的所有负值,我想知道是否可以在mstats调用中进行过滤,向下面的查询添加类似AND metrics_name:data.value > 0内容吗? / p>

| mstats avg(_value) WHERE metric_name="data.value" AND index="my_metrics" BY data.team

当前,我正在使用msearch,然后过滤掉事件,因此我的查询类似于下面的查询,但是由于拉出所有事件而导致的查询速度太慢:

| msearch index=my_metrics
| fields "metrics_name:data.value"
| where mvcount(mvfilter(tonumber(metrics_name:data.value') > 0)) >= 1 OR isnull('metrics_name:data.value')

解决方法

很遗憾,您无法使用指标对_value字段进行过滤或分组。

通过将metric_name包含在过滤器中,您也许可以使用msearch加快搜索速度。

| msearch index=my_metrics filter="metric_name=data.value"

请注意,除非指定msearch,否则使用target_per_timeseries=0会返回度量值的样本,而不是全部度量值。

请参阅https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Mstats