Linux Daily Topics

2019年1月22日We don't want to track; just count ―Fedora、ユーザ数の計測にUUIDを採用へ

Linuxディストリビューション、なかでもFedoraやopenSUSEのように多くのユーザを抱えるプロジェクトが頭を悩ます問題のひとつにユーザトラッキングが挙げられる。自分たちが作るソフトウェアがどのくらいの数のユーザに使われているのかを知ることは、今後のアップデートに向けて欠かせない作業だが、トラッキングはプライバシーの問題とも関わってくるため、ユーザを不快にさせない手段でもって正確な数字をカウントすることは非常にむずかしい。加えてオープンソースの場合、かかるコストが小さく、シンプルなアーキテクチャを実装することが求められる。

Fedoraの場合、これまではユーザ数のカウントにユニークIPアドレスを使っていたが、プロジェクトリーダーのMathew Millerをはじめとするコアメンバーは、つねによりよい計測方法を模索し、議論を重ねてきた。ユニークIPアドレスによるカウントは、NATに影響されてしまうため、実際より少ない数字になってしまうという問題がある。逆に、DHCPのリリースが短い期間で頻繁に行われたり、ノートPCに入れているユーザのように場所を移動するたびに異なるWi-Fiを掴んでいるケースでは、実際より多い数をカウントすることになってしまう。また、コンテナ利用が普及してきた昨今では、コンテナ上のテスト環境で一時的に利用されているシステムと、長期的なインストレーションシステムを区別する必要があるが、IPアドレスベースではそれもむずかしい。

「Fedoraコミュニティはプライバシーに配慮しており、トラッキングという手段には反対の立場をとっている。我々は追跡(track)することを望まない。計測(count)するだけだ⁠⁠ ―この立場を崩すことなく、かつ、できるだけ正確にユーザ数を計測するための現状の打開策として、UUID(Unique User ID)を採用する方針であることを明らかにしている。

Changes/DNF Better Counting - Fedora Project Wiki

UUIDはopenSUSEでも採用されているユーザ数のカウント方法で、Fedoraは「VARIANT_ID」を介して、デスクトップ環境やマシンアーキテクチャ、OSのバージョンといった情報のみを収集する。また、短期的なテスト環境か長期的なインストレーションかを識別するために、新たな変数として「countme」を追加している。countmeはユーザがFedoraのアップデートサーバに最初に接続した際に"true"を返し、その後すぐに"false"にリセットされ、1週間後にふたたび"true"にリセットされる。このとき、最初の接続時には"1"を、1週間後(またはそれ以降)に再び接続が確認されたときには"2"を、さらに1週間後に確認されたときは"3"を…とインクリメントしていくことで、Fedora側はCIの識別がしやすくなるという。

Fedora現在、UUIDによるカウントをテスト中で、GNOMEやDNFなどのチームとともにプロジェクトを進めており、5月にリリースが予定されている「Fedora 30」での実装を目指している。

おすすめ記事

記事・ニュース一覧