Application Insights untuk layanan cloud Microsoft Azure

Application Insights dapat memantau aplikasi layanan cloud Azure untuk ketersediaan, performa, kegagalan, dan penggunaan dengan menggabungkan data dari SDK Application Insights dengan data Azure Diagnostics dari layanan cloud Anda. Dengan umpan balik yang Anda dapatkan tentang performa dan efektivitas aplikasi Anda di alam liar, Anda dapat membuat pilihan yang tepat tentang arah desain di setiap siklus hidup pengembangan.

Dasbor ringkasan

Catatan

Pada tanggal 31 Maret 2025, dukungan untuk penyerapan kunci instrumentasi akan berakhir. Penyerapan kunci instrumentasi akan berjalan terus, namun kami tidak akan lagi menyediakan pembaruan atau dukungan terhadap fitur tersebut. Transisi ke string koneksi untuk memanfaatkan kemampuan baru.

Prasyarat

Sebelum Anda mulai, Anda perlu:

  • Langganan Azure.

    Masuk dengan akun Microsoft Anda untuk Windows, Xbox Live, atau layanan cloud Microsoft lainnya.

  • Alat Microsoft Azure 2.9 atau yang lebih baru.

  • Alat Developer Analytics 7.10 atau yang lebih baru.

Mulai dengan cepat

Cara tercepat dan termudah untuk memantau layanan cloud Anda dengan Application Insights adalah dengan memilih opsi tersebut saat Anda menerbitkan layanan ke Microsoft Azure.

Contoh halaman Pengaturan Diagnostik

Opsi ini melengkapi aplikasi Anda saat runtime, memberi Anda semua telemetri yang Anda butuhkan untuk memantau permintaan, pengecualian, dan dependensi dalam peran web Anda. Ini juga memantau penghitung kinerja dari peran pekerja Anda. Jejak diagnostik apa pun yang dihasilkan oleh aplikasi Anda juga dikirim ke Application Insights.

Jika opsi ini adalah semua yang Anda butuhkan, Anda sudah selesai.

Langkah Anda selanjutnya adalah melihat metrik dari aplikasi Anda dan mengkueri data Anda dengan Analitik.

Untuk memantau kinerja di browser, Anda mungkin juga ingin menyiapkan pengujian ketersediaan dan menambahkan kode ke halaman web Anda.

Bagian berikutnya membahas opsi tambahan berikut:

  • Kirim data dari berbagai komponen dan bangun konfigurasi ke sumber daya terpisah.
  • Tambahkan telemetri khusus dari aplikasi Anda.

Contoh aplikasi yang di instrumen dengan Application Insights

Dalam contoh aplikasi ini, Application Insights ditambahkan ke layanan cloud dengan dua peran pekerja yang dihosting di Microsoft Azure.

Di bagian berikutnya, Anda akan mempelajari cara mengadaptasi proyek layanan cloud Anda sendiri dengan cara yang sama.

Merencanakan sumber daya dan grup sumber daya

Telemetri dari aplikasi Anda disimpan, dianalisis, dan ditampilkan dalam sumber daya Azure jenis Application Insights.

Setiap sumber daya adalah milik grup sumber daya. Grup sumber daya digunakan untuk mengelola biaya, untuk memberikan akses ke anggota tim, dan untuk menyebarkan pembaruan dalam satu transaksi terkoordinasi. Misalnya, Anda dapat menulis skrip untuk menerapkan layanan cloud Microsoft Azure dan sumber daya pemantauan Application Insights-nya sekaligus dalam satu operasi.

Sumber daya untuk komponen

Kami menyarankan agar Anda menambahkan properti dimensi ke setiap item telemetri yang mengidentifikasi peran sumbernya. Dalam pendekatan ini, bagan metrik, seperti pengecualian, biasanya menunjukkan agregasi jumlah dari berbagai peran, tetapi Anda dapat mengelompokkan bagan menurut pengidentifikasi peran, jika perlu. Anda juga dapat memfilter pencarian berdasarkan dimensi yang sama. Alternatif ini membuatnya sedikit lebih mudah untuk melihat semuanya pada saat yang sama, tetapi juga dapat menyebabkan beberapa kebingungan antara peran.

Telemetri browser biasanya disertakan dalam sumber daya yang sama dengan peran web sisi servernya.

Tempatkan sumber daya Application Insights untuk berbagai komponen dalam satu grup sumber daya. Pendekatan ini memudahkan untuk mengelola berbagai komponen bersama-sama.

