Skip to content

[зеркало с GitLab] Тестовый бот со сбором статистики (InfluxDB + Grafana)

License

Notifications You must be signed in to change notification settings

MasterGroosha/telegram-stats-demo

Repository files navigation

Сбор статистики в Telegram-ботах

Disclaimer: далее представлен один из вариантов использования связки aiogram + InfluxDB + Grafana для визуализации статистики использования бота. Обо всех замечаниях просьба писать автору лично, либо в раздел Issues на GitLab или GitHub

Используемые технологии

  • Python: язык программирования, на котором создан бот
  • Docker и docker-compose: контейнеризация всех компонентов
  • aiogram: фреймворк для создания Telegram-ботов
  • InfluxDB: СУБД, оптимизированная для работы с данными, содержащими отметки времени
  • Grafana: визуализация данных

Установка

Примечание: подразумевается, что ваша основная ОС основана на ядре Linux. Windows-пользователи могут использовать VirtualBox для создания виртуальной машины, либо использовать WSL2, либо что угодно на свой вкус ¯\_(ツ)_/¯

Подготовка к запуску Docker-контейнеров

Клонируйте проект (git clone) куда-нибудь, например, в /home/user/statsbot. Перейдите в созданный каталог и создайте внутри два подкаталога: mkdir {grafana-data,influxdb}. Включите отображение скрытых файлов (начинающихся с точки), затем скопируйте файл .env_dist в .env: cp .env_dist .env. Заполните указанные переменные своими данными (токен укажите свой, а логины, пароли и имя БД придумайте из головы). Наконец, запустите контейнеры командой docker-compose up -d. Не стесняйтесь читать логи (docker-compose logs -f).

Настройка Grafana

Откройте в браузере страницу http://127.0.0.1:3000. В появившемся окне введите логин и пароль по умолчанию (admin/admin), а на следующем экране нажмите "skip", чтобы пропустить смену пароля до следующей сессии. Нажмите на кнопку "Add data source" и выберите строку "InfluxDB". В разделе "HTTP" в качестве URL задайте http://influxdb:8086 (influxdb -- название контейнера в файле docker-compose.yml). Далее в разделе "InfluxDB Details" укажите имя базы данных, а также логин и пароль пользователя (ключи DB, DB_USER и DB_PASS из файла .env). Если при нажатии "Save & Test" появилась надпись "Data source is working" на зелёном фоне, значит, подключение к БД установлено успешно.

Проверка визуализации данных

Перейдите в своего бота и подёргайте различные команды. Вернитесь в Grafana, в левом меню найдите и откройте пункт "Explore". Установите параметры так, как показано на рисунке ниже. Прочие возможности Grafana предлагается изучить самостоятельно.
Некоторые пользователи отмечали, что данные могут отображаться не сразу. Если вы разворачиваете бота поздно вечером, рекомендуется поспать не менее 8 часов и снова проверить отображение данных. Впрочем, дневной сон тоже полезен.

Альтернативный вариант: используйте готовый Dashboard из соответствующего файла.

пример визуализации

Удачи!

About

[зеркало с GitLab] Тестовый бот со сбором статистики (InfluxDB + Grafana)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published