Memantau dan menganalisis perilaku runtime dengan Pengoptimalan Kode

Mendiagnosis masalah performa aplikasi Anda bisa sulit, terutama saat aplikasi Anda berjalan di lingkungan produksi di cloud dinamis. Infrastruktur, kerangka kerja, atau kode aplikasi yang menangani permintaan dalam alur dapat menyebabkan respons lambat dalam aplikasi Anda.

Pengoptimalan Kode, layanan berbasis AI di Azure Application Insights, bekerja bersama dengan Profiler Application Insights untuk .NET. Bersama-sama, mereka mendeteksi masalah performa penggunaan CPU dan memori pada tingkat kode. Mereka memberikan rekomendasi tentang cara memperbaiki masalah tersebut.

Buat keputusan berdasarkan informasi dan optimalkan kode Anda menggunakan data performa real time dan wawasan yang dikumpulkan dari lingkungan produksi Anda.

Pengoptimalan Kode dan Profiler Application Insights untuk .NET

Profiler .NET dan Pengoptimalan Kode bekerja sama untuk memberikan pendekatan holistik terhadap deteksi masalah performa.

Pengoptimalan Kode

Code Optimizations mengidentifikasi, menganalisis, dan menyelesaikan data pembuatan profil yang dikumpulkan oleh Profiler Application Insights untuk .NET. Saat .NET Profiler mengunggah data ke Application Insights, model machine learning kami menganalisis beberapa data untuk menemukan di mana kode aplikasi dapat dioptimalkan. Pengoptimalan Kode:

  • Menampilkan data agregat yang dikumpulkan dari waktu ke waktu.
  • Menyambungkan data dengan metode dan fungsi dalam kode aplikasi Anda.
  • Mempersempit pelakunya dengan menemukan hambatan dalam kode.
  • Menyediakan perbaikan performa tingkat kode berdasarkan wawasan.

Mengidentifikasi

Dengan menggunakan halaman gambaran umum konsolidasi Code Optimizations, Anda dapat melihat semua Pengoptimalan Kode di seluruh langganan Azure dan sumber daya Application Insights Anda di Azure portal.

Pengoptimalan Kode mengumpulkan wawasan dari data yang dikumpulkan oleh .NET Profiler dan dari rekam jepret Snapshot Debugger, jika diaktifkan. Anda dapat mengidentifikasi hambatan dalam kode Anda dan meninjau rekomendasi tingkat kode untuk lingkungan dev, test, praproduksi, dan produksi.

Menganalisis

Setelah data lingkungan Anda dikumpulkan dari pelacakan .NET Profiler dan cuplikan Snapshot Debugger, jika diaktifkan, Pengoptimalan Kode memberikan rekomendasi level kode tiap jam. Secara default, tampilan data agregat menunjukkan jendela 24 jam bergulir dari masalah yang baru saja diidentifikasi, dengan riwayat 30 hari bagi Anda untuk meninjau dan menganalisis peristiwa sebelumnya.

selesaikan

Setelah mengidentifikasi dan menganalisis Pengoptimalan Kode, Anda dapat menggunakan tombol Salin detail di portal Microsoft Azure untuk membawa konteks wawasan secara manual ke alat favorit Anda, seperti GitHub Copilot.

Anda juga dapat membuat isu GitHub dari halaman Pengoptimalan Kode di portal Azure dan menetapkannya ke GitHub Copilot coding agent. Setelah itu, GitHub Copilot membuka permintaan pull dan mendorong penerapan perubahan kode berdasarkan Pengoptimalan Kode.

Video demo

Profiler Application Insights untuk .NET

Profiler .NET berfokus pada pelacakan permintaan tertentu, hingga milidetik. Ini memberikan tampilan gambaran besar yang sangat baik tentang masalah dalam aplikasi Anda dan praktik terbaik umum untuk mengatasinya.

Dengan Application Insights Profiler untuk .NET, Anda dapat menangkap, mengidentifikasi, dan melihat jejak performa untuk aplikasi Anda yang berjalan di Azure, terlepas dari skenarionya. Proses pelacakan .NET Profiler terjadi secara otomatis, dalam skala besar, dan tidak berdampak negatif pada pengguna Anda. Profiler .NET mengidentifikasi:

  • Waktu respons median, tercepat, dan terlambat untuk setiap permintaan web yang dibuat oleh pelanggan Anda.
  • Jalur kode panas menghabiskan waktu paling lama menangani permintaan web tertentu.

