【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

Microsoft 使用.NET Core SDK 遥测数据

  • 2017-07-30
  • 本文字数:1474 字

    阅读完需:约 5 分钟

Microsoft 发布了采集自.NET Core SDK 用户的遥测原始数据集。数据集的时间跨度是从 2016 年第三季度到 2017 年第二季度,为了解当前开发人员使用 SDK 的情况提供了一个视角。据 Microsoft 的 Rich Lander 介绍,今后 Microsoft 将每季度提供一次遥测数据集,数据集将以开放数据共享署名许可(ODC-By,Open Data Commons Attributions License)提供。

数据反映的是从命令行使用.NET Core 的情况,因此未涉及.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 框架,用于确定所使用的目标框架,以及是否指定了多个框架。该应用信息对于了解最广泛使用的.NET 标准版本情况,以及需要什么样的使用指导是十分有用的。
  • 哈希 MAC 地址,用于确定机器的加密 ID。该 ID 是匿名且唯一的。这对于确定使用.NET Core 机器的总体数量十分有用。考虑到用户的反馈意见,Lander 称这些数据将不会对公众发布。

必须加以重申的是,是否参与.NET Core SDK 遥测项目是一种可选的行为,但是采用了默认为参加的方式。这意味着,如果开发人员不希望参与其中,将必须去设置一个环境变量(即 DOTNET_CLI_TELEMETRY_OPTOUT )启动禁用。此外,Lander 重申了遥测并非.NET Core 运行时的组成部分,因此应用信息采集只针对.NET Core SDK 用户。

Microsoft 的.NET Core 团队不仅扩展了所采集的应用信息数据的范围,而且正根据他们从中获得的实践经验去改进.NET Core 2 SDK。首先,团队将会为不同的 Linux 提供统一的构建版本,而非为每个其所支持的发布版(例如 Red Hat、Debian 等)提供一个单独的版本。其次,一个对 macOS 用户利好的消息是,OpenSSL 不再是必须的。团队正为实现从源代码构建.NET Core 2 而做一些改进(此前并未提及),使得.NET Core 2 SDK 更易于加入到 Linux 发布版的软件包架构中。

有意思的是,在不同的操作系统上,使用得最多的命令是不同的。

  • OS X(macOS):“restore”使用得最多;
  • Linux:“run”使用得最多(达一千一百万次,远高于第二名“restore”的三百万次);
  • Windows:“build”使用得最多。

.NET Core SDK 本身并不记录用户的 IP 地址,但 Microsoft 的服务器会做记录。客户的 IP 被截为三个八位的字节,这使得 Microsoft 可以追踪全球范围内的 SDK 使用情况。对于从操作系统层面看,.NET Core SDK 开发人员使用 Windows 最多,占 71%,使用 Linux 的占 18%,而使用 macOS 的占 11%。

如果对这些已提供的数据集感兴趣,可以直接从 Microsoft 获取。(需提请注意的是,这些数据集是一些很大的文件,大小从 188M 到 516M 不等。)获取地址分别为:

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

2017-07-30 19:001213
用户头像

发布了 227 篇内容, 共 71.5 次阅读, 收获喜欢 27 次。

关注

评论

发布
暂无评论
发现更多内容

最强总结——分布式事务处理方式

小闫

面试 分布式 分布式锁 分布式存储 分布式缓存

程序员是这样解读《隐秘的角落》

陈东泽 EuryChen

学习 程序员 隐秘的角落

打造Redis分布式环境下的银弹?我觉得Redisson比Redlock更胜一筹

码农月半

Java redis redis高可用 Redis项目

最右JS2Flutter框架——开篇(一)

刘剑

flutter 大前端 探索与实践

架构师训练营 - 第 5 周命题作业

红了哟

码农必备SQL高性能优化指南!35+条优化建议立马get

码哥小胖

MySQL SQL语法 sql查询 sql

深入理解队列:LinkedBlockingQueue源码深度解析

itlemon

阻塞队列 LinkedBlockingQueue Queue

啃碎并发(一):Java线程总述与概念

猿灯塔

一篇文章深入理解分布式锁

itlemon

redis 分布式锁

架构师训练营 - 第五周命题作业

牛牛

极客大学架构师训练营 命题作业 一致性Hash算法

搞懂Spring事务失效的8大原因,轻轻松松面试过关

码哥小胖

Java spring Spring Boot

老龄化时代的人机共生:京东数科以AI机器人推动产业增长

脑极体

这份架构PDF如何得到百度、洋码头、饿了么CTO等大咖联袂推荐?

小新

Java 架构 面试 队列

记录一次拼多多Web前端面试【一面+二面+hr面】

阿文

面试 Spring Cloud Spring Boot Web

Spring Boot 多数据源 Redis 配置

南南

redis 面试 Spring Boot Redis作者

Uniapp使用GoEasy实现websocket实时通讯

GoEasy消息推送

uni-app websocket 即时通讯

第五周总结

武鹏

阿里P7岗位面试,面试官问我:为什么HashMap底层树化的标准元素个数是8

鄙人薛某

Java 面试 hashmap 哈希

【week05作业】

chengjing

20道Redis面试题(含答案)面试官会问的我都找到了

你是人间四月天

redis 面试 Spring Cloud redis6.0.0 Redis项目

公司制的黄昏:区块链重构商业世界

CECBC

区块链思维 裂变 契约 激励

让你大显身手——掌握RocketMQ与Kafka中如何实现事务

小谈

kafka 面试 RocketMQ JVM原理

产业区块链发展迎来爆发期

CECBC

产业区块链 系统稳定性 应用安全性 信任的机器

正确的做事比做正确的事更重要

魔曦

架构师 极客大学架构师训练营

week5 学习总结

Geek_2e7dd7

week5

Geek_2e7dd7

架构师训练营 - 第 5 周学习总结

红了哟

因为我的一个低级错误,生产数据库崩溃了将近半个小时

鄙人薛某

Java MySQL 数据库 故障定位

架构师训练营 一致性Hash算法Java实现

Cloud.

【week05】总结

chengjing

阿里内推面试,挂在了一道简单的问题上…

小新

Java 阿里巴巴 程序员 架构 面试

Microsoft使用.NET Core SDK遥测数据_.NET_Jeff Martin_InfoQ精选文章