Homebrew の分析機能、Google から離れて EU へ移行
(docs.brew.sh)- Homebrew は匿名分析データを InfluxDB で収集し、初回の
brew update実行時またはインストール時に通知を表示した後でのみ分析を有効化する - 無料・ボランティアベースのプロジェクトという性質上、formula の失敗率、OS バージョン、コマンドの使用頻度といったデータが、機能や修正の優先順位を決める根拠になる
- InfluxDB の匿名分析データは 365日 保持され、過去に Google Analytics へ送信されていた分析データはすべて削除された
- 収集範囲は、CI かどうか、デフォルトのインストール prefix を使っているか、CPU アーキテクチャ、OS と Homebrew のバージョン、インストール・ビルドエラー・コマンド実行イベントなどに限定される
- ユーザーは
HOMEBREW_NO_ANALYTICS=1またはbrew analytics offで分析を無効化でき、特定のイベントを特定のユーザーに結び付けたり、IP アドレスを保存したりすることはない
分析を有効化するタイミングと利用する理由
- Homebrew は無料で提供され、ボランティアが余暇に運営しているため、機能設計や作業の優先順位を決めるための専用のユーザー調査リソースが不足している
- 匿名分析は、Homebrew がどのように、どこで、いつ使われているかを把握し、修正と機能の優先順位を決めるために使われる
- 広く使われているが頻繁に失敗する formula は、他の formula より修正の優先順位が高くなる可能性がある
- OS バージョン情報は、サポートする macOS バージョンの優先順位付けや、特定バージョンでのみ発生するビルド失敗の特定に活用される
- 使用頻度の低いコマンドは廃止される場合がある
- 分析は、最初に
brew updateを実行するか Homebrew をインストールする際に通知を表示した後でのみ有効化される- 通知前には分析データを送信しないため、ユーザーはデータ送信前に opt-out できる
- InfluxDB に保存される匿名分析データの保持期間は 365日
- 過去に Google Analytics へ送信されていたすべての分析データは削除された
送信されるイベントと収集範囲
- すべての formula または cask イベントには共通情報があわせて記録される
- CI から送信されるかどうか
- デフォルトのインストール prefix を使用しているかどうか
- デフォルト prefix の例:
/opt/homebrew - カスタム prefix の例:
/home/mike/.brew - カスタム prefix は匿名性を保つため
custom-prefixとして送信される
- デフォルト prefix の例:
HOMEBREW_DEVELOPER環境変数が設定されているかどうか- Homebrew 開発者向けコマンドを実行したことがあるかを示す
devcmdrunの有無 - CPU アーキテクチャ、例:
x86_64 - OS とバージョン、例:
macOS 13 - Homebrew バージョン、例:
4.0.0
- Homebrew の分析は複数のイベントカテゴリを記録する
install: 非公開ではない GitHub tap からインストールした Homebrew formula と使用オプションinstall_on_request: ユーザーが明示的にインストールを要求した formula とオプションcask_install: 非公開ではない GitHub tap からインストールした Homebrew caskbuild_error: インストールに失敗した formula とオプション- ビルドエラーの詳細やログは送信されない
command_run: 実行したコマンドとフラグtest_bot_test: Homebrew CI 環境でのみ pull request のテスト結果記録に使用される
HOMEBREW_ANALYTICS_DEBUG=1を環境に設定すると、Homebrew の分析が送信するすべての情報を確認でき、この設定は分析の送信も停止する- 分析データは Homebrew の実行中に HTTPS 経由で InfluxDB に送信される
公開データ、コード、opt-out
- 集計された分析イベントは公開ページで確認でき、JSON API も提供されている
- ほとんどの Homebrew メンテナーには、この公開リソースを超える詳細な分析データへのアクセス権は与えられない
- Homebrew 開発者は特定のイベントを特定のユーザーに結び付けることはできず、IP アドレスも保存または受信しない
- 分析コードは
analytics.rbとanalytics.shで確認できる- 別のバックグラウンドプロセスで実行される
- Homebrew の実行を遅らせないよう、すばやく失敗する
- ネットワーク接続がない場合は、即座に静かに失敗する
- 分析を無効化するには、環境変数またはコマンドを使用できる
export HOMEBREW_NO_ANALYTICS=1brew analytics off
1件のコメント
Hacker Newsのコメント
Homebrewの分析機能は現在、EUのInfluxDBインスタンスへ完全に移行され、以前より少ないデータしか収集せず、Google Analyticsのデータはすべて削除されたとのこと
https://docs.brew.sh/Analytics
今朝アップデート中に
brew analyticsを実行してみたところ、InfluxDB analytics are disabled.とGoogle Analytics were destroyed.と表示されたHOMEBREW_NO_ANALYTICS 1を設定している状態だからで、この設定を外せば InfluxDB分析 が有効になるHomebrewチームが Google Analyticsから離脱するという約束 を守ったのは祝うべきこと
現在の設定が以下のようになっていると、
brew analytics stateでは InfluxDB分析は無効、Google Analyticsは削除済みと表示されるHOMEBREW_NO_GOOGLE_ANALYTICS 1HOMEBREW_NO_ANALYTICS 1その後
brew updateを実行すると、HOMEBREW_NO_GOOGLE_ANALYTICSはもはや効果がないので解除してよいという警告とともに、分析はEUのInfluxDBへ移行され、brew analytics onで再度有効化してほしいという案内が出るそれでも InfluxDB分析を有効にしたくない なら、
HOMEBREW_NO_ANALYTICS 1は引き続き維持する必要があるHomebrewがあるからmacOSを使い続けていて、なければLinuxで
aptを使っていたと思うbrew.shのように aptパッケージ検索 がしやすいサイトがあるのか気になる。Ubuntuのaptページはあまりに分かりにくいapt-cache searchを使うパッケージマネージャーがなぜ 分析データ を収集する必要があるのか分からない
収集されるデータもデバイスフィンガープリントで識別可能かもしれない
分析データは警告システムであり、パッケージの重要度や不安定性などを判断する現実的な根拠になる
またHomebrewはmacOS上で動作するが、AppleがmacOSをどう変更するかを制御できないため、Appleの一方的な変更で生じる破損を素早く検知するのにも分析が役立つ
Homebrewは無料で、完全にボランティアが余暇に運営しているため、今後の機能設計や現在の作業優先順位を決めるための詳細なユーザー調査を行う余力がない
匿名分析 によって、どのformulaが広く使われていて頻繁に失敗するのか、どのmacOSバージョンを優先してサポートすべきか、特定バージョンでのみ発生するビルド失敗は何かを判断できる
追記: Google Analyticsの利用自体 には問題がないという話もある
https://arstechnica.com/tech-policy/2023/07/big-tech-can-tra...
brew analytics off無料サービスのほうが、他サイトの延々とうっとうしいポップアップより GDPR準拠 をうまくやれるというのは驚きだ
あのいら立たしいポップアップは、必要だからというよりわざと嫌がらせしているように見えることすらある
「データが少ないほど問題も少ない」という点もあるが、官僚主義も大きい。以前GDPR準拠を担当したとき、セキュリティチームはすべてのデータを永久保存したがり、GDPRの適用範囲を判断する法務チームと一般法務チームは互いに対立していた
特に一般法務チームは、システムが何をしているのか理解しておらず説明も無視したまま、無関係だったり互いに矛盾したりする保存ポリシー変更を押し続けていた
データを収集したいならユーザーに尋ね、何をするのか正確に説明すればよい
難しくなるのは、ユーザーが範囲を正しく知れば同意しないほど大量のデータを集め、それを複数の第三者に送ろうとするときだ。そこからは、法的には準拠しているふりをしつつユーザーをだますために、最も悪質な手法が使われるようになる
コマンドラインツールですら自宅に テレメトリ を送ってくるとは実にすばらしい。スパイウェアでない場所がない
Homebrewはさまざまな形で壊れうる複雑なシステムであり、背後に企業があるわけでもなく、完全にオープンソースとして開発されている
実行中のシステムがどう動いているかをある程度見られることは基本だ。非常に有用なプロジェクトに時間を寄付している開発者に対して、被害妄想のせいで片手を縛って作業しろと求めるようなものだ
こうした要求が通れば、オープンソースソフトウェアは作られなくなるか、スパイウェアに対してはるかに善意の薄い営利企業に渡る可能性が高い
今回の話は、Homebrewプロジェクトがコミュニティの意見を聞いて プライバシー重視のセルフホスト分析 に移行したというものなので、こういう人たちは決して満足しないだろうし、無視するのが正しい
インターネット接続を必要としない単純なツールならともかく、Homebrewはコマンドラインツールであるだけでなく、動き続ける リポジトリとビルドシステム でもある
開発者なら、特定の変更がユーザー体験にどんな影響を与えるのか把握したいと思うだろう
Google Analyticsから離れるのは少し 気まずい選択 のように感じる
GoogleはChromeユーザー経由で欲しいデータのほとんどをすでに得られるし、GAは実質的に非ChromeユーザーまでGoogleに見えるようにする役割に近い
さらに重要なのは、Googleが自分のサイトで何を見ているのかを自分でも見られるようにしてくれることだ
GAを切ればGoogleの邪魔を少しはできるかもしれないが、ユーザー利用データのせいぜい10%ほどを減らす程度で、その代わりGoogleが自分について見ているものを自分が見る能力を失う
Googleは依然として検索トラフィックの90%以上を占めるので、GAをやめるのは頭を砂に突っ込むようなものに感じる
追跡されたりデータ共有されたりしたくない気持ちは分かるが、GAを切ることがその問題の解決になるのかは分からない
https://usercentrics.com/knowledge-hub/google-analytics-and-...
スウェーデン企業が巨額の罰金を科された例もある: https://techcrunch.com/2023/07/03/google-analytics-sweden-gd...