linux/arm64, решает, будет ли эта
архитектура и дальше получать релизные образы. Знание о том, какие версии ещё живы,
решает, как долго поддерживается базовая линия миграций. Ни одному из этих вопросов не
нужны ни клиент, ни сумма, ни домен, — поэтому ничего из этого не собирается.
Точный вид события
Вот полное тело JSON, поле за полем:
Формат передачи объявляет также необязательные словари
features и counters. Ни один
процесс Omniflow их не заполняет, поэтому в каждом запросе они опущены. В том, что
отправляется сегодня, нет ни перечня модулей, ни счётчика использования; если это
изменится, эта страница и публичная схема изменятся в одном и том же релизе.
Что не собирается никогда
- Идентификаторы клиентов, Telegram ID, имена пользователей и адреса электронной почты
- IP-адреса, имена хостов, домены и URL
- Суммы платежей, валюты, балансы кошельков, выручка и полезные нагрузки провайдеров
- Трафик VPN, ссылки доступа, URL подписок, ноды и идентификаторы устройств
- Токены, секреты, содержимое сообщений, названия тарифов, тексты обращений и любые другие данные в свободной форме
- Количества строк любого рода — число, достаточно маленькое, чтобы опознать установку, является идентификатором
Тайминг и поведение при сбоях
Один сигнал уходит сразу при старте API, затем по одному каждые 24 часа. У HTTP-клиента тайм-аут 5 секунд, а отправитель отбрасывает результат: ответ не из класса 2xx, отказ DNS и недоступный коллектор обрабатываются одинаково, то есть игнорируются. Телеметрия никогда не может заблокировать ни старт, ни запрос, ни задачу, ни завершение работы, а защита черезsync.Once означает, что она стартует не более одного раза на процесс.
Если API не может прочитать или создать строку установки — нет APP_DATABASE_URL либо
база данных недоступна на старте, — он использует случайный UUID на время жизни этого
процесса и логирует telemetry installation ID is ephemeral.
Как это выключить
APP_TELEMETRY_ENABLED=nope
означает «включено», а не «выключено», — пишите именно false.
Конфигурация
Форки, которым нужны собственные числа, задают
APP_TELEMETRY_ENDPOINT на HTTPS-коллектор,
который они контролируют. Эндпоинт проверяется на старте, а не в момент отправки, поэтому
опечатка — это отказ загрузиться, а не год тихо потерянных событий.
Как запустить коллектор
APP_TELEMETRY_COLLECTOR_ENABLED=true монтирует POST /v1/telemetry/events на этой
установке и открывает второй пул к базе данных на запись. На обычной установке этого
маршрута не существует — поэтому на ней нечего закрывать файрволом.
Каждое поступление проверяется до сохранения, и событие, не прошедшее любую из проверок,
отклоняется целиком:
- тело ограничено 64 КиБ, а неизвестные поля JSON отвергаются сразу
schemaдолжна быть1, аinstallation_id— ровно 36 символовnameдолжно бытьinstallation.heartbeatилиfeature.usageversion≤ 32,service≤ 16,os≤ 32,architecture≤ 32 символов- не более 64 features и 64 counters, каждый ключ ≤ 64 символов из
[a-z0-9._] occurred_atдолжно быть ненулевым, не старше 7 дней и не более чем на 1 час в будущем
Строгость намеренна: коллектор принимает поступления от установок, которые он не
контролирует, поэтому неограниченный словарь или строка в свободной форме были бы
поверхностью для инъекции, а не единицей данных.
feature.usage принимается валидатором и
не порождается ничем, поэтому коллектор увидит от самого Omniflow только сигналы.
Коллектор ежедневным циклом удаляет собственные строки старше 180 дней, независимо от
прохода очистки в воркере. Сопровождающие используют агрегированные тренды по установкам и
платформам для решений о совместимости и дорожной карте. Сырые события не продаются и не
передаются для рекламы.
Связанные страницы
Настройки установки
Почему карточка телеметрии в панели и работающая конфигурация могут расходиться.
Безопасность
Более широкая позиция по приватности: редактирование, секреты и то, что не покидает установку.