BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Microsoftが.NET Core SDKのテレメタリをどのように使っているか

Microsoftが.NET Core SDKのテレメタリをどのように使っているか

原文(投稿日:2017/07/26)へのリンク

Microsoftは.NET Core SDKのユーザーから収集したテレメタリから生データをリリースした。リリースされたデータは2016年第3四半期から2017年第2四半期までの期間をカバーし、開発者がSDKをどのように使っているかなど興味深い見解を提供している。 MicrosoftのRich Lander氏によると、Microsoftは今後、四半期ごとにテレメタリデータを提供する予定であり、データはOpen Data Commons Attributions Licenseとしてライセンスされる予定だ。

このデータは.NET Coreのコマンドラインユーザーを反映しているため、Visual Studioユーザーは含まれていない。.NET Core SDK 1.Xは以下のポイントでデータを収集している:

  • 使用されているコマンド(例えば:build, restore, など)
  • コマンドのExitCode
  • テストプロジェクトで使用されているテストランナー
  • 呼び出しのタイムスタンプ
  • ランタイムIDがランタイムノードに存在するかどうか
  • 使用されているCLIバージョン
  • オペレーティングシステムのバージョン

Lander氏によると、.NET Core SDK 2.Xシリーズでは、以下のデータポイントも追加で収集される。特にコマンドラインで実行されている.NET Core SDKが実行されているマシンのユニークIDが匿名で含まれている:

  • dotnet コマンドの引数とオプション — より詳細な製品の使用方法を確認する。例えばdotnet new, テンプレート名の収集。dotnet build --framework netstandard2.0で指定されたフレームワークを収集する。既知の引数とオプションのみが収集される(任意の文字列ではない)
  • コンテナ — コンテナ内でSDKが実行されているかどうかを判定する。Microsoftがコンテナをサポートするために作業することが役に立つかどうかを判定できるようにする
  • コマンドの継続時間 — コマンドの実行時間を判定する。パフォーマンスの問題を特定するのに役に立つ。
  • ターゲット.NET framework(s) — ターゲットフレームワークが使用されているか、複数指定されているかを判定する。どの.NET Standardバージョンがもっとも人気があって、使用方法のガイダンスが必要かどうかを理解する
  • ハッシュされたMACアドレス — 暗号化(SHA256)された匿名のマシンのユニークID。.NET Coreを使ったマシンの総数を判定するのに役に立つ。Lander氏によると、ユーザーからのフィードバックによっては、このデータポイントは公開されない

.NET Core SDKテレメタリプログラムへの参加はオプションだが、参加にはオプトアウトアプローチが必要になる。参加したくない場合は、環境変数(DOTNET_CLI_TELEMETRY_OPTOUT)で無効にする必要がある。Lander氏はテレメタリは.NET Coreランタイムの一部ではないことを繰り返しているため、このデータ収集は.NET Core SDKユーザーのみ可能である。

収集するデータポイントの拡張だけでなく、Microsoftの.NET Coreチームは彼らの学習をもとに.NET Core 2 SDKにいくつかの変更を加えている。ひとつめが、ディストリビューション(Red Hat, Debianなど)ごとのサポートではなく、単一のLinuxビルドを提供する。次にmacOSユーザーは、OpenSSLが必要なくなったことを知って喜んでいることだろう。ソースから.NET Core 2をビルドするための改善(これまでは記述されていなかった)されているため、Linuxディストリビューションのパッケージインフラストラクチャに含まれる可能性がある。

興味深いことに、人気のあるコマンドはオペレーティングシステムによって異なる:

  • OS X (macOS) – restoreが最も人気がある
  • Linux – runが最も人気がある (2番手のrestoreコマンドが3Mなのに対して、非常に多くのマージンを開けて11Mである)
  • Windows – buildが最も人気がある

.NET Core SDKはユーザーのIPアドレスを記録しないが、Microsoftのサーバーはそれをする。クライアントのIPは3オクテットのIPに切り捨てられ、Microsoftが世界中の.NET Core SDKの使用状況を追跡できる。オペレーティングシステムレベルの.NET Core SDK開発者は、Windowsが71%で最も多く、17%がLinux、11%がmacOSである。

利用可能なデータに興味がある場合は、Microsoftから直接入手できる。(これらは188~516メガバイトの大きなファイルであることに注意が必要だ)

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT