Дружим Prometheus с Cache

Автор: admin от 10-01-2017, 13:20, посмотрело: 113

Prometheus – одна из систем мониторинга, адаптированных под сбор time series данных.
Она достаточно проста в инсталляции и первоначальной настройке. Имеет встроенную графическую подсистему для отображения данных PromDash, однако сами же разработчики рекомендуют использовать бесплатный сторонний продукт Grafana. Prometheus умеет мониторить много чего («железо», контейнеры, различные СУБД), однако в данной статье хотелось бы остановиться на реализации мониторинга инстанса Cache (точнее, инстанс будет Ensemble, но метрики будем брать кашовые). Кому интересно — милости просим под кат.
Дружим Prometheus с Cache


В нашем простейшем случае Prometheus и Cache будут жить на одной машине (Fedora Workstation 24 x86_64). Версия Cache:

%SYS>write $zv
Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2016.1 (Build 656U) Fri Mar 11 2016 17:58:47 EST

Инсталляция и настройка


Качаем с офсайта подходящий дистрибутив Prometheus и сохраняем в каталог /opt/prometheus.

Дружим Prometheus с Cache

Распаковываем архив, правим имеющийся шаблонный конфиг согласно нашим нуждам и стартуем Prometheus. По умолчанию, Prometheus будет писать логи своей работы прямо в консоль, поэтому мы перенаправим записи о его активности в лог-файл.


Конфиг prometheus.yml описывается на языке YAML, не любящем табуляций, использовать нужно только пробелы. Выше мы указали, что метрики будем тянуть с адреса http://localhost:57772 и опрашивать будем приложение /metrics/cache (имя приложения выбрано произвольно), т.е. конечный адрес для сбора метрик будет http://localhost:57772/metrics/cache. К каждой метрике будет дописываться метка «job=isc_cache». Метка – очень грубо говоря, это аналог WHERE для SQL. В нашем случае использоваться она не будет, но для числа серверов, больше одного, очень даже сгодится. Например, имена серверов (и/или инстансов) можно сохранять в метках и в дальнейшем метками параметризировать запросы для отрисовки графиков. Проверим, что Prometheus заработал (выше в выводе мы видим порт, который он прослушивает — 9090):

Дружим Prometheus с Cache

Открылся веб-интерфейс, стало быть, Prometheus работает. Однако метрик Cache он пока что, естественно, не видит (проверим, нажав Status -> Targets):

Дружим Prometheus с Cache

Подготовка метрик


Наша задача – сделать так, чтобы по адресу http://localhost:57772/metrics/cache можно было стянуть метрики в понятном для Prometheus виде. Будем использовать REST-возможности Cache в силу их простоты. Сразу отметим, что Prometheus «понимает» только метрики числовые, так что строковые метрики экспортировать не будем. Для получения тестовых метрик будем использовать API класса SYS.Stats.Dashboard. Эти метрики используются самой Cache для отображения Системной панели инструментов:

Дружим Prometheus с Cache