.NET SDK ve .NET CLI telemetrisi
.NET SDK, kullanım verilerini toplayan ve .NET CLI komutlarını kullandığınızda bunu Microsoft'a gönderen bir telemetri özelliği içerir. .NET CLI çöktüğünde kullanım verileri istisna bilgilerini içerir. .NET CLI, .NET SDK ile birlikte gelir ve .NET uygulamalarınızı derlemenizi, test etmenizi ve yayımlamanızı sağlayan fiil kümesidir. Telemetri verileri, .NET ekibinin araçların nasıl kullanıldığını anlamasına yardımcı olur ve böylece iyileştirilebilir. Hatalarla ilgili bilgiler, ekibin sorunları çözmesine ve hataları düzeltmesine yardımcı olur.
Toplanan veriler, Creative Commons Attribution Lisansıaltında toplu olarak yayımlanır. Toplanan verilerin bazıları .NET CLI Telemetri Verilerikonumunda yayımlanır.
Kapsam
dotnet
iki işlevi vardır: uygulamaları çalıştırmak ve CLI komutlarını yürütmek. Bir uygulamayı aşağıdaki biçimde başlatmak için kullanılırken telemetri dotnet
toplanmaz:
dotnet [path-to-app].dll
Telemetri
dotnet build
dotnet pack
dotnet run
Abonelikten Çıkma Yolu
.NET SDK telemetri özelliği, SDK'nın Microsoft dağıtımları için varsayılan olarak etkindir. Telemetri özelliğini geri çevirmek için DOTNET_CLI_TELEMETRY_OPTOUT
ortam değişkenini 1
veya true
olarak ayarlayın.
Başarılı bir yükleme gerçekleştiğinde .NET SDK yükleyicisi tarafından tek bir telemetri girdisi de gönderilir. .NET SDK'sını yüklemeden önce devre dışı bırakmak için DOTNET_CLI_TELEMETRY_OPTOUT
ortam değişkenini ayarlayın.
Önemli
Yükleyiciyi başlattıktan sonra geri çevirmek için: Yükleyiciyi kapatın, ortam değişkenini ayarlayın ve ardından yükleyiciyi bu değer kümesiyle yeniden çalıştırın.
Açıklama
.NET SDK'sı,
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
Bu iletiyi ve .NET karşılama iletisini devre dışı bırakmak için DOTNET_NOLOGO
ortam değişkenini true
olarak ayarlayın. Bu değişkenin telemetriyi geri çevirme üzerinde hiçbir etkisi olmadığını unutmayın.
Veri noktaları
Telemetri özelliği, kullanıcı adları veya e-posta adresleri gibi kişisel verileri toplamaz. Kodunuzu taramaz ve ad, depo veya yazar gibi proje düzeyinde verileri ayıklamaz. Uygulamalarınız tarafından erişilen veya oluşturulan veri dosyalarının içeriğini, uygulamalarınızın nesneleri tarafından kaplanmış bellek dökümlerini veya panonun içeriğini ayıklamaz. Veriler Azure İzleyici teknolojisi kullanılarak Microsoft sunucularına güvenli bir şekilde gönderilir, kısıtlı erişim altında tutulur ve güvenli Azure Depolama sistemlerinden sıkı güvenlik denetimleri altında yayımlanır.
Gizliliğinizi korumak bizim için önemlidir. Telemetrinin hassas verileri topladığını veya verilerin güvenli olmadığını veya uygunsuz şekilde işlendiğini düşünüyorsanız, dotnet/sdk deposunda bir sorun oluşturun veya araştırma için dotnet@microsoft.com'e bir e-posta gönderin.
Telemetri özelliği aşağıdaki verileri toplar:
SDK sürümleri | Veri |
---|---|
Tüm | Çağırmanın zaman damgası. |
Tüm | Komut çağrılır (örneğin, "derleme"), 2.1 sürümünden itibaren karma olarak işlenmeye başlar. |
Tüm | Coğrafi konumu belirlemek için kullanılan üç sekizli IP adresi. |
Tüm | İşletim sistemi ve sürüm. |
Tüm | SDK'nın üzerinde çalıştığı Çalışma Zamanı Kimliği (RID). |
Tüm | .NET SDK sürümü. |
Tüm | Telemetri profili: yalnızca açık kullanıcı kabul etme ile kullanılan ve Microsoft'ta dahili olarak kullanılan isteğe bağlı bir değerdir. |
>=2.0 | Komut bağımsız değişkenleri ve seçenekleri: çeşitli bağımsız değişkenler ve seçenekler toplanır (rastgele dizeler değil). Bkz. toplanan seçenekler. 2.1.300 sonrasında karma hale getirilmiş. |
>=2.0 | SDK'nın bir kapsayıcıda çalışıp çalışmadığı. |
>=2.0 | Hedef çerçeveler (TargetFramework etkinliğinden), 2.1'den başlayarak hashlenmiştir. |
>=2.0 | Karıştırılmış Medya Erişim Kontrolü (MAC) adresi (SHA256). |
>=2.0 | Geçerli çalışma dizini hash'lendi. |
>=2.0 | Karma yükleyici exe dosya adıyla başarı raporunu yükleyin. |
>=2.1.300 | Çekirdek sürümü. |
>=2.1.300 | Libc sürümü/sürümü. |
>=3.0.100 | Çıkışın yeniden yönlendirilip yönlendirilmediği (true veya false). |
>=3.0.100 | CLI/SDK çökmesi durumunda, istisna türü ve yığın izlemesi (gönderilen yığın izlemesine yalnızca CLI/SDK kodu dahildir). Daha fazla bilgi için bkz. Kilitlenme özel durum telemetrisi. |
>=5.0.100 | Derleme için kullanılan TargetFrameworkVersion karması (MSBuild özelliği) |
>=5.0.100 | Derleme için kullanılan Karma RuntimeIdentifier (MSBuild özelliği) |
>=5.0.100 | Derleme için kullanılan Karmalanmış SelfContained (MSBuild özelliği) |
>=5.0.100 | Derleme için kullanılan Karma UseApphost (MSBuild özelliği) |
>=5.0.100 | Derleme için kullanılan Hashlenmiş Çıkış Türü (MSBuild özelliği) |
>=5.0.201 | Derleme için kullanılan Hashed PublishReadyToRun (MSBuild özelliği) |
>=5.0.201 | Derleme için Hashed PublishTrimmed kullanılan (MSBuild özelliği) |
>=5.0.201 | Derleme için kullanılan PublishSingleFile karması (MSBuild özelliği) |
>=5.0.202 | İşlem başlangıcından CLI programının ana yöntemine girene kadar, sunucu ve çalışma zamanı başlatmalarının süresini ölçmek. |
>=5.0.202 | İlk çalıştırmada .NET Araçları'nı yola ekleyen adım için geçen süre. |
>=5.0.202 | İlk kez çalıştırıldığında ilk kullanım bildirimini görüntülemek için geçen süre. |
>=5.0.202 | İlk çalıştırmada ASP.NET Sertifikası oluşturmak için geçen süre. |
>=5.0.202 | CLI girişini ayrıştırmak için geçen süre. |
>= 6.0.100 | İşletim sistemi mimarisi |
>=6.0.104 | Derlemede kullanılan Hashed PublishReadyToRunUseCrossgen2 (MSBuild özelliği) |
>=6.0.104 | Kodlanmış Crossgen2PackVersion yapısı için kullanılır (MSBuild özelliği) |
>=6.0.104 | Derleme için kullanılan Hashed CompileListCount (MSBuild özelliği) |
>=6.0.104 | Derleme için karma hale getirilen _ReadyToRunCompilationFailures (MSBuild özelliği) |
>=6.0.300 | CLI bir Sürekli Tümleştirme ortamından çağrıldıysa. Daha fazla bilgi için bkz. Sürekli Entegrasyon Tespiti. |
>=7.0.100 | Derleme için kullanılan hashlenmiş PublishAot (MSBuild özelliği) |
>=7.0.100 | Derleme için kullanılan Hashlenmiş PublishProtocol (MSBuild özelliği) |
>=8.0.100 | Derleme için kullanılan Hashlenmiş TargetPlatformIdentifier (MSBuild özelliği) |
>=8.0.100 | Derleme için kullanılan Hashed HybridGlobalizasyon (MSBuild özelliği) |
>=8.0.100 | .NET Blazor WebAssembly SDK'sı kullanılıp kullanılmadığı. |
>=8.0.100 | .NET WebAssembly SDK'sı kullanılıp kullanılmadığı. |
>=8.0.100 | .NET MAUI kullanılıp kullanılmadığı. |
>=8.0.100 | .NET mobil SDK'sı kullanılıp kullanılmadığı. |
>=8.0.100 | Diğer mobil SDK'ların kullanılıp kullanılmadığı (örneğin: Avalonia, Uno). |
>=8.0.100 | Mono AOT kullanılıp kullanılmadığı. |
>=8.0.100 | Mono AOT şerit IL özelliğinin kullanılıp kullanılmadığı. |
>=8.0.100 | Mono yorumlayıcının kullanılıp kullanılmadığı. |
>=8.0.100 | Mobil cihazlar için kitaplık modunun kullanılıp kullanılmadığı. |
>=8.0.100 | NativeAOT'un kullanılıp kullanılmadığı. |
>=8.0.100 | Kullanılan Mono çalışma zamanı paketi sürümü. |
Toplanan seçenekler
Bazı komutlar ek veri gönderir. Komutların bir alt kümesi ilk argümanı gönderir.
Komut | İlk argüman verisi gönderildi. |
---|---|
dotnet help <arg> |
Komut yardımı isteniyor. |
dotnet new <arg> |
Şablon adı (hash edilmiş) |
dotnet add <arg> |
package veya reference sözcüğü. |
dotnet remove <arg> |
package veya reference sözcüğü. |
dotnet list <arg> |
package veya reference sözcüğü. |
dotnet sln <arg> |
add , list veya remove sözcüğü. |
dotnet nuget <arg> |
delete , locals veya push sözcüğü. |
dotnet workload <subcommand> <arg> |
install , update , list , search , uninstall , repair , restore ve iş yükü adı (karma) sözcüğü. |
dotnet tool <subcommand> <arg> |
install , update , list , search , uninstall , run ve dotnet araç adı (karma) sözcüğü. |
Komutların bir alt kümesi, değerleriyle birlikte kullanıldıklarında seçili seçenekleri gönderir:
Seçenek | Komutlar |
---|---|
--verbosity |
Tüm komutlar |
--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 yerleşik bir komutu çözümleyemediğinde, komutu başarıyla çözümleyen herhangi bir komut çözümleyicisi, komut çözümleyici türünün adıyla birlikte komut adının karması gönderir.
.NET Core 2.1.100 SDK'nin başlamasıyla, --verbosity
ve --sdk-package-version
dışında, diğer tüm değerler karma işlemine tabi tutulur.
Şablon motoru telemetrisi
dotnet new
şablonu örnekleme komutu, .NET Core 2.1.100 SDK'dan başlayarak Microsoft tarafından yazılan şablonlar için ek veriler toplar:
--framework
--auth
Kilitlenme istisna telemetrisi
.NET CLI/SDK kilitlenirse, oluşan özel durumun adını ve CLI/SDK kodunun yığın izlemesini toplar. Bu bilgiler sorunları değerlendirmek ve .NET SDK ve CLI kalitesini artırmak için toplanır. Bu makalede topladığımız veriler hakkında bilgi sağlanır. Ayrıca kendi .NET SDK sürümünü oluşturan kullanıcıların kişisel veya hassas bilgilerin yanlışlıkla açıklanmasını nasıl önleyebileceğine ilişkin ipuçları da sağlar.
.NET CLI, uygulamanızdaki özel durumlar için değil yalnızca CLI/SDK özel durumları için bilgi toplar. Toplanan veriler özel durumun adını ve yığın izlemesini içerir. Bu yığın izlemesi CLI/SDK koduna ait.
Aşağıdaki örnekte toplanan verilerin türü gösterilmektedir:
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)
Sürekli Tümleştirme Algılama
.NET CLI'nın Sürekli Tümleştirme ortamında çalışıp çalışmadığını algılamak için. .NET CLI, yaygın CI sağlayıcılarının ayarlandığı birçok iyi bilinen ortam değişkeninin varlığını ve değerlerini yoklar.
Ortam değişkenlerinin tam listesi ve değerleriyle yapılanlar aşağıda gösterilmiştir. Her durumda ortam değişkeninin değerinin hiçbir zaman toplanmadığını, yalnızca boole bayrağı ayarlamak için kullanıldığını unutmayın.
Değişkenler | Sağlayıcı | Eylem |
---|---|---|
TF_BUILD | Azure İş Hatları | Boole değerini ayrıştırma |
GITHUB_ACTIONS | GitHub Actions | Boole değerini ayrıştırma |
APPVEYOR | Uygulama | Boole değerini ayrıştırma |
CI | Çok/En Çok | Boole değerini ayrıştırma |
TRAVİS | Travis CI | Boole değerini ayrıştırma |
CIRCLECI | Circle CI | Boole değerini ayrıştırma |
CODEBUILD_BUILD_ID, AWS_REGION (AWS'de kullanılan sabit tanımlayıcılar) | Amazon Web Services CodeBuild | Tümünün mevcut olup olmadığını ve null olmadığını denetleyin |
BUILD_ID, BUILD_URL | Jenkins | Tümünün mevcut olup olmadığını ve null olmadığını denetleyin |
BUILD_KİMLİĞİ, PROJE_KİMLİĞİ | Google Cloud Build | Tümünün mevcut olup olmadığını ve null olmadığını denetleyin |
TEAMCITY_VERSION | TeamCity | Mevcut olup olmadığını ve null olup olmadığını denetleyin |
JB_SPACE_API_URL | JetBrains Space | Mevcut olup olmadığını ve null olup olmadığını denetleyin |
Bilgilerin yanlışlıkla açıklanmasını önle
.NET katkıda bulunanları ve kendi oluşturduğu .NET SDK'sının bir sürümünü çalıştıran diğer herkes SDK kaynak kodunun yolunu dikkate almalıdır. Özel hata ayıklama derlemesi veya özel derleme sembol dosyalarıyla yapılandırılmış bir .NET SDK'sı kullanılırken kilitlenme oluşursa, yığın izlemesi kapsamında derleme makinesindeki SDK kaynak dosya yolu toplanır ve şifrelenmez.
Bu nedenle, .NET SDK'nın özel derlemeleri kişisel veya hassas bilgileri ifşa eden dizinlerde bulunmamalıdır.