1 ポイント 投稿者 GN⁺ 2023-07-09 | 1件のコメント | WhatsAppで共有
  • 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 として送信される
    • 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 cask
    • build_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.rbanalytics.sh で確認できる
    • 別のバックグラウンドプロセスで実行される
    • Homebrew の実行を遅らせないよう、すばやく失敗する
    • ネットワーク接続がない場合は、即座に静かに失敗する
  • 分析を無効化するには、環境変数またはコマンドを使用できる
    • export HOMEBREW_NO_ANALYTICS=1
    • brew analytics off

1件のコメント

 
GN⁺ 2023-07-09
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 1
    HOMEBREW_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ページはあまりに分かりにくい

  • パッケージマネージャーがなぜ 分析データ を収集する必要があるのか分からない
    収集されるデータもデバイスフィンガープリントで識別可能かもしれない

    • Homebrewは完全に オープンソースの貢献者 たちによって維持されており、何千ものパッケージを最新に保つだけでも大仕事だ
      分析データは警告システムであり、パッケージの重要度や不安定性などを判断する現実的な根拠になる
      またHomebrewはmacOS上で動作するが、AppleがmacOSをどう変更するかを制御できないため、Appleの一方的な変更で生じる破損を素早く検知するのにも分析が役立つ
    • 記事冒頭の「Why?」に理由が書かれている
      Homebrewは無料で、完全にボランティアが余暇に運営しているため、今後の機能設計や現在の作業優先順位を決めるための詳細なユーザー調査を行う余力がない
      匿名分析 によって、どのformulaが広く使われていて頻繁に失敗するのか、どのmacOSバージョンを優先してサポートすべきか、特定バージョンでのみ発生するビルド失敗は何かを判断できる
    • 製品がどう使われているか分からなければ改善は難しい
    • 本当に気になるのだが、ここでいう デバイスフィンガープリント がどう機能するのか分からない
  • 追記: Google Analyticsの利用自体 には問題がないという話もある
    https://arstechnica.com/tech-policy/2023/07/big-tech-can-tra...

  • brew analytics off

  • 無料サービスのほうが、他サイトの延々とうっとうしいポップアップより GDPR準拠 をうまくやれるというのは驚きだ
    あのいら立たしいポップアップは、必要だからというよりわざと嫌がらせしているように見えることすらある

    • 個人データをほとんど保持しないシステムなら、GDPR準拠は当然ずっと簡単だ
      「データが少ないほど問題も少ない」という点もあるが、官僚主義も大きい。以前GDPR準拠を担当したとき、セキュリティチームはすべてのデータを永久保存したがり、GDPRの適用範囲を判断する法務チームと一般法務チームは互いに対立していた
      特に一般法務チームは、システムが何をしているのか理解しておらず説明も無視したまま、無関係だったり互いに矛盾したりする保存ポリシー変更を押し続けていた
    • 非営利サービスのほうが、ユーザーデータを最大限活用して金を稼ごうとするサービスより プライバシー遵守 をしっかりやると期待できる
    • GDPR準拠はとても簡単だ。そもそも 個人識別情報 を収集しなければよい
      データを収集したいならユーザーに尋ね、何をするのか正確に説明すればよい
      難しくなるのは、ユーザーが範囲を正しく知れば同意しないほど大量のデータを集め、それを複数の第三者に送ろうとするときだ。そこからは、法的には準拠しているふりをしつつユーザーをだますために、最も悪質な手法が使われるようになる
  • コマンドラインツールですら自宅に テレメトリ を送ってくるとは実にすばらしい。スパイウェアでない場所がない

    • 収益化のための追跡という意味での「スパイウェア」と、開発者が運用中のシステムの状態を把握するための テレメトリ を混同するのは愚かで有害だ
      Homebrewはさまざまな形で壊れうる複雑なシステムであり、背後に企業があるわけでもなく、完全にオープンソースとして開発されている
      実行中のシステムがどう動いているかをある程度見られることは基本だ。非常に有用なプロジェクトに時間を寄付している開発者に対して、被害妄想のせいで片手を縛って作業しろと求めるようなものだ
      こうした要求が通れば、オープンソースソフトウェアは作られなくなるか、スパイウェアに対してはるかに善意の薄い営利企業に渡る可能性が高い
      今回の話は、Homebrewプロジェクトがコミュニティの意見を聞いて プライバシー重視のセルフホスト分析 に移行したというものなので、こういう人たちは決して満足しないだろうし、無視するのが正しい
    • コマンドラインであることがなぜ区別の基準になるのか分からない
      インターネット接続を必要としない単純なツールならともかく、Homebrewはコマンドラインツールであるだけでなく、動き続ける リポジトリとビルドシステム でもある
      開発者なら、特定の変更がユーザー体験にどんな影響を与えるのか把握したいと思うだろう
  • Google Analyticsから離れるのは少し 気まずい選択 のように感じる
    GoogleはChromeユーザー経由で欲しいデータのほとんどをすでに得られるし、GAは実質的に非ChromeユーザーまでGoogleに見えるようにする役割に近い
    さらに重要なのは、Googleが自分のサイトで何を見ているのかを自分でも見られるようにしてくれることだ
    GAを切ればGoogleの邪魔を少しはできるかもしれないが、ユーザー利用データのせいぜい10%ほどを減らす程度で、その代わりGoogleが自分について見ているものを自分が見る能力を失う
    Googleは依然として検索トラフィックの90%以上を占めるので、GAをやめるのは頭を砂に突っ込むようなものに感じる
    追跡されたりデータ共有されたりしたくない気持ちは分かるが、GAを切ることがその問題の解決になるのかは分からない

    • これは コマンドラインツールの分析 なので、意図的にGoogleへ送らない限り、Googleが見るデータは0%だ
    • HomebrewのメンテナーたちもGAから離れてもいろいろ不満は出るだろうと予想していただろうが、それが「気まずい」だとは思わなかっただろう
    • GAは GDPRに準拠していない と判断されているので、EUで禁止されたくないならGAを離れなければならない
      https://usercentrics.com/knowledge-hub/google-analytics-and-...
      スウェーデン企業が巨額の罰金を科された例もある: https://techcrunch.com/2023/07/03/google-analytics-sweden-gd...