Microsoft使用.NET Core SDK遙測(cè)數(shù)據(jù)

責(zé)任編輯:editor004

作者: Jeff Martin

2017-07-31 11:01:53

摘自:INFOQ

必須加以重申的是,是否參與 NET Core SDK遙測(cè)項(xiàng)目是一種可選的行為,但是采用了默認(rèn)為參加的方式。Microsoft的 NET Core團(tuán)隊(duì)不僅擴(kuò)展了所采集的應(yīng)用信息數(shù)據(jù)的范圍,而且正根據(jù)他們從中獲得的實(shí)踐經(jīng)驗(yàn)去改進(jìn) NET Core 2 SDK。

Microsoft發(fā)布了采集自.NET Core SDK用戶的遙測(cè)原始數(shù)據(jù)集。數(shù)據(jù)集的時(shí)間跨度是從2016年第三季度到2017年第二季度,為了解當(dāng)前開(kāi)發(fā)人員使用SDK的情況提供了一個(gè)視角。據(jù)Microsoft的Rich Lander介紹,今后Microsoft將每季度提供一次遙測(cè)數(shù)據(jù)集,數(shù)據(jù)集將以開(kāi)放數(shù)據(jù)共享署名許可(ODC-By,Open Data Commons Attributions License)提供。

數(shù)據(jù)反映的是從命令行使用.NET Core的情況,因此未涉及.NET Core的Visual Studio用戶。.NET Core SDK 1.X采集如下應(yīng)用信息:

正在使用的命令(例如:build、restore等);命令的退出碼(ExitCode);對(duì)測(cè)試項(xiàng)目所使用的測(cè)試運(yùn)行程序;調(diào)用的時(shí)間戳;運(yùn)行時(shí)節(jié)點(diǎn)中是否存在運(yùn)行時(shí)ID正在使用的CLI版本;操作系統(tǒng)版本。

Lander指出,對(duì)于.NET Core SDK 2.X系列,遙測(cè)進(jìn)一步采集下述應(yīng)用信息。應(yīng)注意的是,每個(gè)從命令行運(yùn)行.NET Core SDK的機(jī)器,對(duì)應(yīng)于一個(gè)匿名并唯一的ID:

dotnet命令的參數(shù)和選項(xiàng),用于確定使用該產(chǎn)品的更多細(xì)節(jié)信息。例如,采集dotnet new的模板名稱(chēng),采集dotnet build --framework netstandard2.0所指定的框架。遙測(cè)只采集一些給定的參數(shù)和選項(xiàng),而非任意的字符串。

容器,用于確定SDK是否在容器中運(yùn)行。這有助于Microsoft確定是否應(yīng)進(jìn)一步提供更多的支持容器的工作。

命令的持續(xù)時(shí)間,用于確定一個(gè)命令運(yùn)行的時(shí)間。這對(duì)于識(shí)別那些值得深入調(diào)查的性能問(wèn)題十分有用。

目標(biāo).NET框架,用于確定所使用的目標(biāo)框架,以及是否指定了多個(gè)框架。該應(yīng)用信息對(duì)于了解最廣泛使用的.NET標(biāo)準(zhǔn)版本情況,以及需要什么樣的使用指導(dǎo)是十分有用的。

哈希MAC地址,用于確定機(jī)器的加密ID。該ID是匿名且唯一的。這對(duì)于確定使用.NET Core機(jī)器的總體數(shù)量十分有用??紤]到用戶的反饋意見(jiàn),Lander稱(chēng)這些數(shù)據(jù)將不會(huì)對(duì)公眾發(fā)布。

必須加以重申的是,是否參與.NET Core SDK遙測(cè)項(xiàng)目是一種可選的行為,但是采用了默認(rèn)為參加的方式。這意味著,如果開(kāi)發(fā)人員不希望參與其中,將必須去設(shè)置一個(gè)環(huán)境變量(即DOTNET_CLI_TELEMETRY_OPTOUT)啟動(dòng)禁用。此外,Lander重申了遙測(cè)并非.NET Core運(yùn)行時(shí)的組成部分,因此應(yīng)用信息采集只針對(duì).NET Core SDK用戶。

Microsoft的.NET Core團(tuán)隊(duì)不僅擴(kuò)展了所采集的應(yīng)用信息數(shù)據(jù)的范圍,而且正根據(jù)他們從中獲得的實(shí)踐經(jīng)驗(yàn)去改進(jìn).NET Core 2 SDK。首先,團(tuán)隊(duì)將會(huì)為不同的Linux提供統(tǒng)一的構(gòu)建版本,而非為每個(gè)其所支持的發(fā)布版(例如Red Hat、Debian等)提供一個(gè)單獨(dú)的版本。其次,一個(gè)對(duì)macOS用戶利好的消息是,OpenSSL不再是必須的。團(tuán)隊(duì)正為實(shí)現(xiàn)從源代碼構(gòu)建.NET Core 2而做一些改進(jìn)(此前并未提及),使得.NET Core 2 SDK更易于加入到Linux發(fā)布版的軟件包架構(gòu)中。

有意思的是,在不同的操作系統(tǒng)上,使用得最多的命令是不同的。

OS X(macOS):“restore”使用得最多;Linux:“run”使用得最多(達(dá)一千一百萬(wàn)次,遠(yuǎn)高于第二名“restore”的三百萬(wàn)次);Windows:“build”使用得最多。

.NET Core SDK本身并不記錄用戶的IP地址,但Microsoft的服務(wù)器會(huì)做記錄??蛻舻腎P被截為三個(gè)八位的字節(jié),這使得Microsoft可以追蹤全球范圍內(nèi)的SDK使用情況。對(duì)于從操作系統(tǒng)層面看,.NET Core SDK開(kāi)發(fā)人員使用Windows最多,占71%,使用Linux的占18%,而使用macOS的占11%。

如果對(duì)這些已提供的數(shù)據(jù)集感興趣,可以直接從Microsoft獲取。(需提請(qǐng)注意的是,這些數(shù)據(jù)集是一些很大的文件,大小從188M到516M不等。)獲取地址分別為:

查看英文原文: How Microsoft Uses the .NET Core SDK Telemetry

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)