Prometheus: мониторинг IOPS и Disk Latency
Mar 17, 2016 09:51 · 281 words · 2 minute read
Наиболее важные параметры производительности дисков — IOPS (Input/Output operations Per Second, операций ввода-вывода за секунду) и Latency (время выполнения операции, задержка перед ответом). Давайте разберемся с мониторингом этих параметров на конкретном примере!
Я не буду углубляться в теорию Disk IOPS и Disk Latency — на просторах Интернета этой информации достаточно много. Считаем, что у нас установлена и настроена система мониторинга Prometheus, а также необходимые компоненты (node_exporter
для сбора метрик и Grafana
для построения графиков). В данном примере настроим мониторинг параметров Disk IOPS и Disk Latency для жесткого диска, на котором расположена база данных.
Переходим в веб-интерфейс Grafana
по адресу http://[IP-адрес сервера]:3000, создаем новый дашборд (назовем его Disk Performance). Для удобства мы будем использовать шаблоны (в этом примере — для интервалов времени), для этого:
- в меню сверху нажимаем Manage dashboards (выглядит как шестеренка);
- в открывшемся меню выбираем Templating;
- для создания переменной нажимаем + New;
- заполняем поля, жмем Add и сохраняем настройки дашборда (кнопка с изображением дискеты в верхнем меню).
Добавляем новый график, в поле Query вводим метрику rate(node_disk_read_time_ms{instance='db1:9100',device='sdc'}[$interval])/rate(node_disk_reads_completed{instance='db1:9100',device='sdc'}[$interval])
, а в поле Legend format вводим Read: {{device}}
. На этом же графике добавляем еще одну метрику — в поле Query вводим rate(node_disk_write_time_ms{instance='db1:9100',device='sdc'}[$interval])/rate(node_disk_writes_completed{instance='db1:9100',device='sdc'}[$interval])
, в поле Legend format вводим Write: {{device}}
.
С помощью соседних вкладок меню, расположенного под графиком, выбираем единицы измерения для шкалы Y (ms
), название графика (Disk Latency), стиль отображения графика/легенды — на ваше усмотрение.
Для отображения Disk IOPS можно создать отдельный график или же отобразить данный параметр на только что созданном графике Disk Latency. Какой бы вариант вы не выбрали, нужно будет использовать метрику rate(node_disk_reads_completed{instance='db1:9100',device=~'sdc'}[$interval])+rate(node_disk_writes_completed{instance='db1:9100',device=~'sdc'}[$interval])
для ввода в поле Query, а в поле Legend format IOPS: {{device}}
.
Примечание. Не забудьте изменить единицы измерения для шкалы Y — теперь это будут I/O ops/sec (iops
).