Discord

Список ботов Discord на сайте Alternative.me на этой неделе похож на некролог: Rythm исчез, Groovy закрылся, Hydra потемнела, а выжившие (Ticket Tool, Tupperbox, ProBot, MEE6, Carl-bot, Dank Memer, OwO, Nekotina) каждый запускает дюжину функций в продакшене для десятков миллионов серверов. Владельцы серверов, которые запускают больше пары этих ботов, нуждаются в чём-то, что приложение Discord не может показать: какой бот запустил какую команду, работает ли бот, и откуда берётся шум.

Мы протестировали 7 настольных приложений, которые отслеживают активность Discord-ботов от начала до конца. Список охватывает сам Discord (встроенный журнал аудита показывает больше, чем знают большинство людей), сервис аналитики, который устанавливают большие серверы (Statbot), открытый стек мониторинга, который нужен самохостируемому боту (Grafana, Prometheus, InfluxDB, Loki), и монитор безотказной работы для тех, кому бот умер в 2 часа ночи (Uptime Kuma). Все в списке работают на компьютере или в контейнере, которым вы управляете с компьютера; здесь нет самих ботов.

На что обратить внимание в стеке аналитики Discord-ботов

Быстрое сравнение

Приложение Лучше всего для ОС Тип Стоимость
Discord Встроенный журнал аудита и панель интеграции Windows, macOS, Linux, Web Встроенный Бесплатно
Statbot Размещённая панель управления аналитикой для каждого сервера Web (любой компьютер) SaaS Бесплатно (Premium около $5/мес)
Grafana Панели управления для метрик самохостируемых ботов Windows, macOS, Linux, Docker Визуализация Бесплатно (открытый исходный код; Cloud платно)
Prometheus Собиратель временных рядов для конечных точек метрик ботов Windows, macOS, Linux, Docker Метрики Бесплатно (открытый исходный код)
InfluxDB Альтернативное хранилище метрик для данных высокой размерности Windows, macOS, Linux, Docker Метрики Бесплатно (Cloud платно)
Uptime Kuma Мониторинг безотказной работы для конечных точек ботов Docker (основной), Node.js Мониторинг Бесплатно (открытый исходный код)
Grafana Loki Агрегация журналов для самохостируемых ботов Linux, Docker (основной) Журналы Бесплатно (открытый исходный код; Cloud платно)

1. Discord — лучшая встроенная отправная точка

Discord’s Server Settings > Audit Log и панель Integrations показывают больше, чем используют большинство модераторов. Журнал аудита записывает каждое действие бота, которое коснулось роли, сообщения, канала или участника: достаточно, чтобы ответить «какой бот это сделал» за последние 45 дней без каких-либо сторонних инструментов. Integrations показывает список разрешений и команд каждого бота в одном месте.

Где это не работает: Нет подсчёта команд для каждого бота. Хранение на 45 дней короткое, если вы модерируете большой сервер. Нет данных о задержке или безотказной работе.

Стоимость:

Платформы: Windows, macOS, Linux, Web

Загрузка: discord.com/download

Суть: Лучшая отправная точка; откройте её перед установкой чего-либо ещё.

2. Statbot — лучшая размещённая аналитика

Statbot присоединяется к серверу как бот и создаёт панели управления для объёма сообщений, активности канала, присоединений и отходов участников, а также рейтинги для каждого пользователя. Менеджеры сообществ используют его, чтобы доказать вовлечённость (или её отсутствие) после изменения модерации. Общедоступные таблицы лидеров необязательны; частные панели управления — это настоящий продукт.

Где это не работает: Сосредотачивается на активности сервера, а не на разбивке по ботам. Премиум-уровни разблокируют полезные окна истории.

Стоимость:

Платформы: Панель управления Web (любой браузер на компьютере)

Загрузка: statbot.net

Суть: Лучше всего, когда вам нужна панель управления без запуска собственной.

3. Grafana — лучшие панели управления для самохостируемых ботов

Grafana — это слой панели управления, который в итоге запускает каждый самохостируемый стек. Укажите его на бэкенд Prometheus (метрики), Loki (журналы) или InfluxDB (временные ряды) и постройте панели для подсчёта команд, задержки шлюза, попаданий ограничения частоты и активности на гильдию. Оповещения идут в Discord webhooks, электронную почту или PagerDuty, когда частота ошибок бота возрастает.

Где это не работает: Требует источника метрик; Grafana — это интерфейс, а не весь стек. Кривая обучения при работе с построителем панелей.

Стоимость:

Платформы: Windows, macOS, Linux, Docker

Загрузка: grafana.com/get

Суть: Лучше всего, если вы самохостируете ботов и хотите панели управления, которыми вы владеете.

4. Prometheus — лучший собиратель метрик ботов

Prometheus извлекает метрики из любой конечной точки, которая их предоставляет (большинство фреймворков ботов имеют маршрут /metrics), хранит их как временные ряды и отвечает на запросы PromQL. Используйте вместе с Grafana для панелей. Discord.py, discord.js и Serenity имеют хорошо поддерживаемые экспортеры Prometheus.

