Рекомендации по работе с дашбордами

В данном разделе приведены рекомендации по работе с дашбордами и виджетами в целях оптимизации и повышения работоспособности системы.

Обновление данных

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

    Для виджетов без автообновления нужно выполнять обновление данных вручную при просмотре виджета.
  2. Старайтесь указывать разумный интервал для автоматического обновления данных виджета, например, от 5 минут.

Оптимизация дашбордов и виджетов

  1. Если виджеты используют сложные RQL-запросы или агрегируют большие объемы данных, старайтесь располагать их на разных дашбордах.

  2. Не перегружайте дашборд большим количеством одновременно визуализируемых метрик — это может замедлить отображение данных.

    Лучше использовать несколько специализированных дашбордов, чем один универсальный.

Запросы к данным

  1. Составляйте избирательные запросы:

    • Фильтруйте данные по ключевым полям, чтобы выводить только релевантные данные.

    • Задавайте лимит на количество выводимых результатов, чтобы уменьшить нагрузку на систему.

      Также ограничение на количество выводимых результатов можно задать в поле Лимит окна редактирования виджета. Если ограничение задано в RQL-запросе и в поле Лимит, то применяется наименьшее из двух значений.
    • Не применяйте сортировку, если запрос возвращает большое количество данных.

    • Избегайте запросов полного сканирования, которые требуют чтения и обработки всех данных таблицы.

    Задавайте ограничение диапазона дат в секции Период времени, чтобы отслеживать только необходимые данные.
    Пример оптимизации запроса

    Необходимо отобразить десять IP-адресов с самым большим количеством ошибочных авторизаций.

    Неоптимизированный запрос может выглядеть следующим образом:

    SELECT source_ip, user_name, event_name, timestamp
    WHERE event_name = 'user_login_failed'
    ORDER BY timestamp DESC

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

    Оптимизированный запрос может выглядеть следующим образом:

    SELECT source_ip, count(*) AS failed_attempts, count(DISTINCT user_names) AS unique_users
    WHERE event_name = `user_login_failed`
    GROUP BY source_ip
    ORDER BY failed_attempts DESC
    LIMIT 10

    Здесь:

    • С помощью оператора WHERE выбираются только те записи, IP-адреса которых не прошли авторизацию.

    • С помощью оператора LIMIT задается ограничение выводимых результатов в десять строк. Также ограничение можно задать с помощью поля Лимит в окне редактирования виджета.

    • Сортировка с помощью оператора ORDER BY происходит только по ограниченному числу записей, так как был задан лимит.

    • С помощью оператора GROUP BY производится группировка всех записей, не прошедших авторизацию, по IP-адресам.

    Дополнительно можно добавить фильтр по времени в блоке Период времени в окне редактирования виджета. Это сузит круг данных и снизит нагрузку на систему.

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

  3. Сохраняйте оптимизированные запросы в шаблоны поиска, чтобы в будущем переиспользовать их.

    Вы можете протестировать RQL-запрос в разделе Поиск перед добавлением его в виджет.

Работа с инфраструктурой и ролями

  1. При возможности увеличьте выделенные ресурсы для подов с базами данных, к которым часто поступают RQL-запросы от виджетов дашбордов.

  2. Установите лимиты на потребление оперативной памяти для ролей, чтобы сложные запросы из виджетов персонального дашборда пользователя не повлияли на работу всей системы.

Мониторинг устойчивости

  1. Анализируйте загруженность подов и обращайте внимание на нагрузку Clickhouse. Для мониторинга состояния кластера можно создать пользовательские дашборды в Grafana. Подробности о мониторинге за кластером приведены в разделе Мониторинг кластера.

  2. Анализируйте виджеты, если они регулярно загружаются дольше остальных при открытии раздела Дашборды.

Была ли полезна эта страница?

Обратная связь