Profil aplikasi web ASP.NET Core Azure Linux dengan Profiler Application Insights
Cari tahu berapa banyak waktu yang dihabiskan di setiap metode aplikasi web langsung Anda saat menggunakan Application Insights. Application Insights Profiler kini tersedia untuk aplikasi web ASP.NET Core yang dihosting di Linux di Azure App Service. Panduan ini menyediakan petunjuk langkah demi langkah tentang cara jejak Profiler dapat dikumpulkan untuk aplikasi web ASP.NET Core Linux.
Setelah anda menyelesaikan panduan ini, aplikasi Anda dapat mengumpulkan jejak Profiler seperti jejak yang ditampilkan dalam gambar. Dalam contoh ini, jejak Profiler menunjukkan bahwa permintaan web tertentu lambat karena waktu yang dihabiskan untuk menunggu. Hot path dalam kode yang memperlambat aplikasi ditandai dengan ikon api. Metode Tentang di bagian HomeController memperlambat aplikasi web karena metode ini memanggil fungsi Thread.Sleep.

Prasyarat
Instruksi berikut berlaku untuk semua lingkungan pengembangan Windows, Linux, dan Mac:
- Instal .NET Core SDK 3.1 atau yang lebih baru.
- Instal Git dengan mengikuti instruksi di Memulai - Menginstal Git.
Menjalankan proyek secara lokal
Buka jendela Prompt Perintah di komputer Anda. Instruksi berikut berlaku untuk semua lingkungan pengembangan Windows, Linux, dan Mac.
Buat aplikasi web Core MVC ASP.NET baru:
dotnet new mvc -n LinuxProfilerTestUbah direktori kerja ke folder akar untuk proyek.
Tambahkan paket NuGet untuk mengumpulkan jejak Profiler:
dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCoreAktifkan Application Insights dan Profiler di Startup.cs:
public void ConfigureServices(IServiceCollection services) { services.AddApplicationInsightsTelemetry(); // Add this line of code to enable Application Insights. services.AddServiceProfiler(); // Add this line of code to Enable Profiler services.AddControllersWithViews(); }Tambahkan baris kode di bagian HomeController.cs untuk menunda beberapa detik secara acak:
using System.Threading; ... public IActionResult About() { Random r = new Random(); int delay = r.Next(5000, 10000); Thread.Sleep(delay); return View(); }Simpan dan komit perubahan Anda ke repositori lokal:
git init git add . git commit -m "first commit"
Membuat aplikasi web Linux untuk menghost proyek Anda
Buat lingkungan aplikasi web dengan menggunakan App Service di Linux:
Membuat kredensial penyebaran:
Catatan
Rekam kata sandi Anda untuk digunakan nanti saat menggunakan aplikasi web Anda.

Pilih opsi penyebaran. Siapkan repositori Git lokal di aplikasi web dengan mengikuti instruksi di portal Microsoft Azure. Repositori Git dibuat secara otomatis.

Untuk opsi penerapan lainnya, lihat Dokumentasi App Service.
Menyebarkan proyek Anda
Di jendela Prompt Perintah, telusuri ke folder akar untuk proyek Anda. Tambahkan repositori jarak jauh Git untuk menunjuk ke repositori pada App Service:
git remote add azure https://<username>@<app_name>.scm.azurewebsites.net:443/<app_name>.git- Gunakan nama pengguna yang Anda gunakan untuk membuat kredensial penyebaran.
- Gunakan nama aplikasi yang Anda gunakan untuk membuat aplikasi web dengan menggunakan App Service di Linux.
Sebarkan proyek dengan mendorong perubahan ke Azure:
git push azure mainAnda harus melihat output yang mirip dengan berikut ini:
Counting objects: 9, done. Delta compression using up to 8 threads. Compressing objects: 100% (8/8), done. Writing objects: 100% (9/9), 1.78 KiB | 911.00 KiB/s, done. Total 9 (delta 3), reused 0 (delta 0) remote: Updating branch 'main'. remote: Updating submodules. remote: Preparing deployment for commit id 'd7369a99d7'. remote: Generating deployment script. remote: Running deployment command... remote: Handling ASP.NET Core Web Application deployment. remote: ...... remote: Restoring packages for /home/site/repository/EventPipeExampleLinux.csproj... remote: . remote: Installing Newtonsoft.Json 10.0.3. remote: Installing Microsoft.ApplicationInsights.Profiler.Core 1.1.0-LKG ...
Menambahkan Application Insights untuk memantau aplikasi web Anda
Salin nilai iKey sumber daya Application Insights dan atur pengaturan berikut di aplikasi web Anda:
APPINSIGHTS_INSTRUMENTATIONKEY: [YOUR_APPINSIGHTS_KEY]Saat pengaturan aplikasi diubah, situs akan dimulai ulang secara otomatis. Setelah pengaturan baru diterapkan, Profiler segera berjalan selama dua menit. Profiler kemudian berjalan selama dua menit setiap jam.
Hasilkan beberapa lalu lintas ke situs web Anda. Anda dapat menghasilkan lalu lintas dengan menyegarkan halaman Tentang situs beberapa kali.
Tunggu dua hingga lima menit agar acara dikumpulkan ke Application Insights.
Telusuri ke panel Kinerja Application Insights di portal Microsoft Azure. Anda bisa menampilkan jejak Profiler di kanan bawah panel.

Langkah berikutnya
Jika Anda menggunakan kontainer kustom yang dihosting oleh Azure App Service, ikuti instruksi di Aktifkan Profiler Layanan untuk aplikasi ASP.NET Core dalam kontainer untuk mengaktifkan Profiler Application Insights.
Laporkan masalah atau saran apa pun ke repositori Application Insights GitHub: ApplicationInsights-Profiler-AspNetCore: Issues.