Aktifkan Profiler untuk .NET pada semua aplikasi Azure Anda untuk mengumpulkan data dengan pemicu berikut:

  • Pemicu pengambilan sampel: Memulai Profiler secara acak sekitar satu jam sekali selama dua menit.
  • Pemicu CPU: Memulai Profiler ketika persentase penggunaan CPU lebih dari 80 persen.
  • Pemicu memori: Memulai Profiler saat penggunaan memori di atas 80 persen.

Masing-masing pemicu ini dapat dikonfigurasi, diaktifkan, atau dinonaktifkan.

Biaya dan overhead

Pengoptimalan Kode dihasilkan secara otomatis setelah Profiler Wawasan Aplikasi untuk .NET diaktifkan. Secara default, Profiler secara aktif mengumpulkan jejak setiap jam selama 30 detik atau selama periode penggunaan CPU atau memori tinggi selama 30 detik. Jejak per jam (disebut pengambilan sampel) sangat bagus untuk penyetelan proaktif. Jejak CPU dan memori tinggi (disebut pemicu) berguna untuk pemecahan masalah secara reaktif.

Nota

Ketika Application Insights Profiler untuk .NET sedang aktif berjalan dan mengumpulkan pelacakan, biasanya menyebabkan antara 5% hingga 15% pemakaian CPU dan memori tambahan ke server Anda.

Ada tidak ada biaya tambahan untuk menyimpan data yang diambil oleh .NET Profiler. Data dihapus secara otomatis setelah 15 hari.

Beberapa fitur Pengoptimalan Kode, seperti saran perbaikan tingkat kode, memerlukan Copilot untuk GitHub atau Copilot untuk Azure.

Mengaktifkan .NET profiler

Seiring berkembangnya kerangka kerja dan layanan Azure, Anda dapat mengaktifkan .NET Profiler untuk aplikasi .NET yang berjalan di Azure dengan menggunakan opsi yang berbeda.

layanan Azure Cara mengaktifkan Detail lebih lanjut
Sebagian besar layanan Azure Perubahan kode dalam aplikasi Anda
(paling universal)
Jika aplikasi .NET Anda berjalan pada varian layanan Azure PaaS atau Kontainer, Anda dapat memilih antara dua opsi untuk mengaktifkan .NET Profiler:
- Profiler Wawasan Aplikasi untuk ASP.NET Core yang menggunakan Application Insights SDK, atau
- Profiler OpenTelemetry Azure Monitor baru untuk .NET (Pratinjau) yang menggunakan Distro OpenTelemetry Azure Monitor
Azure App Service Tidak ada perubahan kode untuk aplikasi Anda Karena Profiler telah diinstal sebelumnya, Anda dapat mengaktifkan Profiler untuk .NET di portal Microsoft Azure untuk:
- Azure App Service - aplikasi .NET di Windows
- Azure Functions - rencana Layanan Aplikasi
Virtual Machines Tidak ada perubahan kode untuk aplikasi Anda Setelah Application Insights SDK diaktifkan dalam kode aplikasi, Anda dapat mengaktifkan Profiler untuk .NET di templat ARM Anda.
- Azure Virtual Machines dan Virtual Machine Scale Sets untuk Windows
- Azure Service Fabric

Detail dan contoh untuk mengaktifkan Profiler untuk .NET

Nota

Anda juga dapat menggunakan Java Profiler untuk Azure Monitor Application Insights, yang saat ini dalam versi pratinjau.

Wilayah yang didukung

Pengoptimalan Kode tersedia di wilayah yang sama dengan Application Insights. Anda dapat memeriksa wilayah yang tersedia menggunakan perintah berikut:

az account list-locations -o table

Anda dapat mengatur wilayah eksplisit menggunakan string koneksi. Untuk informasi selengkapnya, lihat Contoh string koneksi.

Keterbatasan

Profiler

  • Pemantauan Kinerja web apps:
    • Anda dapat menggunakan .NET Profiler tanpa biaya tambahan, meskipun aplikasi web Anda harus dihosting, minimal, di tingkat Dasar fitur Web Apps.
    • Anda hanya dapat melampirkan satu profiler ke setiap aplikasi web.

Pengoptimalan Kode

  • Persyaratan penyimpanan:
    • Saat ini, Optimasi Kode hanya berfungsi dengan penyimpanan Profiler bawaan atau Application Insights default. Ini tidak kompatibel dengan Bring-Your-Own-Storage (BYOS).

Penyelesaian Masalah

Pelajari cara mengaktifkan .NET Profiler dengan Pengoptimalan Kode pada layanan Azure Anda: