Добавление дашборда Prometheus в Grafana

Published by Leave your thoughts

Grafana – это популярный дашборд и конструктор графиков для визуализации временных рядов и показателей приложений, который можно использовать в различных областях. Grafana – очень производительное средство для создания, изучения и совместного использования панелей и данных.

Данное руководство поможет добавить Prometheus в качестве источника данных в Grafana и установить предварительно настроенный дашборд статистики сервера.

Требования

  • Сервер Ubuntu 14.04.
  • Доступ к sudo.
  • Предустановленные программы Prometheus and Grafana 2.5+ (инструкции по установке Prometheus – здесь; GitHub для Grafana — здесь).

1: Добавление источника данных Prometheus

Сначала нужно настроить доступ Grafana к серверу Prometheus.

Примечание: Каждый сервер Prometheus – отдельный источник данных; чтобы добавить несколько серверов Prometheus, нужно повторить инструкции данного раздела.

Откройте главную страницу Grafana и войдите как администратор:

http://your_server_ip:3000/

Откройте главное меню Grafana. Кликните Data Sources, чтобы просмотреть список источников данных. Чтобы добавить новый источник, нажмите Add New. На экране появится специальная форма, которую нужно заполнить:

Add data source
Name: Prometheus
Type: Prometheus
Http settings
Url: http://your_server_ip:9090
Access: proxy
Basic Auth: включите или отключите согласно настройкам сервера Prometheus

Чтобы добавить новый источник данных, нажмите Add. Затем кликните Test Connection, чтобы убедиться в том, что всё работает должным образом.

2: Импорт дашборда статистики Prometheus

Добавив Prometheus в список источников данных, нужно пересобрать дашборд статистики Prometheus и импортировать его в Grafana.

Загрузите последний дашборд Prometheus. Это можно сделать двумя способами:

  1. Кликнуть правой кнопкой и сохранить эту ссылку: Prometheus Stats — Default Grafana Dashboard
  2. Открыть в браузере JSON-файл дашборда: http://grafana.org/assets/dashboards/prometheus-dash.json

Для импорта дашбордов используется выпадающее меню Dashboard Picker (рядом с кнопами New Dashboard и Playlist).

Чтобы импортировать дашборд из локального файла JSON, кликните Choose file в разделе Import File. Найдите загруженный ранее файл prometheus-dash.json и импортируйте его.

Примечание: Если источник данных переименован и теперь называется не Prometheus, нужно найти и заменить название источника данных в файле .json. откройте файл:

nano prometheus-dash.json

Найдите следующую строку и измените её значение, указав новое имя источника данных:

"datasource": "Prometheus",

После завершения операции импорта на экране появится дашборд статистики Prometheus. Если все настройки были выполнены правильно, вы увидите на экране статистику сервера Prometheus.

Важно! Нажмите кнопку Save в верхнем меню, чтобы сохранить новый дашборд в Grafana. В противном случае дашборд исчезнет из настроек после обновления браузера.

3: Просмотр статистики Prometheus

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

  • Uptime: отображает аптайм (или время безотказной работы сервера Prometheus в сети); это помогает определить, как давно перезагружался сервер.
  • Local Storage Memory Series: эта панель показывает текущее количество рядов в памяти.
  • Internal Storage Queue Length: показывает длину очереди; в идеале эта панель должна показывать Empty или небольшое число.
  • Sample Ingested: этот график показывает количество метрик, обрабатываемых сервером Prometheus в течение последних 5 минут. Эти данные крайне необходимы при устранении неполадок на IRC или Github.

rate(prometheus_local_storage_ingested_samples_total[5m])

Сбор метрик

Prometheus собирает метрики процессов либо непосредственно, либо через шлюз для метрик кратковременных процессов (push gateway).

График Target Scrapes показывает, как часто собираются метрики в течение 5 минут. График Scrape Duration показывает, как долго Prometheus собирает метрики.

Запрос Target Scrapes:

rate(prometheus_target_interval_length_seconds_count[5m])

Запрос Scrape Duration:

prometheus_target_interval_length_seconds{quantile!="0.01", quantile!="0.05"}

График Rule Eval Duration отображает продолжительность выполнения всех вычислений.

4: Анализ данных дашборда Prometheus

На свежем сервере Prometheus графики достаточно просты.

Со временем они будут усложняться и расти в зависимости от нагрузки. В целом, рекомендуется поддерживать графики в стабильном состоянии. При добавлении в сборку данных новых метрик показатели графиков Memory Series и Sample Ingested возрастут.

Если целевые метрики неожиданно падают или время ожидания сбора увеличивается, следует определить причину такого поведения.

К примеру, клиент может увеличить количество метрик с десяти тысяч до миллиона или экспортировать временные ряды с метками для пользователей. Всё это, очевидно, увеличит время ожидания сбора. Если показатели на графике внезапно прыгают вверх, проверьте работу приложения и его программного обеспечения.

Медленная работа графика Rule Evaluation показывает, что нода, на которой установлен Prometheus, не справляется с обработкой нагрузки.

5: Пользовательские графики и метрики

Теперь Grafana поддерживает дашборд статистики Prometheus, отображающий набор предварительно настроенных метрик.

Grafana позволяет визуализировать метрики сервера Prometheus, доступные в Prometheus Query Editor. Чтобы открыть этот редактор запросов, кликните по названию панели, чтобы открыть меню. Выберите Edit. На экране появится вкладка редактора Metrics. Это обеспечит прямой доступ к запросам и доступным опциям источника данных Prometheus.

Заключение

Список доступных метрик можно найти по ссылке:

http://<your_server_ip>:9090/metrics

Все эти метрики можно скопировать и вставить в редактор запросов Grafana.

Чтобы изменения настроек вступили в силу, нужно сохранить дашборд.

Tags: , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>