Pengembangan, pengujian, dan produksi terpisah

Jika Anda mengembangkan peristiwa khusus untuk fitur Anda berikutnya saat versi sebelumnya ditayangkan, Anda ingin mengirim telemetri pengembangan ke sumber daya Application Insights yang terpisah. Jika tidak, mungkin sulit untuk menemukan telemetri pengujian Anda di antara semua lalu lintas dari situs langsung.

Untuk menghindari situasi ini, buat sumber daya terpisah untuk setiap konfigurasi build atau "stempel" (pengembangan, pengujian, produksi, dan sebagainya) dari sistem Anda. Letakkan sumber daya untuk setiap konfigurasi build dalam grup sumber daya yang terpisah.

Untuk mengirim telemetri ke sumber daya yang sesuai, Anda dapat menyiapkan SDK Application Insights agar dapat mengambil kunci instrumentasi yang berbeda, tergantung pada konfigurasi build.

Pelajari cara mengatur kunci instrumentasi secara dinamis untuk berbagai tahap.

Membuat sumber daya Application Insights untuk setiap peran

Jika Anda telah memutuskan untuk membuat sumber daya terpisah untuk setiap peran, dan mungkin set terpisah untuk setiap konfigurasi build, paling mudah untuk membuat semuanya di portal Application Insights. Jika Anda membuat sumber daya banyak, Anda dapat mengotomatiskan proses.

  1. Di portal Microsoft Azure, pilih Baru>Layanan Pengembang>Application Insights.

    Panel Application Insights

  2. Di daftar turun bawah Jenis Aplikasi, pilih ASP.NET aplikasi web.

Setiap sumber daya diidentifikasi oleh kunci instrumentasi. Anda mungkin memerlukan kunci ini nanti jika Anda ingin mengonfigurasi atau memverifikasi konfigurasi SDK secara manual.

Menyiapkan Azure Diagnostics untuk setiap peran

Atur opsi ini untuk memantau aplikasi Anda dengan Application Insights. Untuk peran web, opsi ini menyediakan pemantauan performa, peringatan, diagnostik, dan analisis penggunaan. Untuk peran lain, Anda dapat mencari dan memantau Azure Diagnostics seperti hidupkan ulang, penghitung performa, dan panggilan ke System.Diagnostics.Trace.

  1. Di Penjelajah Solusi Visual Studio, di bagian <YourCloudService>>Peran, buka properti setiap peran.

  2. Dalam Konfigurasi, pilih kotak centang Kirim data diagnostik ke Application Insights, lalu pilih sumber daya Application Insights yang Anda buat sebelumnya.

Jika Anda telah memutuskan untuk menggunakan sumber daya Application Insights yang terpisah untuk setiap konfigurasi build, pilih konfigurasi terlebih dahulu.

Mengonfigurasi Application Insights

Konfigurasi ini memiliki efek memasukkan kunci instrumentasi Application Insights Anda ke dalam file bernama ServiceConfiguration.*.cscfg. Berikut adalah Kode sampelnya.

Jika Anda ingin memvariasikan tingkat informasi diagnostik yang dikirim ke Application Insights, Anda dapat melakukannya dengan mengedit file .cscfg secara langsung.

Memasang SDK di setiap proyek

Dengan opsi ini, Anda dapat menambahkan telemetri bisnis kustom ke peran apa pun. Opsi ini memberikan analisis yang lebih dekat tentang bagaimana aplikasi Anda digunakan dan berkinerja.

Di Visual Studio, konfigurasikan SDK Application Insights untuk setiap proyek aplikasi cloud.

  1. Untuk mengonfigurasi peran web, klik kanan proyek, lalu pilih Konfigurasikan Application Insights atau Tambahkan > telemetri Application Insights.

  2. Untuk mengonfigurasi peran pekerja:

    a. Klik kanan proyek, lalu pilih Kelola Paket NuGet.

    b. Tambahkan Application Insights untuk Windows Server.

  3. Untuk mengonfigurasi SDK untuk mengirim data ke sumber daya Application Insights:

    a. Dalam fungsi startup yang sesuai, atur kunci instrumentasi dari pengaturan konfigurasi dalam file .cscfg:

        TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
        configuration.InstrumentationKey = RoleEnvironment.GetConfigurationSettingValue("APPINSIGHTS_INSTRUMENTATIONKEY");
        var telemetryClient = new TelemetryClient(configuration);
    

    b. Ulangi "langkah a" untuk setiap peran di aplikasi Anda. Lihat contoh berikut:

  4. Atur file ApplicationInsights.config yang akan disalin selalu ke direktori output.

    Pesan dalam file .config meminta Anda untuk menempatkan kunci instrumentasi di sana. Namun, untuk aplikasi cloud, lebih baik mengaturnya dari file .cscfg. Pendekatan ini memastikan bahwa peran tersebut diidentifikasi dengan benar di portal.

