Приветствую,
уважаемый читатель!
Продолжая
тему визуализации данных в Splunk, хотел бы поделиться
опытом настройки новых возможностей визуального
элемента «Single Value». Теперь его
возможности позволяют создавать весьма полезные дашборды.
Задача данного поста:
Получить
дашборд, содержащий информацию о полученных HTTP-запросах (GET, POST, HEAD) за определенный период времени.
Дополнительно необходимо отразить тренды к увеличению или уменьшению количества
запросов.
1.
Пишем
исходные запросы на SPL
sourcetype=Apache_access method="GET" |
timechart span=4h count by method
sourcetype=Apache_access method="POST" |
timechart span=4h count by method
sourcetype=Apache_access method="HEAD" |
timechart span=4h count by method
Данные запросы возвращают
количество HTTP-запросов,
выполненных за 4-х часовые интервалы времени. Задание интервалов это
обязательное условие для отображения трендов к увеличению или уменьшению.
Результат данных
запросов ниже:
1.
Добавление
на дашборд необходимых фильтров
Нам необходимы 2 фильтра, один типа «Time» и один типа «DropDown». Фильтр
«Time» необходим для задания
временного диапазона поиска событий. Фильтр «DropDown»
необходим
для задания тренд-интервалов, т.е. значения в фильтре «DropDown»
делят
на части временной диапазон в фильтре «Time».
Оба фильтра
будут передавать значения в SPL-запросы
через соответствующие токены (time_tok, ptok).
XML код данных фильтров ниже:
<input
type="time" token="time_tok"
searchWhenChanged="true">
<label> Период времени событий </label>
<default>
<earliest>-24h@h</earliest>
<latest>now</latest>
</default>
</input>
<input type="dropdown"
token="ptok">
<label>Тренд интервал </label>
<choice value="1h">1</choice>
<choice
value="4h">4</choice>
<choice
value="12h">12</choice>
<choice
value="24h">24</choice>
</input>
2.
Добавление
на дашборд визуальных элементов Single
Value
Для каждого из SPL-запросов необходимо добавить по одному
визуальному компоненту «Single
Value»,
в
который передаются значения из фильтров. Для примера приведу XML-код «Single Value», предназначенный
для отображения количество GET-запросов.
<single>
<search>
<query>sourcetype=Apache_access
method="GET" | timechart span=$ptok$ count by method</query>
<earliest>$time_tok.earliest$</earliest>
<latest>$time_tok.latest$</latest>
</search>
<option name="trendColorInterpretation">standard</option>
<option name="trendDisplayMode">percent</option>
<option name="trendInterval">-$ptok$</option>
<option name="colorBy">trend</option>
<option name="colorMode">block</option>
<option
name="numberPrecision">0</option>
<option name="showTrendIndicator">1</option>
<option name="showSparkline">1</option>
<option name="useColors">1</option>
<option name="useThousandSeparators">1</option>
<option
name="display.visualizations.singlevalueHeight">143</option>
<option name="underLabel">4 hour dynamic</option>
<option name="linkView">search</option>
<option name="drilldown">none</option>
<option name="beforeLabel">HTTP GET</option>
</single>
Пояснение:
1)
| timechart span=$ptok$ count by method
Данный оператор (timechart) разделяет все отобранные
события на интервалы длительностью, указанной в токене «ptok». Значения для
данного токена заданы в фильтре типа «DropDown».
2)
<earliest>$time_tok.earliest$</earliest>
<latest>$time_tok.latest$</latest>
Данный XML-код указывает, что интервал поиска событий для Single Value задаётся
с помощью фильтра типа Time,
и предаётся через токен «time_tok».
3)
<option
name="trendInterval">-$ptok$</option>
Данный
XML-код
указывает, что для отображения тренда используется шаг с уменьшением на интервал,
указанный в токене «ptok».
В
итоге у вас получится следующий дашборд:
Как вы видите,
количество HTTP
GET-запросов
равно 37 (это количество запросов, выполненных за 4 часа) с трендом к
увеличению на 236%. Это значит, что за прошедшие 4 часа HTTP GET-запросов выполнено на 236% больше,
чем за интервал от 8 до 4 часов назад. На линии тренда (sparkline)
жирным выделением показан отрезок времени, по которому рассчитан процент для
тренда.
Если открыть запрос визуального
элемента «Single Value» в табличном виде, то вы
увидите:
С 03.00 до 07.00
выполнено 11 запросов, а с 07.00 до 11.00 выполнено 37 запросов, соответственно
рост на 236%.
Полный
код дашборда приведен ниже:
<form>
<label>Тренд</label>
<fieldset
submitButton="false">
<input
type="time" token="time_tok"
searchWhenChanged="true">
<label>Период
времени событий</label>
<default>
<earliest>-24h@h</earliest>
<latest>now</latest>
</default>
</input>
<input
type="dropdown" token="ptok">
<label>Тренд
интервал</label>
<choice
value="1h">1</choice>
<choice
value="4h">4</choice>
<choice
value="12h">12</choice>
<choice
value="24h">24</choice>
</input>
</fieldset>
<row>
<panel>
<single>
<search>
<query>sourcetype=Apache_access method="GET" | timechart
span=$ptok$ count by method</query>
<earliest>$time_tok.earliest$</earliest>
<latest>$time_tok.latest$</latest>
</search>
<option
name="trendColorInterpretation">standard</option>
<option name="trendDisplayMode">percent</option>
<option name="trendInterval">-$ptok$</option>
<option name="colorBy">trend</option>
<option name="colorMode">block</option>
<option name="numberPrecision">0</option>
<option name="showTrendIndicator">1</option>
<option name="showSparkline">1</option>
<option name="useColors">1</option>
<option name="useThousandSeparators">1</option>
<option
name="display.visualizations.singlevalueHeight">143</option>
<option name="underLabel">4 hour dynamic</option>
<option name="linkView">search</option>
<option name="drilldown">none</option>
<option name="beforeLabel">HTTP GET</option>
</single>
</panel>
<panel>
<single>
<search>
<query>sourcetype=Apache_access method="POST" |
timechart span=$ptok$ count by method</query>
<earliest>$time_tok.earliest$</earliest>
<latest>$time_tok.latest$</latest>
</search>
<option
name="trendColorInterpretation">standard</option>
<option name="trendDisplayMode">percent</option>
<option name="trendInterval">-$ptok$</option>
<option name="colorBy">trend</option>
<option name="colorMode">block</option>
<option name="numberPrecision">0</option>
<option name="showTrendIndicator">1</option>
<option name="showSparkline">1</option>
<option
name="useColors">1</option>
<option name="useThousandSeparators">1</option>
<option
name="display.visualizations.singlevalueHeight">143</option>
<option name="underLabel">4 hour dynamic</option>
<option name="linkView">search</option>
<option name="drilldown">none</option>
<option name="beforeLabel">HTTP POST</option>
</single>
</panel>
<panel>
<single>
<search>
<query>sourcetype=Apache_access method="HEAD" | timechart
span=$ptok$ count by method</query>
<earliest>$time_tok.earliest$</earliest>
<latest>$time_tok.latest$</latest>
</search>
<option
name="trendColorInterpretation">standard</option>
<option name="trendDisplayMode">percent</option>
<option name="trendInterval">-$ptok$</option>
<option name="colorBy">trend</option>
<option name="colorMode">block</option>
<option name="numberPrecision">0</option>
<option name="showTrendIndicator">1</option>
<option name="showSparkline">1</option>
<option name="useColors">1</option>
<option name="useThousandSeparators">1</option>
<option
name="display.visualizations.singlevalueHeight">143</option>
<option name="underLabel">4 hour dynamic</option>
<option name="linkView">search</option>
<option name="drilldown">none</option>
<option name="beforeLabel">HTTP HEAD</option>
</single>
</panel>
</row>
</form>
Комментариев нет:
Отправить комментарий