如何解决使用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