Рекомендации по работе с дашбордами Grafana
В этом разделе собраны рекомендации для администраторов и пользователей Grafana среднего уровня о том, как создавать дашборды Grafana и работать с ними.
Дополнительные сведения о различных типах дашбордов, которые можно создать, см. в статье Grafana dashboards: A complete guide to all the different types you can build.
Распространённые стратегии наблюдаемости
Когда нужно мониторить много всего, например ферму серверов, требуется стратегия, позволяющая решить, что достаточно важно для мониторинга. На этой странице описано несколько распространённых способов выбора того, что мониторить.
Логичная стратегия позволяет создавать единообразные дашборды и проще масштабировать платформу наблюдаемости.
Рекомендации по применению
- Метод USE показывает, насколько хорошо работают ваши машины, а метод RED — насколько довольны ваши пользователи.
- USE сообщает о причинах проблем.
- RED сообщает о пользовательском опыте и чаще описывает симптомы проблем.
- Лучшая практика алертинга — оповещать о симптомах, а не о причинах, поэтому алертинг следует настраивать на основе дашбордов RED.
Метод USE
USE расшифровывается как:
- Utilization (использование) - доля времени, в течение которого ресурс занят, например загрузка ЦП узла
- Saturation (насыщение) - объём работы, которую должен выполнить ресурс, часто длина очереди или нагрузка на узел
- Errors (ошибки) - количество ошибочных событий
Этот метод лучше всего подходит для аппаратных ресурсов инфраструктуры, таких как ЦП, память и сетевые устройства. Подробнее см. в разделе The USE Method.
Метод RED
RED расшифровывается как:
- Rate (интенсивность) - запросов в секунду
- Errors (ошибки) - количество неуспешных запросов
- Duration (длительность) - время, которое занимают эти запросы, распределение измерений задержки
Этот метод лучше всего подходит для сервисов, особенно в микросервисной среде. Для каждого сервиса инструментируйте код, чтобы предоставлять эти метрики по каждому компоненту. Дашборды RED хорошо подходят для алертинга и соглашений об уровне обслуживания (SLA). Хорошо спроектированный дашборд RED отражает пользовательский опыт.
Подробнее см. в сообщении в блоге Тома Уилки The RED method: How to instrument your services.
Четыре золотых сигнала
Согласно руководству Google SRE, если вы можете измерять только четыре метрики своей пользовательской системы, сосредоточьтесь на этих четырёх.
Этот метод похож на метод RED, но включает насыщение.
- Latency (задержка) - время, затраченное на обслуживание запроса
- Traffic (трафик) - объём спроса на вашу систему
- Errors (ошибки) - доля неуспешных запросов
- Saturation (насыщение) - насколько «полна» ваша система
With Grafana Play, you can explore and see how it works, learning from practical examples to accelerate your development. This feature can be seen on The Four Golden Signals.
Модель зрелости управления дашбордами
Зрелость управления дашбордами отражает, насколько хорошо спроектирована и эффективна экосистема ваших дашбордов. Рекомендуется периодически пересматривать организацию дашбордов, чтобы оценить текущий уровень и определить, что можно улучшить.
В целом зрелость дашбордов можно определить как низкую, среднюю или высокую.
Значительная часть материала этой темы взята из доклада на KubeCon 2019 Fool-Proof Kubernetes Dashboards for Sleep-Deprived Oncalls.
Низкий уровень — состояние по умолчанию
На этом этапе у вас нет связной стратегии управления дашбордами. Почти все начинают с этого.
Как понять, что вы на этом уровне?
- Все могут изменять ваши дашборды.
- Много скопированных дашбордов, повторное использование дашбордов почти отсутствует.
- Одноразовые дашборды, которые остаются навсегда.
- Нет контроля версий (JSON дашбордов не хранится в системе контроля версий).
- Много просмотра дашбордов и поиска нужного дашборда. Это означает массу потерянного времени на поиск необходимого дашборда.
- Отсутствие алертов, которые направляли бы вас к нужному дашборду.
Средний уровень — методичные дашборды
На этом этапе вы начинаете управлять использованием дашбордов с помощью методичного подхода. Возможно, у вас уже есть стратегия, но некоторые вещи можно улучшить.
Как понять, что вы на этом уровне?
-
Предотвращайте разрастание с помощью переменных шаблона. Например, вам не нужен отдельный дашборд для каждого узла — можно использовать переменные запросов. Ещё лучше сделать переменной и источник данных, чтобы использовать один и тот же дашборд в разных кластерах и системах мониторинга.
Если нужны идеи, обратитесь к списку примеров переменных.
-
Методичные дашборды в соответствии с стратегией наблюдаемости.
-
Иерархические дашборды с переходом на следующий уровень.
Пример использования детализации -
Дизайн дашборда отражает иерархию сервисов. В примере ниже используется метод RED (интенсивность запросов и ошибок слева, длительность задержки справа) с одной строкой на сервис. Порядок строк отражает поток данных.
Пример иерархии сервисов -
Сравнивайте сопоставимое: разделяйте дашборды сервисов, когда масштабы различаются. Убедитесь, что агрегированные метрики не заглушают важную информацию.
-
Выразительные графики с осмысленным использованием цвета и нормализацией осей там, где это возможно.
- Пример осмысленного цвета: синий означает, что всё хорошо, красный — что плохо. В этом помогают пороговые значения.
- Пример нормализации осей: при сравнении загрузки ЦП измеряйте в процентах, а не в абсолютных числах, потому что у машин может быть разное количество ядер. Нормализация загрузки ЦП по количеству ядер снижает когнитивную нагрузку, поскольку зритель может быть уверен, что при 100 % задействованы все ядра, не зная их количества.
-
Направленный просмотр сокращает «угадывание».
- Переменные шаблона затрудняют случайный или бесцельный просмотр.
- Большинство дашбордов должны быть доступны по ссылкам из алертов.
- Просмотр направляется ссылками. Подробнее см. в разделе Управление ссылками дашборда.
-
JSON дашбордов под контролем версий.
Высокий уровень — оптимизированное использование
На этом этапе вы оптимизировали управление дашбордами с помощью последовательной и продуманной стратегии. Это требует поддержки, но результаты того стоят.
- Активное сокращение разрастания.
- Регулярно пересматривайте существующие дашборды, чтобы убедиться в их актуальности.
- В основной список дашбордов добавляются только утверждённые дашборды.
- Отслеживание использования дашбордов. Если вы используете Enterprise, можно воспользоваться Usage insights.
- Согласованность по замыслу.
- Используйте библиотеки скриптов для генерации дашбордов, обеспечивая единообразие шаблонов и стиля.
- grafonnet (Jsonnet)
- grafanalib (Python)
- Никакого редактирования в браузере. Зрители дашбордов меняют представления с помощью переменных.
- Просмотр дашбордов — исключение, а не правило.
- Проводите эксперименты и тестирование в отдельном экземпляре Grafana, предназначенном для этого, а не в рабочем. Когда дашборд в тестовой среде доказал свою полезность, добавьте его в основной экземпляр Grafana.
Рекомендации по созданию дашбордов
На этой странице приведены некоторые рекомендации, которых стоит придерживаться при создании дашбордов Grafana.
Перед началом
Вот несколько принципов, которые стоит учесть перед созданием дашборда.
Дашборд должен рассказывать историю или отвечать на вопрос
Какую историю вы пытаетесь рассказать своим дашбордом? Постарайтесь выстроить логичную последовательность данных, например от большого к малому или от общего к частному. Какова цель этого дашборда? (Подсказка: если у дашборда нет цели, спросите себя, действительно ли он нужен.)
Делайте графики простыми и сосредоточенными на ответе на заданный вопрос. Например, если ваш вопрос «какие серверы в беде?», возможно, не нужно показывать данные всех серверов. Покажите данные только тех, у которых проблемы.
Дашборды должны снижать когнитивную нагрузку, а не увеличивать её
Когнитивная нагрузка — это, по сути, то, насколько сильно нужно задуматься, чтобы в чём-то разобраться. Сделайте дашборд простым для восприятия. Другие пользователи и вы сами в будущем (когда будете пытаться понять, что сломалось в 2 часа ночи) будете за это благодарны.
Спросите себя:
- Могу ли я понять, что именно представляет каждый график? Это очевидно или нужно задуматься?
- Если я покажу это кому-то другому, сколько времени ему потребуется, чтобы разобраться? Не потеряется ли он?
Наличие стратегии мониторинга
Создавать новые дашборды легко. Оптимизировать их создание и придерживаться плана сложнее, но это того стоит. Эта стратегия должна определять как общую схему дашбордов, так и обеспечивать согласованность дизайна отдельных дашбордов.
Дополнительные сведения см. в разделах Распространённые стратегии наблюдаемости и Уровни зрелости управления дашбордами.
Записывайте
Когда у вас появится стратегия или правила оформления, запишите их, чтобы поддерживать согласованность со временем. Ознакомьтесь с примером runbook из Wikimedia.
Рекомендации, которых стоит придерживаться
- При создании нового дашборда убедитесь, что у него осмысленное имя.
- Если вы создаёте дашборд для игры или эксперимента, добавьте в имя слово
TESTилиTMP. - Подумайте о том, чтобы включить своё имя или инициалы в название дашборда или в виде тега, чтобы люди знали, кому принадлежит дашборд.
- Удаляйте временные экспериментальные дашборды, когда они больше не нужны.
- Если вы создаёте дашборд для игры или эксперимента, добавьте в имя слово
- Если вы создаёте много связанных дашбордов, подумайте, как перекрёстно ссылаться на них для удобной навигации. Подробнее см. в разделе Рекомендации по управлению дашбордами.
- Grafana получает данные из источника данных. Важно иметь общее представление об источниках данных в целом и о вашем конкретном источнике.
- Избегайте лишнего обновления дашборда, чтобы снизить нагрузку на сеть или бэкенд. Например, если данные меняются раз в час, не нужно задавать частоту обновления дашборда 30 секунд.
- Используйте левую и правую оси Y при отображении временных рядов с разными единицами измерения или диапазонами.
- Добавляйте документацию к дашбордам и панелям.
- Чтобы добавить документацию к дашборду, добавьте в него визуализацию Text panel. Укажите назначение дашборда, полезные ссылки на ресурсы и любые инструкции, которые могут понадобиться пользователям при работе с дашбордом. Ознакомьтесь с примером из Wikimedia.
- Чтобы добавить документацию к панели, отредактируйте настройки панели и добавьте описание. Любой добавленный текст отображается при наведении курсора на маленькую
iв левом верхнем углу панели.
- Повторно используйте дашборды и обеспечивайте согласованность с помощью шаблонов и переменных.
- Осторожно используйте наложение (стекинг) данных на графиках. Визуализации могут вводить в заблуждение и скрывать важные данные. В большинстве случаев это рекомендуется отключать.
Рекомендации по управлению дашбордами
На этой странице приведены некоторые рекомендации, которых стоит придерживаться при управлении дашбордами Grafana.
Перед началом
Вот несколько принципов, которые стоит учесть перед тем, как начать управлять дашбордами.
Стратегическая наблюдаемость
Существует несколько распространённых стратегий наблюдаемости. Изучите их и решите, подходит ли вам одна из них или вы хотите выработать собственную. В любом случае составьте план, запишите его и придерживайтесь его.
При необходимости адаптируйте стратегию к меняющимся потребностям.
Уровень зрелости
Каков ваш уровень зрелости дашбордов? Проанализируйте текущую организацию дашбордов и сравните её с моделью зрелости управления дашбордами. Понимание текущего положения поможет решить, как достичь желаемого.
Рекомендации, которых стоит придерживаться
- Избегайте разрастания дашбордов, то есть неконтролируемого роста их числа. Разрастание дашбордов увеличивает время поиска нужного дашборда. Дублирование дашбордов и изменение «одной вещи» (что хуже: сохранение исходных тегов) — самый простой вид разрастания.
- Периодически пересматривайте дашборды и удаляйте ненужные.
- Если вы создаёте временный дашборд, например для проверки чего-либо, добавьте к имени префикс
TEST:. По завершении удалите дашборд.
- Копирование дашбордов без существенных изменений — плохая идея.
- Вы лишаетесь обновлений исходного дашборда, таких как изменения документации, исправления ошибок или добавление метрик.
- Во многих случаях копии создаются лишь для настройки представления с помощью параметров шаблона. Вместо этого следует поддерживать ссылку на основной дашборд и настраивать представление с помощью параметров URL.
- Если всё же необходимо скопировать дашборд, ясно переименуйте его и не копируйте теги дашборда. Теги — важные метаданные дашбордов, используемые при поиске. Копирование тегов может привести к ложным совпадениям.
- Поддерживайте дашборд дашбордов или перекрёстные ссылки между дашбордами. Это можно сделать несколькими способами:
- Создайте ссылки дашборда, ссылки на панели или ссылки данных. Ссылки могут вести на другие дашборды или во внешние системы. Подробнее см. в разделе Управление ссылками дашборда.
- Добавьте панель Dashboard list. После этого можно настроить отображаемое с помощью поиска по тегам или папкам.
- Добавьте панель Text и используйте markdown для настройки отображения.