Фильтрация графитовых метрик по серверу
Недавно я провел много исследований в области графита с использованием инструментов statsD. С помощью нашей команды разработчиков нам удалось получить несколько серверов, сообщающих метрики в графит, и объединить все метрики. Это частично то, что мы ищем, однако я хочу отфильтровать сбор метрик по серверу, а не объединять все метрики вместе. Целью этого является мониторинг сбора метрик для каждого сервера, так как многие из наших статистических данных также могут быть использованы для визуализации времени безотказной работы и производительности сервера. Я не смог найти ничего о том, как это может быть достигнуто в моем исследовании, кроме, возможно, некоторой хитрости с правилами агрегации.
1 ответ
Вы должны включить имя сервера в качестве первого компонента пути для отправляемого имени метрики. При именовании метрик Graphite разделяет имя метрики на компоненты пути, используя .
в качестве разделителя между компонентами пути. Например, вы можете использовать схему именования, например: <data_center>_<environment>_<role>_<node_id>.gauges.cpu.idle_pct
Это приведет к тому, что каждый сервер будет указан в качестве отдельной категории на http://graphite_hostname.com/dashboard/
Если вам нужно выполнить агрегацию на разных серверах, вы можете сделать это на уровне графита или использовать одну и ту же метрику под двумя разными именами: одно имя метрики с первым компонентом пути в качестве имени сервера и одно имя метрики с первый компонент пути в качестве значения, которое используется всеми серверами для агрегирования метрики.