Различный софт всё чаще поставляется с модулями телеметрии, такими как Google Analytics. Раньше от этой проблемы страдали в основном проприетарное ПО для массового рынка. Но сейчас модель монетизации перенимают даже профессиональные инструменты для разработчиков и опенсорсные программы.

Homebrew, Gatsby, Syncthing, Netlify, Netdata и другие приложения снимают телеметрию. Конечно, здесь её можно отключить и ситуация не такая зловещая. Но слежка через Open Source распространилась настолько широко, что уже раздаются призывы принять единый стандарт вроде HTTP-заголовка 'Do Not Track', только в виде стандартной переменной среды для консольных интерфейсов.

Судя по всему, владельцы этих сервисов пытаются заработать деньги на пользовательских данных. Или сторонние бизнесмены покупают опенсорсный проект/приложение/расширение с целью монетизации. Так произошло недавно с популярным аудиоредактором Audacity. Этот отличный инструмент более 20 лет выпускается бесплатно для пользователей Linux, Windows и Mac.



В апреле 2021 года компания Muse Group (владелец MuseScore и Ultimate Guitar) объявила о покупке торговой марки Audacity и разработке аудиоредактора под своей крышей. 2 июля 2021 года были внесены изменения в пользовательское соглашение Audacity, по которому пользователи десктопного приложения теперь соглашаются на сбор и отправку персональных данных на серверы в Евросоюзе, откуда они будут передаваться в США и Россию: см. desktop privacy notice.

По умолчанию будет отправляться:

  • IP-адрес: например, 123.45.67.89).
  • Строка User-Agent: например, Audacity/3.0.3 (Windows 10_0_19042; x64)


Кроме того, компания оставляет за собой право продавать информацию третьим лицам.

Изменения в пользовательское соглашение Audacity вызвали бурю негодования. Компания поспешила заверить, что изменения не коснутся текущей версии приложения (3.0.2) и предыдущих версиях. Их реализуют только в будущем релизе. Телеметрия сопровождает отчёты об ошибках, и каждый пользователь получит право отказаться от отправки.

Конечно, остальные программы тоже предлагают различные настройки для отключения телеметрии. Например, в Gatsby опция GATSBY_TELEMETRY_DISABLED.

В Homebrew телеметрия отключается следующей командой:

brew analytics off

Или переменной среды:

export HOMEBREW_NO_ANALYTICS=1

В Syncthing параметр файла конфигурации STNOUPGRADE отключает сообщения о сбоях.

Вот как эта функция реализована в других инструментах:

Google Cloud SDK gcloud config set disable_usage_reporting true
.NET Core
DOTNET_CLI_TELEMETRY_OPTOUT
Netlify
netlify --telemetry-disable
AWS Serverless Application Model CLI
SAM_CLI_TELEMETRY=0
Microsoft Azure AZURE_CORE_COLLECT_TELEMETRY=0

Суть нового предложения — стандартизировать интерфейсы. То есть отключать слежку во всех приложениях через одну стандартную переменную среды:

export DO_NOT_TRACK=1

Переменные среды устанавливаются для приложения во всех стандартных ОС — Linux, macOS и Windows — и для облачной среды (AWS Lambda, Dockerfile и др.).

О чём говорит сам факт, что появилось предложение запретить трекинг через переменную среды?

Во-первых, это признание массового использования телеметрии в различных инструментах, в том числе профессиональных.

Во-вторых, это косвенное признание законности. В европейском законодательстве GDPR выдвигаются строгие требования к процедуре сбора персональных данных и подробно поясняется, какие данные можно считать таковыми. Судя по всему, минимальная телеметрия не подпадает под эти формулировки. Но все знают, что эти данные могут стать персональными в «правильных» руках, после объединения с многочисленными другими массивами якобы «анонимных» данных.

В третьих, как и в случае HTTP-заголовка 'Do Not Track', здесь мы используем принцип opt-out вместо opt-in. То есть от пользователя не требуется давать согласие на то, чтобы за ним начали следить. Но есть хотя бы гарантия, что слежка будет прекращена, если он явно укажет такое желание.

Из этических соображений всем компаниям, которые используют средства аналитики/телеметрии, предлагается реализовать поддержку стандартной переменной DO_NOT_TRACK=1 с запретом трекинга в любой форме, включая сбор анонимной статистики об использовании программы, отправку отчётов о сбоях, отправку телеметрии при получении автоматических обновлений и так далее. В общем, отправку любых данных, которые не имеют отношения к функциональности программы.

Поддерживать стандартную переменную среды уже согласились Netdata System Monitor (#7846) и Tilt (#2878). В других проектах зарегистрированы пул-реквесты:


Вероятно, эта идея родилась под влиянием другой стандартной переменной среды для консольных инструментов — NO_COLOR. Она означает запрет на дефолтное разукрашивание текста разными цветами, что часто встречается в консольных программах. Некоторым разработчикам нравится цветной текст, другим — нет. В любом случае, за последние несколько лет десятки опенсорсных программ реализовали поддержку этой директивы.