.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.
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 dotnet kullanılırken telemetri toplanmaz:
dotnet [path-to-app].dll
Telemetri ,gibi .NET CLI komutlarından herhangi biri kullanılırken toplanır:
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 trueolarak 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ı, .NET CLI komutlarından birini ilk kez çalıştırdığınızda (örneğin, ) aşağıdakine benzer bir metin görüntüler. Metin, çalıştırdığınız SDK sürümüne bağlı olarak biraz farklılık gösterebilir. Bu "ilk kullanım" deneyimi, Microsoft'un veri toplama hakkında sizi bilgilendirme şeklidir.
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 trueolarak 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.
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)
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-versiondışı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.
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Bu modülde, bulutta yerel bir uygulamanın davranışını kaydetmek için telemetriyi kullanmayı ve .NET Aspire yığınının verileri depolamayı nasıl kolaylaştırıp daha sonra görüntülemeyi kolaylaştırmayı öğreneceksiniz.