Menyiapkan Monitor Status untuk mengumpulkan Kueri SQL penuh (opsional)

Langkah ini hanya diperlukan jika Anda ingin menangkap kueri SQL penuh di .NET Framework.

  1. Dalam file \*.csdef Tambahkan tugas startup untuk setiap peran yang mirip dengan

    <Startup>
      <Task commandLine="AppInsightsAgent\InstallAgent.bat" executionContext="elevated" taskType="simple">
        <Environment>
          <Variable name="ApplicationInsightsAgent.DownloadLink" value="http://go.microsoft.com/fwlink/?LinkID=522371" />
          <Variable name="RoleEnvironment.IsEmulated">
            <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
          </Variable>
        </Environment>
      </Task>
    </Startup>
    
  2. Unduh InstallAgent.bat dan InstallAgent.ps1, masukkan ke dalam folder AppInsightsAgent pada setiap proyek peran. Pastikan untuk menyalinnya ke direktori output melalui properti file Visual Studio atau skrip build.

  3. Di semua Peran Pekerja, tambahkan variabel lingkungan:

      <Environment>
        <Variable name="COR_ENABLE_PROFILING" value="1" />
        <Variable name="COR_PROFILER" value="{324F817A-7420-4E6D-B3C1-143FBED6D855}" />
        <Variable name="MicrosoftInstrumentationEngine_Host" value="{CA487940-57D2-10BF-11B2-A3AD5A13CBC0}" />
      </Environment>
    

Menjalankan dan memublikasikan aplikasi

  1. Jalankan aplikasi Anda, dan masuk ke Microsoft Azure.

  2. Buka sumber daya Application Insights yang Anda buat.

    Titik data individual ditampilkan di Pencarian, dan data agregat ditampilkan di Penjelajah Metrik.

  3. Tambahkan lebih banyak telemetri (lihat bagian berikutnya) lalu publikasikan aplikasi Anda untuk mendapatkan diagnostik langsung dan umpan balik penggunaan.

Jika tidak ada data, lakukan hal berikut:

  1. Untuk menampilkan peristiwa individual, buka petak peta Pencarian.
  2. Dalam aplikasi, buka berbagai halaman hingga menghasilkan beberapa telemetri.
  3. Tunggu beberapa detik, lalu klik Refresh.

Menampilkan peristiwa Azure Diagnostics

Anda dapat menemukan informasi Azure Diagnostics di Application Insights di lokasi berikut:

  • Penghitung kinerja ditampilkan sebagai metrik kustom.
  • Log peristiwa Windows diperlihatkan sebagai jejak dan peristiwa kustom.
  • Log aplikasi, log ETW, dan log infrastruktur diagnostik apa pun muncul sebagai jejak.

Untuk melihat penghitung kinerja dan hitungan peristiwa, buka Metrics Explorer dan tambahkan bagan berikut ini:

Data Azure Diagnostics

Untuk menelusuri berbagai log jejak yang dikirim oleh Azure Diagnostics, gunakan Pencarian atau Kueri analitik. Misalnya, Anda memiliki pengecualian tidak tertangani yang menyebabkan peran crash dan daur ulang. Informasi tersebut akan muncul di saluran Aplikasi Log Peristiwa Windows. Anda dapat menggunakan Pencarian untuk melihat kesalahan Log Peristiwa Windows dan mendapatkan jejak tumpukan penuh untuk pengecualian. Melakukannya membantu Anda menemukan akar penyebab masalah.

Pencarian Azure Diagnostics

Telemetri lainnya

Bagian berikutnya membahas cara mendapatkan telemetri tambahan dari berbagai aspek aplikasi Anda.

Melacak permintaan dari peran pekerja

Dalam peran web, modul permintaan secara otomatis mengumpulkan data tentang permintaan HTTP. Untuk contoh bagaimana Anda dapat mengganti perilaku pengumpulan default, lihat contoh MVCWebRole.

Anda dapat mengambil performa panggilan ke peran pekerja dengan melacaknya menggunakan cara yang sama seperti permintaan HTTP. Dalam Application Insights, jenis telemetri Permintaan mengukur satuan pekerjaan sisi server bernama yang dapat diatur waktunya dan dapat secara independen berhasil atau gagal. Meskipun permintaan HTTP ditangkap secara otomatis oleh SDK, Anda dapat memasukkan kode Anda sendiri untuk melacak permintaan ke peran pekerja.

Lihat dua contoh peran pekerja yang dilengkapi untuk melaporkan permintaan:

Pengecualian

Untuk informasi tentang cara mengumpulkan pengecualian yang tidak tertangani dari berbagai jenis aplikasi web, lihat Memantau pengecualian dalam Application Insights.

Sampel peran web memiliki pengontrol MVC5 dan Web API 2. Pengecualian yang tidak tertangani dari keduanya ditangkap dengan penanganan berikut:

Untuk peran pekerja, Anda dapat melacak pengecualian dengan dua cara:

  • Gunakan TrackException(ex).
  • Jika Anda telah menambahkan paket Application Insights trace listener NuGet, Anda dapat menggunakan System.Diagnostics.Trace untuk mencatat pengecualian seperti yang ditunjukkan dalam contoh ini.

Penghitung kinerja

Penghitung berikut dikumpulkan secara default:

  • \Process(??APP_WIN32_PROC??)% Processor Time
  • \Memory\Available Bytes
  • .NET CLR Exceptions(??APP_CLR_PROC??)# of Exceps Thrown / sec
  • \Process(??APP_WIN32_PROC??)\Private Bytes
  • \Process(??APP_WIN32_PROC??)\IO Data Bytes/sec
  • \Processor(_Total)% Processor Time

Untuk peran web, penghitung ini juga dikumpulkan:

  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests/Sec
  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Request Execution Time
  • \ASP.NET Applications(??APP_W3SVC_PROC??)\Requests In Application Queue

Anda dapat menentukan penghitung performa Windows kustom atau lainnya dengan mengedit ApplicationInsights.configseperti yang ditunjukkan dalam contoh ini.

Penghitung kinerja

Telemetri berkorelasi untuk peran pekerja

Untuk pengalaman diagnostik yang kaya, Anda dapat menampilkan apa yang menyebabkan permintaan latensi gagal atau tinggi. Dengan peran web, SDK secara otomatis menyiapkan korelasi antara telemetri terkait.

Untuk mencapai tampilan peran pekerja ini, Anda dapat menggunakan penginisialisasi telemetri kustom untuk mengatur atribut konteks Operation.Id umum untuk semua telemetri. Melakukannya memungkinkan Anda melihat sekilas apakah masalah latensi atau kegagalan disebabkan oleh ketergantungan atau kode Anda.

Berikut caranya:

Telemetri klien

Untuk mendapatkan telemetri berbasis browser, seperti jumlah tampilan halaman, waktu pemuatan halaman, atau pengecualian skrip, dan untuk menulis telemetri kustom di skrip halaman Anda, lihat Menambahkan SDK JavaScript ke halaman web Anda.

Uji Ketersediaan

Untuk memastikan aplikasi Anda tetap hidup dan responsif, Siapkan pengujian web.

Tampilkan semuanya bersama

Untuk gambaran keseluruhan sistem Anda, Anda dapat menampilkan bagan pemantauan kunci bersama pada satu dasbor. Misalnya, Anda dapat menyematkan jumlah permintaan dan kegagalan dari setiap peran.

Jika sistem Anda menggunakan layanan Microsoft Azure lainnya, seperti Azure Stream Analytics, sertakan juga diagram pemantauannya.

Jika Anda memiliki aplikasi seluler klien, gunakan Visual Studio App Center. Buat kueri di Analytics untuk menampilkan jumlah peristiwa, dan menyematkannya ke dasbor.

Contoh

Contohnya memantau layanan yang memiliki peran web dan dua peran pekerja.

Pengecualian "metode tidak ditemukan" saat berjalan di Azure Cloud Services

Apakah Anda membangun untuk .NET LTS? Versi sebelumnya tidak didukung secara otomatis dalam peran Azure cloud services. Pasang .NET LTS pada setiap peran sebelum menjalankan aplikasi Anda.

Langkah berikutnya