Bagikan melalui


Melakukan debug ASP.NET Azure Kubernetes Services secara langsung menggunakan Snapshot Debugger

Snapshot Debugger mengambil snapshot dari aplikasi dalam produksi Anda saat kode yang Anda minati dijalankan. Untuk menginstruksikan debugger untuk mengambil snapshot, Anda mengatur snappoints dan logpoints dalam kode Anda. Debugger memungkinkan Anda melihat dengan tepat apa yang salah, tanpa memengaruhi lalu lintas aplikasi produksi Anda. Snapshot Debugger dapat membantu Anda secara dramatis mengurangi waktu yang diperlukan untuk menyelesaikan masalah yang terjadi di lingkungan produksi.

Snappoint dan logpoint mirip dengan titik henti, tetapi tidak seperti titik henti, snappoint tidak menghentikan aplikasi saat tercapai. Biasanya, menangkap snapshot di snappoint membutuhkan waktu 10-20 milidetik.

Dalam tutorial ini, Anda akan:

  • Mulai Snapshot Debugger
  • Mengatur snappoint dan lihat snapshot
  • Mengatur logpoint

Prasyarat

  • Snapshot Debugger untuk Azure Kubernetes Services hanya tersedia untuk Enterprise Visual Studio 2019 atau yang lebih tinggi dengan beban kerja pengembangan Azure. (Di bawah tab Komponen individu, Anda menemukannya di bawah Penelusuran kesalahan dan pengujian>Snapshot debugger.)

    Jika belum diinstal, instal Visual Studio 2019 Enterprise.

  • Koleksi snapshot tersedia untuk aplikasi web Azure Kubernetes Services berikut:

    • Aplikasi ASP.NET Core yang berjalan pada .NET Core 2.2 atau yang lebih baru di Debian 9.

    • Aplikasi ASP.NET Core yang berjalan pada .NET Core 2.2 atau yang lebih baru di Alpine 3.8.

    • Aplikasi ASP.NET Core yang berjalan pada .NET Core 2.2 atau yang lebih baru di Ubuntu 18.04.

      Catatan

      Untuk membantu Anda mengaktifkan dukungan pada Snapshot Debugger di AKS, kami telah menyediakan repositori yang berisi sekumpulan file Docker yang menunjukkan penyiapan pada gambar Docker.

Buka proyek Anda dan mulai Snapshot Debugger

  1. Buka proyek yang ingin Anda snapshot debug.

    Penting

    Untuk melakukan snapshot debug, Anda perlu membuka versi kode sumber yang sama yang diterbitkan ke Azure Kubernetes Service Anda.

  2. Pilih Debug > Lampirkan Snapshot Debugger.... Pilih sumber daya AKS yang digunakan aplikasi web Anda dan akun penyimpanan Azure, lalu klik Lampirkan. Snapshot Debugger juga mendukung Azure App Service dan Azure Virtual Machines (VM) & Virtual Machine Scale Sets.

    Launch the snapshot debugger from the Debug menu

    Select Azure Resource

    Catatan

    (Visual Studio 2019 versi 16.2 dan di atasnya) Snapshot Debugger telah mengaktifkan dukungan cloud Azure. Pastikan sumber daya Azure dan akun Azure Storage yang Anda pilih berasal dari cloud yang sama. Silakan hubungi administrator Azure Anda jika Anda memiliki pertanyaan tentang konfigurasi kepatuhan Azure enterprise Anda.

Visual Studio sekarang dalam mode penelusuran kesalahan snapshot.

Snapshot debugging mode

Jendela Modul menunjukkan kepada Anda saat semua modul telah dimuat untuk Azure App Service (pilih Debug > Jendela > Modul untuk membuka jendela ini).

Check the Modules window

Atur snappoint

  1. Di editor kode, klik sisi kiri di samping baris kode yang Anda minati untuk mengatur snappoint. Pastikan kode yang Anda ketahui akan dijalankan.

    Set a snappoint

  2. Klik Mulai Koleksi untuk mengaktifkan snappoint.

    Turn on the snappoint

    Tip

    Anda tidak dapat melangkah saat melihat snapshot, tetapi Anda dapat menempatkan beberapa snappoint dalam kode Anda untuk mengikuti eksekusi pada baris kode yang berbeda. Jika Anda memiliki beberapa snappoint dalam kode Anda, Snapshot Debugger memastikan bahwa snapshot yang sesuai berasal dari sesi pengguna akhir yang sama. Snapshot Debugger melakukan ini meskipun ada banyak pengguna yang membuka aplikasi Anda.

