d31zyDomainInfo - Мониторинг & Анализ доменов

Платно Для прокси Плагин d31zyDomainInfo - Мониторинг & Анализ доменов 1.0.5-RELEASE

Нет прав для приобретения ("549.00" ₽)

Что добавилось

  • Автоочистка базы данных - плагин сам удаляет старые записи (историю подключений, пинги, историю геолокаций), чтобы БД не росла бесконечно. Сроки хранения настраиваются в config.yml, по умолчанию выключено.
  • Discord-бот — точная копия Telegram-панели: команда /domaininfo открывает меню с доменами, онлайном, историей, статистикой и заметками.
  • VK-бот - то же самое меню, но в личных сообщениях сообщества ВКонтакте.
  • REST API - плагин теперь может отдавать данные (онлайн по доменам, список игроков, статистику) любому внешнему сайту или сервису по HTTP-запросу с ключом доступа. Пригодится, если хотите вывести онлайн-счётчик на сайт сервера или подключить свою панель мониторинга.
  • Вебхуки - плагин может сам стучаться на любой ваш URL при событиях (игрок зашёл/вышел, сменил локацию, пинг домена) и присылать JSON с данными. Годится для связки с n8n, Zapier и подобными автоматизациями.
  • Синхронизация через Redis - если у вас несколько прокси-серверов в сети, их теперь можно связать через Redis, чтобы онлайн по доменам и боты показывали игроков со всех серверов сразу, а не только с одного.
  • Ускорение записи в БД - частые события (особенно пинги от сайтов-мониторингов серверов) теперь пишутся в базу пачками, а не по одной записи - меньше нагрузка на большой сети.
  • Ограничение кэша геолокации - теперь можно задать максимальный размер кэша в настройках, чтобы контролировать память на серверах с большим потоком игроков.

Что исправлено

  • Кэш геолокации раньше мог расти бесконечно и постепенно съедать память на серверах с большим количеством уникальных IP - теперь он ограничен по размеру.
  • В хранилище MongoDB кнопка удаления заметки могла не срабатывать из-за нестыковки внутренних идентификаторов - починил, теперь работает одинаково на всех типах баз (SQLite/MySQL/MariaDB/PostgreSQL/MongoDB).

API Обновление

  • DomainInfoAPI пополнен высокоуровневыми методами: getOnlineCount(domain), getActiveDomains(), getDomainStats(domain[, period]), getPlayerGeo(uuid) - сторонним плагинам больше не нужно знать структуру DataStorage.
  • DataStorage пополнен методами purgeOldConnections/purgeOldPings/purgeOldLocationHistory(beforeEpochMillis) - возвращают количество удалённых строк, используются retention-сервисом, но доступны и напрямую.
  • REST API (config.api) поднят на встроенном com.sun.net.httpserver (без Javalin/Jetty). Эндпоинты: GET /api/v1/domains, /api/v1/domains/{domain}/online, /api/v1/domains/{domain}/stats?period=7d. Авторизация - Authorization: Bearer <apiKey>, сравнение ключа константным по времени через MessageDigest.isEqual. Сервис не стартует, пока apiKey не изменён со значения по умолчанию.
  • Webhook-слой (config.webhook) — POST с JSON на onConnect/onDisconnect/onLocationChanged/onPing, опциональная подпись тела HMAC-SHA256 в заголовке X-Signature.
  • Redis-клиент — минимальный самописный RESP2-клиент поверх обычного TCP-сокета (RedisClient), без Jedis/Lettuce. ClusterSessionService синхронизирует SessionManager между нодами через Pub/Sub (join/leave + периодический снапшот на случай позднего старта ноды). SessionManager теперь хранит localSessions и remoteSessions раздельно, агрегируя их во всех публичных методах.
  • Discord/VK боты реализованы без сторонних SDK: Discord — сырой Gateway (java.net.http.WebSocket) + slash-команда/message components/modals, без JDA; VK — Bots Long Poll API.
  • Батчинг записи реализован через общий BatchWriter<T> (буфер + периодический executeBatch()/insertMany()), подключается к recordConnect/recordPing во всех storage-реализациях через config.performance.
Назад
Сверху Снизу