Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat diaktifkan, Snapshot Debugger secara otomatis mengumpulkan rekam jepret debug kode sumber dan variabel saat pengecualian terjadi di aplikasi .NET langsung Anda. Snapshot Debugger di Application Insights:
- Memantau log yang dihasilkan sistem dari aplikasi web Anda.
- Mengumpulkan snapshot mengenai pengecualian yang paling sering terjadi.
- Menyediakan informasi yang Anda butuhkan untuk mendiagnosis masalah dalam produksi.
Aplikasi dan lingkungan yang didukung
Aplikasi
Koleksi snapshot tersedia untuk:
- .NET Framework 4.6.2 dan versi yang lebih baru.
- .NET 6.0 atau yang lebih baru di Windows.
Lingkungan
Lingkungan berikut didukung:
- Azure App Service
- Azure Functions
- Azure Cloud Services menjalankan keluarga OS 4 atau yang lebih baru
- Azure Service Fabric berjalan pada Windows Server 2012 R2 atau yang lebih baru
- Azure Virtual Machines dan Azure Virtual Machine Scale Sets menggunakan Windows Server 2012 R2 atau yang lebih baru
- Komputer virtual atau fisik lokal menjalankan Windows Server 2012 R2 atau yang lebih baru atau Windows 8.1 atau yang lebih baru
Catatan
Aplikasi klien, seperti WPF, Windows Forms, atau UWP, tidak didukung.
Prasyarat untuk menggunakan Snapshot Debugger
Paket dan konfigurasi
- Sertakan paket Snapshot Collector NuGet di aplikasi Anda.
- Mengonfigurasi parameter pengumpulan dalam
ApplicationInsights.config.
Perizinan
- Verifikasi bahwa Anda ditambahkan ke peran Application Insights Snapshot Debugger untuk peran target Application Insights Snapshot.
Cara kerja Snapshot Debugger
Snapshot Debugger diimplementasikan sebagai prosesor telemetri "Application Insights". Saat aplikasi Anda berjalan, prosesor telemetri Snapshot Debugger ditambahkan ke alur log yang dihasilkan sistem aplikasi Anda.
Penting
Rekam jepret mungkin berisi data pribadi atau informasi sensitif lainnya dalam nilai variabel dan parameter. Data rekam jepret disimpan di wilayah yang sama dengan sumber daya Application Insights Anda.
Proses Snapshot Debugger
Proses Snapshot Debugger dimulai dan diakhiri dengan metode TrackException. Rekam jepret proses adalah kloning yang ditangguhkan dari proses yang sedang berjalan. Pengguna Anda mengalami sedikit atau tanpa gangguan. Dalam skenario umum:
Pengecualian dilemparkan dalam aplikasi Anda yang kemudian dilaporkan ke Application Insights dengan memanggil
TrackExceptionfungsi .Snapshot Debugger memantau pengecualian saat terjadi dengan memantau peristiwa
AppDomain.CurrentDomain.FirstChanceException.Penghitung ditambahkan untuk ID masalah.
Ketika penghitung mencapai nilai
ThresholdForSnapshotting, ID masalah ditambahkan ke rencana pengumpulan.Catatan
Nilai
ThresholdForSnapshottingminimum default adalah 1. Dengan nilai ini, aplikasi Anda harus memicu pengecualian yang sama dua kali sebelum rekam jepret dibuat.ID masalah dari peristiwa pengecualian dihitung dan dibandingkan dengan ID masalah dalam rencana koleksi.
Jika ada kecocokan antara ID masalah, cuplikan proses yang sedang berjalan akan dibuat.
Snapshot diberi pengidentifikasi unik dan pengecualian dicap dengan pengidentifikasi tersebut.
Catatan
Tingkat pembuatan snapshot dibatasi oleh pengaturan
SnapshotsPerTenMinutesLimit. Secara default, batasnya adalah satu rekam jepret setiap 10 menit.Setelah handler
FirstChanceExceptiondikembalikan, pengecualian yang dilemparkan diproses seperti biasa.Pengecualian mencapai metode
TrackExceptionlagi dan dilaporkan ke Application Insights, bersama dengan pengidentifikasi cuplikan.
Catatan
Atur IsEnabledInDeveloperMode ke true jika Anda ingin membuat rekam jepret saat Anda melakukan debug di Visual Studio.
Proses Pengunggah Rekam Jepret
Meskipun proses Snapshot Debugger terus berjalan dan melayani lalu lintas kepada pengguna dengan sedikit gangguan, rekam jepret diserahkan ke proses Snapshot Uploader. Dalam skenario umum, Pengunggah Rekam Jepret:
Membuat minidump.
Mengunggah minidump ke Application Insights, bersama dengan file simbol (.pdb) yang relevan.
Catatan
Tidak lebih dari 50 rekam jepret per hari dapat diunggah.
Jika Anda mengaktifkan Snapshot Debugger tetapi tidak melihat rekam jepret, lihat panduan Pemecahan Masalah.
Meningkatkan Snapshot Debugger
Pembaruan otomatis Snapshot Debugger dengan menggunakan site extension Application Insights yang telah diinstal sebelumnya.
Menambahkan ekstensi situs Application Insights secara manual untuk memperbarui Snapshot Debugger telah usang.
biaya overhead
Snapshot Debugger dirancang untuk digunakan di lingkungan produksi. Pengaturan default mencakup batas tarif untuk meminimalkan dampak pada aplikasi Anda.
Namun, Anda mungkin mengalami overhead CPU, memori, dan I/O kecil yang terkait dengan Snapshot Debugger, seperti:
- Ketika pengecualian dilemparkan dalam aplikasi Anda
- Jika handler pengecualian memutuskan untuk membuat rekam jepret
- Saat
TrackExceptiondipanggil
Tidak ada biaya tambahan untuk menyimpan data yang diambil oleh Snapshot Debugger.
Lihat contoh skenario di mana Anda mungkin mengalami beban pemrosesan pada Snapshot Debugger.
Pengoptimalan Kode
Jika cuplikan dikumpulkan dari aplikasi Anda, mungkin ada wawasan pengecualian terkait dalam Pengoptimalan Kode gambaran umum terkonsolidasi.
Batasan
Bagian ini membahas batasan untuk Snapshot Debugger.
Retensi data
Cuplikan debug disimpan selama 15 hari. Kebijakan retensi data default ini ditetapkan per aplikasi. Jika Anda perlu meningkatkan nilai ini, Anda dapat meminta peningkatan dengan membuka kasus dukungan di Azure portal. Maksimum 50 cuplikan diizinkan per hari untuk setiap instans Application Insights.
Terbitkan simbol
Snapshot Debugger memerlukan file simbol di server produksi untuk:
- Dekode variabel
- Memberikan pengalaman debug di Visual Studio
Secara bawaan, Visual Studio 2017 versi 15.2 atau yang lebih baru menerbitkan simbol untuk kompilasi rilis saat penerbitannya ke App Service.
Dalam versi sebelumnya, Anda harus menambahkan baris berikut ke file profil
.pubxmlpublikasi Anda sehingga simbol diterbitkan dalam mode rilis:<ExcludeGeneratedDebugSymbol>False</ExcludeGeneratedDebugSymbol>Untuk Azure Compute dan tipe lainnya, pastikan bahwa file simbol adalah salah satu dari berikut:
- Di folder aplikasi
.dllutama yang sama (biasanya,wwwroot/bin), atau - Tersedia di jalur saat ini.
Untuk informasi selengkapnya tentang berbagai opsi simbol yang tersedia, lihat dokumentasi Visual Studio. Untuk hasil terbaik, kami sarankan Anda menggunakan Full, Portable, atau Embedded.
Kompilasi yang dioptimalkan
Dalam beberapa kasus, variabel lokal tidak dapat dilihat dalam build rilis karena pengoptimalan yang diterapkan oleh pengkompilasi JIT.
Namun, dalam App Service, Snapshot Debugger dapat mendeoptimasi metode pelemparan yang merupakan bagian dari rencana pengumpulannya.
Tips
Instal ekstensi Situs Application Insights dalam instans App Service Anda untuk mendapatkan dukungan deoptimisasi.
Konten terkait
Aktifkan Application Insights Snapshot Debugger untuk aplikasi Anda: