Telemetrie .NET SDK a .NET CLI
Sada .NET SDK obsahuje funkci telemetrie, která shromažďuje data o využití a odesílá je do Microsoftu při použití příkazů .NET CLI . Data o využití zahrnují informace o výjimce při chybovém ukončení rozhraní příkazového řádku .NET. .NET CLI se dodává se sadou .NET SDK a je sada příkazů, které umožňují sestavovat, testovat a publikovat aplikace .NET. Telemetrická data pomáhají týmu .NET pochopit, jak se nástroje používají, aby je bylo možné vylepšit. Informace o selháních pomáhají týmu vyřešit problémy a opravit chyby.
Shromážděná data se publikují v agregaci v rámci licence Creative Commons Attribution. Některá shromážděná data se publikuje v telemetrických datech rozhraní .NET CLI.
Obor
dotnet
má dvě funkce: spouštění aplikací a spouštění příkazů rozhraní příkazového řádku. Telemetrie se neshromažďuje při použití dotnet
ke spuštění aplikace v následujícím formátu:
dotnet [path-to-app].dll
Telemetrie se shromažďuje při použití některého z příkazů rozhraní příkazového řádku .NET, například:
dotnet build
dotnet pack
dotnet run
Jak se odhlásit
Funkce telemetrie sady .NET SDK je ve výchozím nastavení povolená pro distribuce sady SDK od Microsoftu. Pokud chcete vyjádřit výslovný nesouhlas s funkcí telemetrie, nastavte proměnnou DOTNET_CLI_TELEMETRY_OPTOUT
prostředí na 1
hodnotu nebo true
.
Instalační program sady .NET SDK odešle také jednu položku telemetrie, když proběhne úspěšná instalace. Pokud se chcete odhlásit, nastavte proměnnou DOTNET_CLI_TELEMETRY_OPTOUT
prostředí před instalací sady .NET SDK.
Důležité
Pokud se chcete odhlásit po spuštění instalačního programu: zavřete instalační program, nastavte proměnnou prostředí a spusťte instalační program znovu s danou sadou hodnot.
Zveřejnění
Sada .NET SDK při prvním spuštění jednoho z příkazů .NET CLI (napříkladdotnet build
) zobrazí text podobný následujícímu. Text se může mírně lišit v závislosti na verzi sady SDK, kterou používáte. Toto prostředí "první spuštění" je způsob, jakým vás Microsoft upozorní na shromažďování dat.
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
Chcete-li tuto zprávu a uvítací zprávu .NET zakázat, nastavte proměnnou DOTNET_NOLOGO
prostředí na true
hodnotu . Všimněte si, že tato proměnná nemá žádný vliv na odhlášení telemetrie.
Datové body
Funkce telemetrie neshromažďuje osobní údaje, jako jsou uživatelská jména nebo e-mailové adresy. Neskenuje kód a neextrahuje data na úrovni projektu, jako je název, úložiště nebo autor. Neextrahuje obsah žádných datových souborů, které jsou přístupné nebo vytvořené vašimi aplikacemi, výpisy paměti obsazené objekty vašich aplikací ani obsah schránky. Data se bezpečně odesílají na servery Microsoftu pomocí technologie Azure Monitoru , která je uchována v omezeném přístupu, a publikují se pod přísnými bezpečnostními mechanismy ze zabezpečených systémů Azure Storage .
Ochrana vašeho soukromí je pro nás důležitá. Pokud máte podezření, že telemetrie shromažďuje citlivá data nebo jsou data nezabezpečená nebo nevhodně zpracována, založte problém v úložišti dotnet/sdk nebo odešlete e-mail k dotnet@microsoft.com šetření.
Funkce telemetrie shromažďuje následující data:
Verze sady SDK | Data |
---|---|
Všechny | Časové razítko vyvolání |
Všechny | Vyvolán příkaz (například "build"), hashovaný od verze 2.1. |
Všechny | Tři osmičkové IP adresy používané k určení zeměpisného umístění. |
Všechny | Operační systém a verze. |
Všechny | ID modulu runtime (RID), na kterém je sada SDK spuštěná. |
Všechny | Verze sady .NET SDK. |
Všechny | Profil telemetrie: Volitelná hodnota použitá pouze s explicitním souhlasem uživatele a interně použitá v Microsoftu. |
>=2,0 | Argumenty a možnosti příkazů: shromažďuje se několik argumentů a možností (ne libovolných řetězců). Podívejte se na shromážděné možnosti. Hodnota hash je za 2.1.300. |
>=2,0 | Určuje, jestli sada SDK běží v kontejneru. |
>=2,0 | Cílové architektury (z TargetFramework události) se zatřiďují od verze 2.1. |
>=2,0 | Adresa SHA256 (Hashed Media Access Control) (MAC) |
>=2,0 | Hashed current working directory. |
>=2,0 | Nainstalujte zprávu o úspěchu s názvem souboru exe hashovaného instalačního programu. |
>=2,1,300 | Verze jádra. |
>=2,1,300 | Libc release/version. |
>=3,0,100 | Určuje, jestli byl výstup přesměrován (pravda nebo nepravda). |
>=3,0,100 | V případě chybového ukončení rozhraní příkazového řádku nebo sady SDK typ výjimky a trasování zásobníku (do odesílané trasování zásobníku je zahrnut pouze kód rozhraní příkazového řádku nebo sady SDK). Další informace najdete v tématu Telemetrie výjimek chybového ukončení. |
>=5,0,100 | Hashed TargetFrameworkVersion použitý pro sestavení (vlastnost MSBuild) |
>=5,0,100 | Hashed RuntimeIdentifier použitý pro sestavení (vlastnost MSBuild) |
>=5,0,100 | Hashed SelfContained used for build (MSBuild – vlastnost) |
>=5,0,100 | Hashed UseApphost použitý pro sestavení (vlastnost MSBuild) |
>=5,0,100 | Hashed OutputType použitý pro sestavení (vlastnost MSBuild) |
>=5.0.201 | Hashed PublishReadyToRun použit pro sestavení (vlastnost MSBuild) |
>=5.0.201 | Hashed PublishTrimmed použit pro sestavení (vlastnost MSBuild) |
>=5.0.201 | Hashed PublishSingleFile použitý pro sestavení (vlastnost MSBuild) |
>=5,0,202 | Uplynulý čas od spuštění procesu až do zadání hlavní metody programu CLI, měření spuštění hostitele a modulu runtime. |
>=5,0,202 | Uplynulý čas pro krok, který přidá nástroje .NET do cesty při prvním spuštění. |
>=5,0,202 | Uplynulá doba, kdy se při prvním spuštění zobrazí oznámení o prvním použití. |
>=5,0,202 | Uplynulá doba pro generování ASP.NET certifikátu při prvním spuštění. |
>=5,0,202 | Uplynulý čas parsování vstupu rozhraní příkazového řádku |
>=6,0,100 | Architektura operačního systému |
>=6,0,104 | Hashed PublishReadyToRunUseCrossgen2 použitý pro sestavení (vlastnost MSBuild) |
>=6,0,104 | Hashed Crossgen2PackVersion použitý pro sestavení (vlastnost MSBuild) |
>=6,0,104 | Hashed CompileListCount použitý pro sestavení (vlastnost MSBuild) |
>=6,0,104 | Hodnota hash _ReadyToRunCompilationFailures použitá pro sestavení (vlastnost MSBuild) |
>=6,0,300 | Pokud se rozhraní příkazového řádku vyvolalo z prostředí kontinuální integrace. Další informace najdete v tématu Detekce kontinuální integrace. |
>=7,0,100 | Hashed PublishAot použit pro sestavení (vlastnost MSBuild) |
>=7,0,100 | Hashed PublishProtocol použitý pro sestavení (vlastnost MSBuild) |
>=8,0,100 | Hashed TargetPlatformIdentifier použitý pro sestavení (vlastnost MSBuild) |
>=8,0,100 | Hashed HybridGlobalization použitá pro sestavení (vlastnost MSBuild) |
>=8,0,100 | Určuje, jestli se používá sada .NET Blazor WebAssembly SDK. |
>=8,0,100 | Určuje, jestli se používá sada .NET WebAssembly SDK. |
>=8,0,100 | Určuje, jestli se používá .NET MAUI. |
>=8,0,100 | Určuje, jestli se používá mobilní sada .NET SDK. |
>=8,0,100 | Určuje, jestli se používají jiné mobilní sady SDK (například: Avalonia, Uno). |
>=8,0,100 | Určuje, jestli se používá Mono AOT. |
>=8,0,100 | Určuje, jestli se používá funkce IL mono AOT stripu. |
>=8,0,100 | Určuje, jestli se používá interpret Mono. |
>=8,0,100 | Určuje, jestli se používá režim knihovny pro mobilní zařízení. |
>=8,0,100 | Určuje, jestli se používá NativeAOT. |
>=8,0,100 | Použitá verze sady Runtime Pack Mono. |
Shromažďované možnosti
Některé příkazy odesílají další data. Podmnožina příkazů odešle první argument:
Příkaz | Odeslaná data prvního argumentu |
---|---|
dotnet help <arg> |
Dotazuje se na nápovědu k příkazu. |
dotnet new <arg> |
Název šablony (hashovaný). |
dotnet add <arg> |
Slovo package nebo reference . |
dotnet remove <arg> |
Slovo package nebo reference . |
dotnet list <arg> |
Slovo package nebo reference . |
dotnet sln <arg> |
Slovo add , list nebo remove . |
dotnet nuget <arg> |
Slovo delete , locals nebo push . |
dotnet workload <subcommand> <arg> |
Slovo install , , update , list search , uninstall , repair restore a název úlohy (hashováno). |
dotnet tool <subcommand> <arg> |
Slovo install , , update list , search , uninstall run a název nástroje dotnet (hashováno). |
Podmnožina příkazů odesílá vybrané možnosti, pokud se použijí, spolu s jejich hodnotami:
Možnost | Příkazy |
---|---|
--verbosity |
Všechny příkazy |
--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 |
--verbosity
S výjimkou a --sdk-package-version
, všechny ostatní hodnoty jsou hashovány počínaje .NET Core 2.1.100 SDK.
Telemetrie modulu šablon
Příkaz dotnet new
vytvoření instance šablony shromažďuje další data pro šablony vytvořené Microsoftem počínaje sadou .NET Core 2.1.100 SDK:
--framework
--auth
Telemetrie výjimek chybových ukončení
Pokud dojde k chybovému ukončení rozhraní příkazového řádku nebo sady SDK .NET, shromáždí název výjimky a trasování zásobníku kódu rozhraní příkazového řádku nebo sady SDK. Tyto informace se shromažďují za účelem posouzení problémů a zlepšení kvality sady .NET SDK a rozhraní příkazového řádku. Tento článek obsahuje informace o shromažďovaných datech. Obsahuje také tipy, jak uživatelé vytvářející vlastní verzi sady .NET SDK, aby zabránili neúmyslnému zveřejnění osobních nebo citlivých informací.
Rozhraní příkazového řádku .NET shromažďuje informace pouze pro výjimky rozhraní příkazového řádku nebo sady SDK, nikoli výjimky ve vaší aplikaci. Shromážděná data obsahují název výjimky a trasování zásobníku. Toto trasování zásobníku je kód rozhraní příkazového řádku nebo sady SDK.
Následující příklad ukazuje druh shromážděných dat:
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)
Detekce kontinuální integrace
Aby bylo možné zjistit, jestli rozhraní příkazového řádku .NET CLI běží v prostředí kontinuální integrace, testuje rozhraní příkazového řádku .NET pro přítomnost a hodnoty několika dobře známých proměnných prostředí, které nastavují běžní poskytovatelé CI.
Úplný seznamproměnných Všimněte si, že v každém případě se hodnota proměnné prostředí nikdy neshromažďuje, používá se pouze k nastavení logického příznaku.
Proměnné | Poskytovatel | Akce |
---|---|---|
TF_BUILD | Azure Pipelines | Parsovat logickou hodnotu |
GITHUB_ACTIONS | GitHub Actions | Parsovat logickou hodnotu |
APPVEYOR | Appveyor | Parsovat logickou hodnotu |
CI | N/Most | Parsovat logickou hodnotu |
TRAVIS | Travis CI | Parsovat logickou hodnotu |
CIRCLECI | Kruh CI | Parsovat logickou hodnotu |
CODEBUILD_BUILD_ID, AWS_REGION | Amazon Web Services CodeBuild | Zkontrolujte, jestli jsou všechny přítomné a nenulové. |
BUILD_ID, BUILD_URL | Jenkins | Zkontrolujte, jestli jsou všechny přítomné a nenulové. |
BUILD_ID, PROJECT_ID | Google Cloud Build | Zkontrolujte, jestli jsou všechny přítomné a nenulové. |
TEAMCITY_VERSION | TeamCity | Kontrola přítomnosti a nenulové hodnoty |
JB_SPACE_API_URL | JetBrains Space | Kontrola přítomnosti a nenulové hodnoty |
Vyhněte se neúmyslnému zveřejnění informací
Přispěvatelé .NET a všichni ostatní, kteří používají verzi sady .NET SDK, kterou sami vytvořili, by měli zvážit cestu ke zdrojovému kódu sady SDK. Pokud dojde k chybě při použití sady .NET SDK, která je vlastní sestavení ladění nebo nakonfigurované se soubory symbolů vlastního sestavení, cesta ke zdrojovému souboru sady SDK z počítače sestavení se shromažďuje jako součást trasování zásobníku a není hashovaná.
Z tohoto důvodu by vlastní buildy sady .NET SDK neměly být umístěny v adresářích, jejichž názvy cest zveřejňují osobní nebo citlivé informace.
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro