Memecahkan masalah Profiler Application Insights

Artikel ini menyajikan langkah-langkah pemecahan masalah dan informasi untuk memungkinkan Anda menggunakan Application Insights Profiler.

Apakah Anda menggunakan titik akhir Profiler yang sesuai?

Saat ini, satu-satunya wilayah yang memerlukan modifikasi titik akhir adalah Azure Government dan Microsoft Azure yang dioperasikan oleh 21Vianet.

Pengaturan aplikasi Cloud Pemerintah AS Cloud Tiongkok
ApplicationInsightsProfilerEndpoint https://profiler.monitor.azure.us https://profiler.monitor.azure.cn
ApplicationInsightsEndpoint https://dc.applicationinsights.us https://dc.applicationinsights.azure.cn

Apakah aplikasi Anda berjalan pada versi yang tepat?

Profiler didukung pada .NET Framework lebih lambat dari 4.6.2.

Jika aplikasi web Anda adalah aplikasi ASP.NET Core, itu harus berjalan pada runtime ASP.NET Core terbaru yang didukung.

Apakah Anda menggunakan paket layanan Azure yang tepat?

Profiler saat ini tidak didukung pada paket layanan aplikasi gratis atau bersama. Tingkatkan ke salah satu paket dasar agar Profiler mulai bekerja.

Catatan

Paket konsumsi Azure Functions tidak didukung. Lihat Membuat profil aplikasi Azure Functions langsung dengan Application Insights.

Apakah Anda mencari data Profiler dalam jangka waktu yang tepat?

Jika data yang coba Anda lihat lebih lama dari dua minggu, coba batasi filter waktu Anda dan coba lagi. Jejak dihapus setelah tujuh hari.

Bisakah Anda mengakses gateway?

Periksa apakah firewall atau proksi tidak memblokir akses Anda ke halaman web ini.

Apakah Anda melihat batas waktu atau apakah Anda perlu memeriksa untuk melihat apakah Profiler sedang berjalan?

Data pembuatan profil hanya jika dapat dilampirkan ke permintaan yang terjadi saat Profiler sedang berjalan. Profiler mengumpulkan data selama dua menit setiap jam. Anda juga dapat memicu Profiler dengan memulai sesi pembuatan profil.

Profiler menulis pesan jejak dan peristiwa kustom ke sumber daya Application Insights Anda. Anda dapat menggunakan peristiwa ini untuk melihat bagaimana Profiler berjalan.

Cari pesan jejak dan peristiwa kustom yang dikirim Profiler ke sumber daya Application Insights Anda.

  1. Di sumber daya Application Insights Anda, pilih Cari dari menu atas.

    Screenshot that shows selecting the Search button from the Application Insights resource.

  2. Gunakan string pencarian berikut untuk menemukan data yang relevan:

    stopprofiler OR startprofiler OR upload OR ServiceProfilerSample
    

    Screenshot that shows the search results from aforementioned search string.

    Hasil pencarian sebelumnya mencakup dua contoh pencarian dari dua sumber daya AI:

    • Jika aplikasi tidak menerima permintaan saat Profiler berjalan, pesan menjelaskan bahwa unggahan dibatalkan karena tidak ada aktivitas.

    • Di sebelah kanan, Profiler memulai dan mengirim peristiwa kustom ketika mendeteksi permintaan yang terjadi saat Profiler sedang berjalan. Jika peristiwa kustom ServiceProfilerSample ditampilkan, itu berarti profil telah diambil dan tersedia di panel Performa Application Insights.

    Jika tidak ada rekaman yang ditampilkan, Profiler tidak berjalan atau telah kehabisan waktu. Pastikan Anda telah mengaktifkan Profiler di layanan Azure Anda.

Penghitungan ganda dalam alur paralel

Ketika dua atau beberapa utas paralel dikaitkan dengan permintaan, total metrik waktu di penampil tumpukan mungkin lebih dari durasi permintaan. Dalam hal ini, total waktu alur lebih dari waktu berlalu yang sebenarnya.

Misalnya, satu utas mungkin menunggu utas yang lain untuk diselesaikan. Penampil mencoba mendeteksi situasi ini dan menghilangkan waktu tunggu yang tidak menarik. Dalam melakukannya, itu errr di sisi menampilkan terlalu banyak informasi daripada menghilangkan apa yang mungkin menjadi informasi penting.

Saat Anda melihat alur paralel di jejak Anda, tentukan alur mana yang menunggu sehingga Anda dapat mengidentifikasi hot path untuk permintaan tersebut. Biasanya, utas yang dengan cepat masuk ke status tunggu sedang menunggu di utas lainnya. Konsentrasi pada utas lain dan abaikan waktu di utas tunggu.

Memecahkan masalah Profiler pada layanan Azure spesifik Anda

Bagian berikut memancarkan Anda melalui langkah-langkah pemecahan masalah untuk menggunakan Profiler di Azure App Service atau Azure Cloud Services.

Azure App Service

Agar Profiler berfungsi dengan baik, pastikan:

  • Aplikasi web Anda mengaktifkan Application Insights dengan pengaturan yang tepat.

  • Webjob ApplicationInsightsProfiler3 harus dijalankan. Untuk memeriksa webjob:

    1. Buka Kudu. Di portal Microsoft Azure:

      1. Di instans App Service Anda, pilih Alat Tingkat Lanjut di panel kiri.
      2. Pilih Buka.
    2. Di menu atas, pilih dasbor Alat>WebJobs. Panel WebJobs terbuka.

      Jika ApplicationInsightsProfiler3 tidak muncul, mulai ulang aplikasi App Service Anda.

      Screenshot that shows the WebJobs pane, which displays the name, status, and last runtime of jobs.

    3. Untuk melihat detail WebJob, termasuk log, pilih tautan ApplicationInsightsProfiler3 . Panel Detail WebJob Berkelanjutan terbuka.

      Screenshot that shows the Continuous WebJob Details pane.

Jika Profiler masih tidak berfungsi untuk Anda, unduh log dan kirimkan tiket dukungan Azure.

Periksa halaman status ekstensi situs Layanan Diagnostik

Jika Profiler diaktifkan melalui panel Application Insights di portal, Profiler diaktifkan oleh ekstensi situs Layanan Diagnostik. Anda dapat memeriksa halaman status ekstensi ini dengan masuk ke https://{site-name}.scm.azurewebsites.net/DiagnosticServices.

Catatan

Domain tautan halaman status bervariasi tergantung pada cloud. Domain ini sama dengan situs manajemen Kudu untuk App Service.

Halaman status ini menampilkan status penginstalan agen Profiler dan Snapshot Debugger. Jika ada kesalahan yang tidak terduga, kesalahan tersebut muncul bersama dengan langkah-langkah tentang cara memperbaikinya.

Anda dapat menggunakan situs manajemen Kudu untuk App Service untuk mendapatkan URL dasar halaman status ini:

  1. Buka aplikasi App Service Anda di portal Azure.
  2. Pilih Alat Tingkat Lanjut.
  3. Pilih Buka.
  4. Pada situs manajemen Kudu:
    1. Tambahkan /DiagnosticServices ke URL.
    2. Pilih Masukkan.

Ini berakhir seperti https://<kudu-url>/DiagnosticServices.

Halaman status tampak mirip dengan contoh berikut.

Screenshot that shows the Diagnostic Services status page.

Catatan

Penginstalan tanpa kode Profiler Application Insights mengikuti kebijakan dukungan .NET Core. Untuk informasi selengkapnya tentang runtime yang didukung, lihat kebijakan dukungan .NET Core.

Penginstalan manual

Saat Anda mengonfigurasi Profiler, pembaruan dilakukan ke pengaturan aplikasi web. Jika perlu, Anda dapat menerapkan pembaruan secara manual.

Terlalu banyak sesi pembuatan profil yang aktif

Anda dapat mengaktifkan Profiler pada maksimal empat aplikasi web yang berjalan dalam paket layanan yang sama. Jika Anda memiliki lebih dari empat, Profiler mungkin melemparkan kesalahan berikut:

Microsoft.ServiceProfiler.Exceptions.TooManyETWSessionException

Untuk mengatasinya, pindahkan beberapa aplikasi web ke paket layanan yang berbeda.

Kesalahan penyebaran: Direktori Tidak Kosong 'D:\home\site\wwwroot\App_Data\jobs'

Jika Anda menyebar ulang aplikasi web ke sumber daya Web Apps dengan Profiler yang diaktifkan, Anda mungkin melihat pesan berikut:

"Direktori Tidak Kosong 'D:\home\site\wwwroot\App_Data\jobs'"

Kesalahan ini terjadi jika Anda menjalankan Web Deploy dari skrip atau dari Azure Pipelines. Atasi dengan menambahkan parameter penyebaran berikut ke tugas Web Deploy:

-skip:Directory='.*\\App_Data\\jobs\\continuous\\ApplicationInsightsProfiler.*' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs\\continuous$' -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data\\jobs$'  -skip:skipAction=Delete,objectname='dirPath',absolutepath='.*\\App_Data$'

Parameter ini menghapus folder yang digunakan oleh Application Insights Profiler dan membuka blokir proses penyebaran ulang. Mereka tidak memengaruhi instans Profiler yang saat ini sedang berjalan.

Apakah Application Insights Profiler berjalan?

Profiler berjalan sebagai WebJob berkelanjutan di aplikasi web. Anda dapat membuka sumber daya aplikasi web di portal Microsoft Azure. Di panel WebJobs, periksa status ApplicationInsightsProfiler. Jika tidak berjalan, buka Log untuk mendapatkan informasi selengkapnya.

VM dan Azure Cloud Services

Untuk melihat apakah Profiler dikonfigurasi dengan benar oleh Azure Diagnostics:

  1. Verifikasi bahwa konten konfigurasi Azure Diagnostics yang disebarkan adalah yang Anda harapkan.

  2. Pastikan Azure Diagnostics meneruskan iKey yang tepat pada baris perintah Profiler.

  3. Periksa file log Profiler untuk melihat apakah Profiler berjalan tetapi mengembalikan kesalahan.

Untuk memeriksa pengaturan yang digunakan untuk mengonfigurasi Azure Diagnostics:

  1. Masuk ke mesin virtual (VM).

  2. Buka file log di lokasi ini. Versi plug-in mungkin lebih baru di komputer Anda.

    Untuk VM:

    c:\WindowsAzure\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    

    Untuk Azure Cloud Services:

    c:\logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics\1.11.3.12\DiagnosticsPlugin.log
    
  3. Dalam file, Anda dapat mencari string WadCfg untuk menemukan pengaturan yang diteruskan ke VM untuk mengonfigurasi Azure Diagnostics.

  4. Anda dapat memeriksa apakah iKey yang digunakan oleh sink Profiler sudah benar.

  5. Periksa baris perintah yang digunakan untuk memulai Profiler. Argumen yang digunakan untuk meluncurkan Profiler ada dalam file berikut (drive bisa berupa c: atau d: dan direktori mungkin disembunyikan):

    Untuk VM:

    C:\ProgramData\ApplicationInsightsProfiler\config.json
    

    Untuk Azure Cloud Services:

    D:\ProgramData\ApplicationInsightsProfiler\config.json
    
  6. Pastikan bahwa iKey pada baris perintah Profiler sudah benar.

  7. Dengan menggunakan jalur yang ditemukan dalam file config.json sebelumnya, periksa file log Profiler, yang disebut BootstrapN.log. Laporan ini menampilkan:

    • Informasi debug yang menunjukkan pengaturan yang digunakan Profiler.
    • Status dan pesan kesalahan dari Profiler.

    Anda dapat menemukan file-nya:

    Untuk VM:

    C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    

    Untuk Azure Cloud Services:

    C:\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\1.17.0.6\ApplicationInsightsProfiler
    
  8. Jika Profiler berjalan saat aplikasi Anda menerima permintaan, pesan berikut muncul: "Aktivitas terdeteksi dari iKey."

  9. Saat jejak sedang diunggah, pesan berikut muncul: "Mulai unggah jejak."

Mengedit proksi jaringan atau aturan firewall

Jika aplikasi Anda terhubung ke internet melalui proksi atau firewall, Anda mungkin perlu memperbarui aturan untuk berkomunikasi dengan Profiler.

IP yang digunakan oleh Application Insights Profiler disertakan dalam tag layanan Azure Monitor. Untuk informasi selengkapnya, lihat Dokumentasi tag layanan.

Dukungan

Jika Anda masih memerlukan bantuan, kirimkan tiket dukungan di portal Azure. Pastikan untuk menyertakan ID korelasi dari pesan kesalahan.