Где это не работает: Работает модель скрейпинга, поэтому ботам за NAT нужен push gateway. Не работает с журналами; это работа Loki.

Стоимость:

Платформы: Windows, macOS, Linux, Docker

Загрузка: prometheus.io/download

Суть: Лучший бэкенд временных рядов для стека Grafana.

5. InfluxDB — лучшее альтернативное хранилище метрик

InfluxDB — это альтернатива Prometheus для хранения временных рядов, полезна, когда ваш бот генерирует метрики высокой размерности (счётчики для каждой гильдии в масштабе), с которыми Prometheus борется. Grafana изначально понимает InfluxDB.

Где это не работает: Больше операционной поверхности, чем Prometheus для небольших развертываний. Переход с 2.x на 3.x изменил некоторые API запросов и застал ранних пользователей врасплох.

Стоимость:

Платформы: Windows, macOS, Linux, Docker

Загрузка: influxdata.com/downloads

Суть: Лучше всего, когда ваш бот генерирует достаточно размерности метрик, чтобы повредить Prometheus.

6. Uptime Kuma — лучший монитор безотказной работы

Uptime Kuma — это открытый исходный код, самохостируемый монитор безотказной работы с панелью управления, настолько чистой, что это стыдит большинство SaaS. Он пингует конечные точки HTTP, TCP-порты или произвольные команды по расписанию и отправляет оповещения в Discord webhooks (поэтическая петля мониторинга безотказной работы Discord-бота путём пингования Discord). Бесплатный уровень — это неограниченные мониторы на вашем собственном оборудовании.

Где это не работает: Docker-first; другие установки работают, но Docker — это поддерживаемый путь. Не полный стек наблюдаемости; дополняет Grafana, а не заменяет её.

Стоимость:

Платформы: Docker (основной), Windows, macOS, Linux (Node.js)

Загрузка: github.com/louislam/uptime-kuma

Суть: Лучший бесплатный монитор безотказной работы для самохостируемого бота.

7. Grafana Loki — лучшая агрегация журналов

Grafana Loki — двоюродный брат Prometheus для журналов. Отправьте журналы ботов из Docker или systemd в Loki с помощью Promtail, запросите их с помощью LogQL и просмотрите их рядом с метриками в Grafana. Хранение и стоимость остаются низкими по сравнению с полным ELK, потому что Loki индексирует метки, а не содержимое.

Где это не работает: LogQL требует некоторого обучения. Полнотекстовый поиск по огромным объёмам медленнее, чем стек ELK.

Стоимость:

Платформы: Linux, Docker (основной)

Загрузка: grafana.com/oss/loki

Суть: Лучшее хранилище журналов для стека аналитики на основе Grafana.

Как выбрать нужный вариант

Если вы запускаете общедоступный сервер и используете только размещённые боты: сначала Discord журнал аудита, затем Statbot для панелей управления вовлечённостью.

Если вы самохостируете какие-либо боты: Prometheus скрейпинг ваших ботов /metrics, визуализация в Grafana, журналы в Loki.

Если размерность (счётчики для каждой гильдии в масштабе) ломает Prometheus для вас: переключите бэкенд метрик на InfluxDB.

Если боты умирают ночью без предупреждения: Uptime Kuma, оповещения в приватный канал Discord.

Если вам нужен только ответ на вопрос «мой бот сейчас работает?»: Uptime Kuma самостоятельно.

Пропустите полный стек наблюдаемости, если ответ на вопрос «сколько ботов вы запускаете» — «один размещённый бот без самохостирования». Встроенные инструменты Discord охватывают этот случай.

FAQ

Expose ли Discord сам API метрик ботов?

Нет для третьих лиц. Discord Developer Portal показывает несколько статистик владельцу бота (количество гильдий, количество участников), но телеметрия для каждой команды и данные о задержке поступают из собственного кода бота.

Как мне добавить метрики Prometheus к моему Discord-боту?

Каждый крупный фреймворк бота имеет пример: discord.py оборачивает prometheus_client, discord.js имеет prom-client, Serenity имеет флаг функции metrics. Добавьте небольшой HTTP-сервер, который предоставляет /metrics на приватном порту; Prometheus скрейпит его.

Является ли Statbot бесплатным?

Базовые панели управления активностью бесплатны с ограниченным хранением. Более длинная история и несколько серверов требуют Premium (около $5/мес).

Какой лучший бесплатный монитор безотказной работы для бота?

Uptime Kuma, самохостируемый на любом хосте Docker. UptimeRobot (SaaS) бесплатен для небольшого количества мониторов, если вы предпочитаете не размещать его.

Могу ли я мониторить бота, которым я не управляю?

Вы можете измерить его воздействие на ваш сервер (журнал аудита, объём сообщений, задержка его ответов), но не его внутренние метрики. Попросите статус-страницу оператора бота, если безотказная работа для вас важна.

Как долго журналы аудита Discord остаются?

Discord хранит записи журнала аудита около 45 дней. Для более длительного хранения зеркалируйте журнал аудита в базу данных через небольшого логирующего бота или получателя webhook.