Отфильтровывать значения с помощью mstats

#splunk

#splunk

Вопрос:

Я пытаюсь отфильтровать все отрицательные значения в своих показателях, я хотел бы знать, возможна ли фильтрация внутри самого mstats вызова, чтобы добавить что-то вроде AND metrics_name:data.value > 0 к приведенному ниже запросу?

 | 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')
  

Ответ №1:

К сожалению, вы не можете фильтровать или группировать по _value полю с метриками.

Возможно, вы сможете ускорить поиск с помощью msearch , включив metric_name в фильтр.

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

Обратите внимание, что использование msearch возвращает выборку значений метрики, а не все из них, если вы не укажете target_per_timeseries=0

Обратитесь к https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Mstats