Splunk: как получить два поиска в одной временной диаграмме / графике?

#append #splunk

#добавить #splunk

Вопрос:

У меня есть запросы, которые выглядят так:

 source="/log/ABCD/cABCDXYZ/xyz.log" doSomeTasks| timechart partial=f span=1h count as "#XYZ doSomeTasks" | fillnull

source="/log/ABCD/cABCDXYZ/xyz.log" doOtherTasks| timechart partial=f span=1h count as "#XYZ doOtherTasks" | fillnull
  

Теперь я хочу получить эти два поиска на одном графике (я не хочу суммировать числа, которые я получаю за поиск, до одного значения).

Я видел, что есть возможность принять appendcols , но мои попытки использовать эту команду не увенчались успехом.

Я пробовал это, но это не сработало:

 source="/log/ABCD/cABCDXYZ/xyz.log" doSomeTasks|timechart partial=f span=1h count as "#XYZ doSomeTasks" appendcols [doOtherTasks| timechart partial=f span=1h count as "#XYZ doOtherTasks" | fillnull]
  

Комментарии:

1. В дополнительном поиске (внутри квадратных скобок) вы должны search явно использовать command .

Ответ №1:

Благодаря PM 77-1 проблема решена.

Эта команда работает:

 source="/log/ABCD/cABCDXYZ/xyz.log" doSomeTasks|timechart partial=f span=1h count as "#XYZ doSomeTasks" | appendcols[search source="/log/ABCD/cABCDXYZ/xyz.log" doOtherTasks| timechart partial=f span=1h count as "#XYZ doOtherTasks" | fillnull]
  

Примечание: вам не нужно указывать источник во второй команде поиска, если это тот же источник, что и первый.

Ответ №2:

Общее решение

Сгенерируйте каждый столбец данных, используя дополнительный поисковый запрос в следующей форме:

 |appendcols[search (myquery) |timechart count]
  

Дополнительные шаги

Списку одного или нескольких столбцов запроса должен предшествовать сгенерированный столбец, который устанавливает timechart строки (и дает appendcols что-то для добавления).

 |makeresults |timechart count |eval count=0
  

Примечание: Строго не обязательно начинать с сгенерированного столбца, но я обнаружил, что это чистый и надежный подход. Примечательно, что это позволяет избежать проблем, которые могут возникнуть в частном случае «Результаты не найдены», которые в противном случае могут запутать визуализацию. Плюс это более единообразно и, как следствие, проще в работе.

Наконец, укажите каждый из fields отображаемых в _time качестве оси x:

 |fields _time, myvar1, myvar2, myvar3
  

Полный пример

 |makeresults |timechart span=5m count |eval count=0
|appendcols[search (myquery1) |timechart span=5m count as myvar1]
|appendcols[search (myquery2) |timechart span=5m count as myvar2]
|appendcols[search (myquery3) |timechart span=5m count as myvar3]
|fields _time, myvar1, myvar2, myvar3
  

Будьте осторожны, чтобы использовать одно и то же span повсюду.


Другие подсказки

При сравнении разрозненных данных на одной диаграмме, возможно, для оценки их относительного времени, часто возникают различия в типе или масштабе, которые могут сделать наложенный результат практически бесполезным. В подобных случаях не пренебрегайте параметром формата «Журнал» для оси Y.

В некоторых случаях может быть даже целесообразно использовать взломы данных eval , чтобы преобразовать значения в визуально сопоставимое состояние. Например, добавление |eval myvar1=if(myvar1=0,0,1) дедуплицирует значения при использовании следующего timechart count . Вот некоторые соответствующие документы:

Комментарии:

1. Может быть полезно управлять этим как панелью информационной панели — в частности, чтобы получить преимущество замены переменных для таких вещей, как span .

2. Splunk — удивительный инструмент, но в некотором смысле он удивительно ограничен. Заставить диаграммы делать то, что вы хотите, может быть сложной задачей, а иногда и казаться невозможным. Например, я вижу временные несоответствия в _time значении между столбцами диаграммы (некоторые из них неверны). Аналогичный, очень воспроизводимый эффект возникает, когда вы пытаетесь использовать временные диаграммы с разными span значениями. appendcols по-видимому, не гарантирует правильного размещения строк. Предостережение.

3. Существуют интригующие, но невероятно сложные обходные пути: здесь и здесь . Например, за временной диаграммой будет следовать |append [makeresults |timechart count span=1m |eval count=0] |timechart span=1m sum(count) as myvar . Обратите внимание, что это частично основано на логике «сгенерированного столбца», приведенной выше.

4. Создайте дополнительный столбец из математики в связанных столбцах, например |eval myvar4=(myvar1 myvar2) .