Обучение
Модуль
Использование телеметрии в проекте .NET Aspire - Training
В этом модуле вы узнаете об использовании телеметрии для записи поведения облачного приложения и о том, как стек .NET Aspire упрощает хранение данных и его просмотр позже.
Этот браузер больше не поддерживается.
Выполните обновление до Microsoft Edge, чтобы воспользоваться новейшими функциями, обновлениями для системы безопасности и технической поддержкой.
.NET SDK включает функцию телеметрии, которая собирает данные об использовании и отправляет их в Microsoft при использовании команд .NET CLI. Данные об использовании содержат информацию об исключении в случае сбоя командной строки .NET CLI. Интерфейс командной строки .NET поставляется с пакетом SDK для .NET и представляет собой набор команд, позволяющих создавать, тестировать и публиковать приложения .NET. Данные телеметрии помогают команде .NET понять, как используются средства, чтобы их можно было улучшить. Сведения о сбоях помогают команде устранять проблемы и устранять ошибки.
Собранные данные публикуются в совокупном виде под лицензией Creative Commons Attribution License. Некоторые собранные данные публикуются на .NET CLI данные телеметрии.
dotnet
имеет две функции: запускать приложения и выполнять команды CLI. Данные телеметрии не собираются при использовании dotnet
для запуска приложения в следующем формате:
dotnet [path-to-app].dll
Данные телеметрии собираются при использовании одной из команд .NET CLI, например:
dotnet build
dotnet pack
dotnet run
Функция телеметрии пакета SDK для .NET включена по умолчанию для дистрибутивов Пакета SDK майкрософт. Чтобы отказаться от функции телеметрии, задайте для переменной среды DOTNET_CLI_TELEMETRY_OPTOUT
значение 1
или true
.
Одна запись телеметрии также отправляется установщиком пакета SDK для .NET при успешной установке. Чтобы отказаться, задайте переменную среды DOTNET_CLI_TELEMETRY_OPTOUT
перед установкой пакета SDK для .NET.
Важно!
Чтобы отказаться от установки: закройте установщик, задайте переменную среды, а затем снова запустите установщик с этим набором значений.
Пакет SDK для .NET отображает текст, аналогичный приведенному ниже при первом запуске одной из команд .NET CLI (например, dotnet build
). Текст может немного отличаться в зависимости от используемой версии пакета SDK. Этот «опыт первого запуска» — способ, которым компания Майкрософт уведомляет вас о сборе данных.
Telemetry
---------
The .NET tools collect usage data in order to help us improve your experience. The data is collected by Microsoft and shared with the community. You can opt-out of telemetry by setting the DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.
Read more about .NET CLI Tools telemetry: https://aka.ms/dotnet-cli-telemetry
Чтобы отключить это сообщение и приветственное сообщение .NET, задайте для переменной среды DOTNET_NOLOGO
значение true
. Обратите внимание, что эта переменная не влияет на отказ от телеметрии.
Функция телеметрии не собирает персональные данные, такие как имена пользователей или адреса электронной почты. Он не сканирует код и не извлекает данные уровня проекта, такие как имя, репозиторий или автор. Он не извлекает содержимое файлов данных, к которым обращаются или создаются приложениями, дампы любой памяти, занятой объектами ваших приложений, или содержимое буфера обмена. Данные безопасно отправляются на серверы Майкрософт с помощью технологии Azure Monitor, обладающей ограниченным доступом, и опубликованы под строгим контролем безопасности из защищенных хранилищ Azure.
Защита вашей конфиденциальности важна для нас. Если вы подозреваете, что данные телеметрии собирают конфиденциальные данные или данные небезопасно обрабатываются, отправьте проблему в репозиторий dotnet/sdk или отправьте сообщение электронной почты в dotnet@microsoft.com для расследования.
Функция телеметрии собирает следующие данные:
Версии пакета SDK | Данные |
---|---|
Все | Метка времени вызова. |
Все | Команда, вызванная (например, "сборка"), хэширована начиная с версии 2.1. |
Все | Трёхоктетный IP-адрес, используемый для определения географического расположения. |
Все | Операционная система и версия. |
Все | Идентификатор среды выполнения (RID), на котором выполняется пакет SDK. |
Все | Версия пакета SDK для .NET. |
Все | Профиль телеметрии: необязательное значение, используемое только с явным согласием пользователя и используемым внутри корпорации Майкрософт. |
>=2.0 | Аргументы и параметры команд: собираются несколько аргументов и параметров (не произвольные строки). См. собранные параметры . Хэширован после версии 2.1.300. |
>=2.0 | Выполняется ли пакет SDK в контейнере. |
>=2.0 | Целевые платформы (из события TargetFramework ), хэшированные начиная с версии 2.1. |
>=2.0 | Хэшированные адреса управления доступом к мультимедиа (MAC) (SHA256). |
>=2.0 | Был хэширован текущий рабочий каталог. |
>=2.0 | Отчет об успешной установке с хэшированным именем файла установочного exe. |
>=2.1.300 | Версия ядра. |
>=2.1.300 | Выпуск или версия Libc. |
>=3.0.100 | Перенаправлены ли выходные данные (true или false). |
>=3.0.100 | При сбое CLI/SDK тип исключения и его трассировка стека (только код CLI/SDK включен в отправляемую трассировку стека). Дополнительные сведения см. в телеметрии аварийных исключений . |
>=5.0.100 | Hashed TargetFrameworkVersion, используемый для сборки (свойство MSBuild) |
>=5.0.100 | Хешированный идентификатор среды выполнения, используемый для сборки (свойство MSBuild) |
>=5.0.100 | Хэшированные selfContained, используемые для сборки (свойство MSBuild) |
>=5.0.100 | Хэшированный UseApphost, применяемый для сборки (свойство MSBuild) |
>=5.0.100 | Hashed OutputType, используемый для сборки (свойство MSBuild) |
>=5.0.201 | Хешированный PublishReadyToRun, используемый для сборки (свойство MSBuild) |
>=5.0.201 | Используется Hashed PublishTrimmed для сборки (свойство MSBuild) |
>=5.0.201 | Hashed PublishSingleFile, используемый для сборки (свойство MSBuild) |
>=5.0.202 | Прошедшее время от начала процесса до входа в основной метод программы CLI, измеряя время старта хоста и времени выполнения. |
>=5.0.202 | Время, затраченное на добавление инструментов .NET в путь при первом запуске. |
>=5.0.202 | Прошедшее время для отображения уведомления о первом использовании при первом запуске. |
>=5.0.202 | Истекло время создания сертификата ASP.NET при первом запуске. |
>=5.0.202 | Время, затраченное на анализ входных данных CLI. |
>=6.0.100 | Архитектура ОС |
>=6.0.104 | Hashed PublishReadyToRunUseCrossgen2, используемый для сборки (свойство MSBuild) |
>=6.0.104 | Hashed Crossgen2PackVersion, используемый для сборки (свойство MSBuild) |
>=6.0.104 | Hashed CompileListCount, используемый для сборки (свойство MSBuild) |
>=6.0.104 | Хэшированные значения _ReadyToRunCompilationFailures, которые используются для сборки (это свойство MSBuild) |
>=6.0.300 | Если интерфейс командной строки был вызван из среды непрерывной интеграции. Для получения дополнительной информации см. Обнаружение непрерывной интеграции. |
>=7.0.100 | Hashed PublishAot, используемый для сборки (свойство MSBuild) |
>=7.0.100 | Hashed PublishProtocol, используемый при сборке (свойство MSBuild) |
>=8.0.100 | Хешированный TargetPlatformIdentifier, используемый для сборки (свойство MSBuild) |
>=8.0.100 | Хэширо́ванная HybridGlobalization, используемая для сборки (свойство MSBuild) |
>=8.0.100 | Используется ли пакет SDK для .NET Blazor WebAssembly. |
>=8.0.100 | Используется ли пакет SDK для .NET WebAssembly. |
>=8.0.100 | Используется ли .NET MAUI. |
>=8.0.100 | Используется ли пакет SDK для .NET для мобильных устройств. |
>=8.0.100 | Используются ли другие мобильные пакеты SDK (например, Avalonia, Uno). |
>=8.0.100 | Используется ли Mono AOT. |
>=8.0.100 | Используется ли функция Mono AOT strip IL. |
>=8.0.100 | Используется ли интерпретатор Mono. |
>=8.0.100 | Используется ли режим библиотеки для мобильных устройств. |
>=8.0.100 | Используется ли NativeAOT. |
>=8.0.100 | Используется версия пакета среды выполнения Mono. |
Некоторые команды отправляют дополнительные данные. Подмножество команд отправляет первый аргумент:
Команда | Данные первого аргумента, отправленные |
---|---|
dotnet help <arg> |
Запрашивается справочная информация по команде. |
dotnet new <arg> |
Имя шаблона (хэшировано). |
dotnet add <arg> |
Слово package или reference . |
dotnet remove <arg> |
Слово package или reference . |
dotnet list <arg> |
Термин package или reference . |
dotnet sln <arg> |
Слово add , list или remove . |
dotnet nuget <arg> |
Слово delete , locals или push . |
dotnet workload <subcommand> <arg> |
Слово install , update , list , search , uninstall , repair , restore и имя нагрузки в хешированном виде. |
dotnet tool <subcommand> <arg> |
Слово install , update , list , search , uninstall , run и имя инструмента dotnet (хэшировано). |
Подмножество команд отправляет выбранные параметры, если они используются, а также их значения:
Выбор | Команды |
---|---|
--verbosity |
Все команды |
--language |
dotnet new |
--configuration |
dotnet build , dotnet clean , dotnet publish , dotnet run , dotnet test |
--framework |
dotnet build , dotnet clean , dotnet publish , dotnet run , dotnet test , dotnet vstest |
--runtime |
dotnet build , dotnet publish |
--platform |
dotnet vstest |
--logger |
dotnet vstest |
--sdk-package-version |
dotnet migrate |
Если SDK не может разрешить встроенную команду, любой резолвер команд, который успешно разрешает команду, отправляет хэш имени команды вместе с именем типа резолвера команд.
Кроме --verbosity
и --sdk-package-version
, все остальные значения хэшируются начиная с пакета SDK для .NET Core 2.1.100.
Команда создания шаблонов dotnet new
собирает дополнительные данные для шаблонов, созданных Корпорацией Майкрософт, начиная с пакета SDK для .NET Core 2.1.100:
--framework
--auth
Если .NET CLI/SDK завершается сбоем, он собирает имя исключения и трассировку стека в коде CLI/SDK. Эти сведения собираются для оценки проблем и улучшения качества пакета SDK для .NET и ИНТЕРФЕЙСА командной строки. В этой статье содержатся сведения о собираемых данных. Он также содержит советы о том, как пользователи строят собственную версию пакета SDK для .NET, чтобы избежать непреднамеренного раскрытия личных или конфиденциальных сведений.
Интерфейс командной строки .NET собирает сведения только для исключений CLI/SDK, а не исключений в приложении. Собранные данные содержат имя исключения и трассировку стека. Эта трассировка стека относится к коду CLI/SDK.
В следующем примере показан тип собранных данных:
System.IO.IOException
at System.ConsolePal.WindowsConsoleStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.IO.StreamWriter.Write(Char[] buffer)
at System.IO.TextWriter.WriteLine()
at System.IO.TextWriter.SyncTextWriter.WriteLine()
at Microsoft.DotNet.Cli.Utils.Reporter.WriteLine()
at Microsoft.DotNet.Tools.Run.RunCommand.EnsureProjectIsBuilt()
at Microsoft.DotNet.Tools.Run.RunCommand.Execute()
at Microsoft.DotNet.Tools.Run.RunCommand.Run(String[] args)
at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient)
at Microsoft.DotNet.Cli.Program.Main(String[] args)
Чтобы определить, выполняется ли интерфейс командной строки .NET в среде непрерывной интеграции, интерфейс командной строки .NET проверяет наличие и значения нескольких известных переменных среды, которые задают общие поставщики CI.
Ниже показан полный список переменных среды и то, что делается с их значениями. Обратите внимание, что в каждом случае значение переменной среды никогда не собирается, используется только для задания логического флага.
Переменные | Поставщик | Действие |
---|---|---|
TF_BUILD | Azure Pipelines | Разобрать логическое значение |
GITHUB_ACTIONS | Действия GitHub | Разобрать логическое значение |
APPVEYOR | Appveyor | Разобрать логическое значение |
CI | Многие или большинство | Разбор логического значения |
ТРЭВИС | Трэвис CI | Анализировать булево значение |
CIRCLECI | Circle CI | Разобрать булево значение |
CODEBUILD_BUILD_ID, AWS_REGION | Amazon Web Services CodeBuild (сервис для автоматизации сборки и тестирования) | Проверьте, что все значения присутствуют и не равны NULL. |
ИДЕНТИФИКАТОР_СБОРКИ, URL_СБОРКИ | Дженкинс | Проверка, что все элементы присутствуют и не равны NULL |
BUILD_ID, PROJECT_ID | Google Cloud Build | Проверьте, что все элементы присутствуют и не равны NULL. |
TEAMCITY_VERSION | TeamCity | Проверка наличия и ненулевого значения |
JB_SPACE_API_URL | JetBrains Space | Проверьте наличие и ненулевое значение |
Участники .NET и другие пользователи, работающие с версией пакета SDK для .NET, которые они создали сами, должны рассмотреть путь к исходному коду пакета SDK. Если происходит сбой при использовании пакета SDK для .NET, который является пользовательской сборкой отладки или настроен с помощью пользовательских файлов символов сборки, путь к исходному файлу пакета SDK с компьютера сборки собирается в рамках трассировки стека и не хэшируется.
Из-за этого пользовательские сборки пакета SDK для .NET не должны находиться в каталогах, имена путей которых предоставляют личную или конфиденциальную информацию.
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Обучение
Модуль
Использование телеметрии в проекте .NET Aspire - Training
В этом модуле вы узнаете об использовании телеметрии для записи поведения облачного приложения и о том, как стек .NET Aspire упрощает хранение данных и его просмотр позже.