Анонимная телеметрия установок
Чтобы понимать, сколько инсталляций активно и какие версии используются, бот может раз в сутки отправлять один полностью обезличенный «heartbeat». Телеметрия задумана как self-hosted friendly: её легко выключить, она не содержит персональных данных и не мешает работе бота.
Что отправляется
Заголовок раздела «Что отправляется»Каждый сигнал — это случайный непривязанный идентификатор установки плюс грубые факты об окружении:
| Поле | Пример | Назначение |
|---|---|---|
installation_id |
f47ac10b-... (UUIDv4) |
Случайный идентификатор установки. Генерируется один раз, хранится в БД. Не выводится из токена, домена или ID администраторов. |
app_version |
v3.4.6+gabc1234 |
Полная версия сборки. |
app_version_tag |
v3.4.6 |
Релизный тег для разбивки по версиям. |
build_provenance |
official / custom |
Маркер происхождения образа. official ставится только официальной сборкой проекта; локальные сборки и форки считаются custom. |
image_modified |
false / true |
Удобный булевый флаг для разбивки: false только у официальных образов, true у локальных/форк-сборок. |
os / arch |
linux / x86_64 |
Платформа. |
python_version |
3.12.7 |
Версия рантайма. |
locale |
ru |
Язык по умолчанию. |
payment_providers |
["stars", "yookassa"] |
Идентификаторы включённых платёжных провайдеров (без ключей и секретов). |
users_bucket |
51-200 |
Число пользователей в виде диапазона, не точное значение. |
webapp_enabled / panel_configured |
true |
Флаги конфигурации. |
Время приёма (last_seen) проставляет коллектор. «Активные установки» = уникальные installation_id, от которых сигнал приходил за последние ~48 часов; «разбивка по версиям» = последняя версия на каждую установку.
Чего там нет
Заголовок раздела «Чего там нет»Никогда не отправляются: токен бота, домены, URL вебхуков, ключи платёжных систем и Remnawave, ID или данные пользователей, точное число пользователей, какой-либо контент, registry образа или URL форка.
Как выключить
Заголовок раздела «Как выключить»Достаточно любого из способов:
.env:TELEMETRY_ENABLED=False, затем перезапуск.- Веб-админка:
Admin → System → «Анонимная статистика установки». Переключатель применяется без перезапуска (читается из БД на каждом тике). - Сборка/образ: оставить пустыми
TELEMETRY_ENDPOINTилиTELEMETRY_API_KEY— без точки доставки беакон не запускается.
Доставка
Заголовок раздела «Доставка»Беакон шлёт POST {TELEMETRY_ENDPOINT}/capture/ в формате PostHog ({api_key, event, distinct_id, properties}). Доставка строго fire-and-forget: таймаут 10 секунд, любые ошибки проглатываются и логируются на уровне debug — телеметрия не может задержать или уронить воркер. При нескольких репликах воркера за интервал отправляет только одна (через Redis-lock).
Переменные окружения
Заголовок раздела «Переменные окружения»| Переменная | По умолчанию | Назначение |
|---|---|---|
TELEMETRY_ENABLED |
True |
Главный переключатель (opt-out). Дублируется тогглом в админке. |
TELEMETRY_ENDPOINT |
https://eu.i.posthog.com |
Хост приёма PostHog. Пусто — телеметрия выключена. |
TELEMETRY_API_KEY |
пусто | Project API key PostHog (phc_...). Это write-only ключ ingest, его безопасно зашивать в образ. Пусто — телеметрия выключена. |
TELEMETRY_INTERVAL_HOURS |
24 |
Интервал между сигналами. |