11.Prometheus и Grafana Выводим время отклика сайта

Thank you for reading this post, don't forget to subscribe!

Для реше­ния зада­чи нам потре­бу­ет­ся мини­мум — уста­нов­лен­ный Prometheus и node-exporter (уста­нов­ка и базо­вая настрой­ка), а так­же уста­нов­лен­ная Grafana с настро­ен­ным источ­ни­ком дан­ных (Data source).

Убе­ди­тесь, что в node-exporter вклю­чен кол­лек­тор textfile и про­верь­те зна­че­ние пара­мет­ра -collector.textfile.directory (обыч­но это /var/lib/node_exporter/textfile_collector). Кол­лек­тор будет брать дан­ные из всех фай­лов с рас­ши­ре­ни­ем *.prom в этой дирек­то­рии, содер­жи­мое фай­лов долж­но соот­вет­ство­вать опре­де­лен­но­му формату.

В ката­ло­ге /usr/local/sbin созда­ем файл http_response_time_ms и дела­ем его исполняемым:

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

[codesyntax lang="php"]

[/codesyntax]

В резуль­та­те выпол­не­ния скрип­та сфор­ми­ру­ет­ся файл /var/lib/node_exporter/textfile_collector/http_response_time_ms.prom с таким содержимым:

Про­ве­рим нали­чие мет­рик — в бра­у­зе­ре пере­хо­дим по адре­су http://[IP-адрес сервера]:9100/metrics, новые мет­ри­ки долж­ны появить­ся через несколь­ко секунд после выпол­не­ния скрипта.

Пере­хо­дим в Grafana и созда­ем новый даш­борд для гра­фи­ков. В дан­ном при­ме­ре будем исполь­зо­вать шаб­ло­ны для имен хостов (ранее мы уже исполь­зо­ва­ли шаб­ло­ны для интер­ва­лов времени).

Добав­ля­ем новый гра­фик, в поле Query вво­дим инте­ре­су­ю­щую нас мет­ри­ку — http_response_time_ms{domain="$host"}, а в поле Legend format вво­дим {{ domain }}{{ url }}. По сути, это­го уже доста­точ­но для отоб­ра­же­ния гра­фи­ка, для более тон­кой настрой­ки мож­но вос­поль­зо­вать­ся меню, кото­рое рас­по­ло­же­но пря­мо под графиком.