Mengambil snapshot

Setelah snappoint diatur, Anda dapat membuat snapshot secara manual dengan membuka tampilan browser situs web Anda dan menjalankan baris kode yang ditandai atau menunggu pengguna Anda membuatnya dari penggunaan situs mereka.

Periksa data snapshot

  1. Saat snappoint terkena, snapshot muncul di jendela Alat Diagnostik. Untuk membuka jendela ini, pilih Debug > Windows > Tampilkan Alat Diagnostik.

    Open a snappoint

  2. Klik dua kali snappoint untuk membuka snapshot di editor kode.

    Inspect snapshot data

    Dari tampilan ini, Anda dapat mengarahkan kursor ke variabel untuk melihat DataTips, menggunakan jendela Lokal, Watches, dan Tumpukan Panggilan, dan juga mengevaluasi ekspresi.

    Situs web itu sendiri masih aktif dan pengguna akhir tidak terpengaruh. Hanya satu snapshot yang diambil per snappoint secara default: setelah snapshot ditangkap, snappoint akan dinonaktifkan. Jika Anda ingin mengambil snapshot lain di snappoint, Anda dapat mengaktifkan kembali snappoint dengan mengeklik Perbarui Koleksi.

Anda juga dapat menambahkan lebih banyak snappoint ke aplikasi Anda dan mengaktifkannya dengan tombol Perbarui Koleksi.

Butuh bantuan? Lihat halaman Pemecahan masalah dan masalah yang diketahui dan FAQ untuk penelusuran kesalahan snapshot.

Mengatur snappoint kondisional

Jika sulit untuk membuat ulang status tertentu di aplikasi Anda, pertimbangkan untuk menggunakan snappoint kondisional. Snappoint kondisional membantu Anda mengontrol kapan harus mengambil snapshot seperti saat variabel berisi nilai tertentu yang ingin Anda periksa. Anda dapat mengatur ketentuan menggunakan ekspresi, filter, atau jumlah klik.

Untuk membuat snappoint kondisional

  1. Klik kanan ikon snappoint (bola berongga) dan pilih Pengaturan.

    Choose Settings

  2. Di jendela pengaturan snappoint, ketik ekspresi.

    Type an expression

    Dalam ilustrasi sebelumnya, snapshot hanya diambil untuk snappoint ketika visitor.FirstName == "Dan".

Mengatur logpoint

Selain mengambil snapshot saat snappoint terkena, Anda juga dapat mengonfigurasi snappoint untuk mencatat pesan (yaitu, membuat logpoint). Anda dapat mengatur logpoint tanpa harus menyebarkan ulang aplikasi Anda. Logpoint dijalankan secara virtual dan tidak menyebabkan dampak atau efek samping pada aplikasi Anda yang sedang berjalan.

Untuk membuat logpoint

  1. Klik kanan ikon snappoint (segi enam biru) dan pilih Pengaturan.

  2. Di jendela pengaturan snappoint, pilih Tindakan.

    Create a logpoint

  3. Di bidang Pesan, Anda dapat memasukkan pesan log baru yang ingin Anda catat. Anda juga dapat mengevaluasi variabel dalam pesan log Anda dengan menempatkannya di dalam kurung kurawal.

    Jika Anda memilih Kirim ke Windows Output, saat logpoint ditekan, pesan akan muncul di jendela Alat Diagnostik.

    Logpoint data in the Diagnostic Tools window

    Jika Anda memilih Kirim ke log aplikasi, saat logpoint ditekan, pesan akan muncul di mana pun Anda dapat melihat pesan dari System.Diagnostics.Trace (atau ILogger di .NET Core), seperti Aplikasi Insights.

Dalam tutorial ini, Anda telah mempelajari cara menggunakan Snapshot Debugger untuk Azure Kubernetes. Anda mungkin ingin membaca detail lebih lanjut tentang fitur ini.