Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Application Insights mengumpulkan telemetri dari aplikasi Anda untuk membantu mendiagnosis kegagalan dan menyelidiki transaksi lambat. Ini termasuk empat alat penting:
Tampilan kegagalan - Melacak kesalahan, pengecualian, dan kegagalan, menawarkan wawasan yang jelas untuk pemecahan masalah yang cepat dan efektif serta peningkatan stabilitas.
Tampilan performa - Mengidentifikasi dan membantu mengatasi hambatan aplikasi dengan cepat dengan menampilkan waktu respons dan jumlah operasi.
Tampilan pencarian - Memungkinkan pengguna menemukan dan memeriksa item telemetri individual seperti tampilan halaman, pengecualian, dan peristiwa kustom.
Diagnostik Transaksi - Membantu mengidentifikasi masalah dalam komponen dengan cepat melalui gambaran yang menyeluruh tentang detail transaksi end-to-end.
Bersama-sama, alat-alat ini memastikan kesehatan dan efisiensi aplikasi web yang sedang berlangsung. Anda dapat menggunakannya untuk menentukan masalah atau peningkatan yang akan berdampak paling besar pada pengguna.
Untuk masuk ke tampilan Kegagalan di Application Insights, pilih grafik Permintaan gagal pada panel Gambaran Umum , atau Kegagalan di bawah kategori Selidiki di menu sumber daya.
Anda juga bisa masuk ke tampilan kegagalan dari Peta Aplikasi dengan memilih sumber daya, lalu Menyelidiki kegagalan dari bagian triase.
Nota
Anda dapat mengakses diagnostik transaksi melalui salah satu dari tiga fitur lainnya. Untuk informasi selengkapnya, lihat Menyelidiki telemetri.
Gambaran Umum
Tampilan Kegagalan menunjukkan daftar semua operasi gagal yang dikumpulkan untuk aplikasi Anda dengan opsi untuk menelusuri masing-masing operasi. Ini memungkinkan Anda melihat frekuensi mereka dan jumlah pengguna yang terpengaruh, untuk membantu Anda memfokuskan upaya Anda pada masalah dengan dampak tertinggi.
Nota
Selain telemetri siap pakai yang dikirim oleh Azure Monitor OpenTelemetry Distro atau JavaScript SDK, Anda dapat menambahkan dan memodifikasi telemetri (misalnya, peristiwa kustom).
Untuk informasi selengkapnya, lihat Tambahkan dan ubah Azure Monitor OpenTelemetry untuk aplikasi .NET, Java, Node.js, dan Python.
Memfilter telemetri
Filter default
Semua pengalaman memungkinkan Anda memfilter telemetri berdasarkan rentang waktu. Selain itu, setiap pengalaman dilengkapi dengan filter defaultnya sendiri:
Anda dapat memilih layanan mana (Nama Peran Cloud) atau mesin/kontainer (Instans Peran Cloud) untuk dilihat dari menu filter Peran. Tindakan ini memungkinkan Anda untuk mengisolasi masalah atau tren performa dalam bagian tertentu dari aplikasi Anda.
Untuk mempelajari cara mengatur Cloud Role Name dan Cloud Role Instance, lihat Konfigurasi Azure Monitor OpenTelemetry.
Tambahkan filter
Anda dapat memfilter kejadian berdasarkan nilai propertinya. Properti yang tersedia tergantung pada jenis acara atau telemetri yang Anda pilih. Untuk menambahkan filter:
Pilih
untuk menambahkan filter.
Dari daftar dropdown sebelah kiri, pilih properti.
Dari daftar dropdown tengah, pilih salah satu operator berikut:
=, ,!=contains, ataunot contains.Dari daftar dropdown kanan, pilih semua nilai properti yang ingin Anda filter.
Nota
Perhatikan bahwa hitungan di sebelah kanan nilai filter memperlihatkan berapa banyak kemunculan yang ada di set yang difilter saat ini.
Untuk menambahkan filter lain, pilih
lagi.
Cari telemetri
Anda dapat mencari operasi tertentu menggunakan bidang Cari untuk memfilter item... di atas daftar operasi.
Menggunakan data analitik
Semua data yang dikumpulkan oleh Application Insights disimpan di Analitik Log. Ini menyediakan bahasa kueri yang kaya untuk menganalisis permintaan yang menghasilkan pengecualian yang Anda selidiki.
Petunjuk / Saran
Mode sederhana di Log Analytics menawarkan antarmuka point-and-click yang intuitif untuk menganalisis dan memvisualisasikan data log.
Pada tampilan performa, kegagalan, atau pencarian, pilih Tampilkan di Log di bilah navigasi atas dan pilih kueri dari menu dropdown.
Tindakan ini membawa Anda ke tampilan Log , di mana Anda dapat mengubah kueri lebih lanjut atau memilih yang berbeda dari bilah sisi.
Menyelidiki telemetri
Untuk menyelidiki akar penyebab kesalahan atau pengecualian, Anda dapat menelusuri operasi yang bermasalah untuk tampilan detail transaksi end-to-end terperinci yang mencakup dependensi dan detail pengecualian.
Pilih operasi untuk melihat 3 kode respons teratas, 3 jenis pengecualian teratas, dan 3 dependensi gagal teratas untuk operasi tersebut.
Di bawah Telusuri, pilih tombol dengan jumlah hasil yang difilter untuk melihat daftar operasi sampel.
Pilih operasi sampel untuk membuka tampilan Detail transaksi end-to-end .
Nota
Sampel yang disarankan mencakup telemetri terkait dari semua komponen, bahkan jika pengambilan sampel sedang berlangsung di salah satunya.
Petunjuk / Saran
Jika Anda memerlukan informasi tumpukan panggilan selama kegagalan, buka pengecualian terkait di Detail transaksi end-to-end atau tab Pengecualian. Jejak tumpukan hanya ditampilkan ketika telemetri pengecualian dicatat untuk operasi tersebut.
Menganalisis performa dan kegagalan sisi klien
Jika Anda melengkapi halaman web dengan Application Insights, Anda dapat memperoleh visibilitas ke dalam tampilan halaman, operasi browser, dan dependensi. Mengumpulkan data browser ini memerlukan penambahan skrip ke halaman web Anda.
Setelah menambahkan skrip, Anda dapat access tampilan halaman dan metrik performa terkait dengan memilih tombol Browser pada tampilan Performance atau Failures.
Tampilan ini menyediakan ringkasan visual berbagai telemetri aplikasi Anda dari perspektif browser.
Petunjuk / Saran
Untuk aplikasi satu halaman (SPAs), aktifkan enableAutoRouteTracking atau panggil trackPageView() pada perubahan rute sehingga setiap halaman logis membuat tampilan dan operasi halamannya sendiri. Jika tidak, beberapa perubahan rute dapat berkorelasi dengan satu operasi dan beberapa durasi tampilan halaman dapat muncul sebagai
0.Untuk operasi browser, tampilan detail transaksi end-to-end memperlihatkan Properti Tampilan Halaman klien yang meminta halaman, termasuk jenis browser dan lokasinya. Informasi ini dapat membantu menentukan apakah ada masalah performa yang terkait dengan jenis klien tertentu.
Nota
Seperti data yang dikumpulkan untuk performa server, Application Insights membuat semua data klien tersedia untuk analisis mendalam dengan menggunakan log.
Pengalaman diagnostik transaksi
Pengalaman diagnostik transaksi, juga disebut pandangan detail transaksi menyeluruh, menunjukkan bagan Gantt transaksi, yang mencantumkan semua peristiwa dengan durasi dan kode respons mereka.
Pengalaman diagnostik ini secara otomatis menghubungkan telemetri sisi server dari semua komponen yang dipantau Application Insights Anda ke dalam satu tampilan dan mendukung beberapa sumber daya. Application Insights mendeteksi hubungan yang mendasarinya dan memungkinkan Anda untuk dengan mudah mendiagnosis komponen aplikasi, dependensi, atau pengecualian yang menyebabkan perlambatan atau kegagalan transaksi.
Memilih peristiwa tertentu mengungkapkan propertinya, termasuk informasi tambahan seperti perintah yang mendasari atau tumpukan panggilan.
Tampilan ini memiliki empat bagian utama:
Panel yang bisa diciutkan ini memperlihatkan hasil lain yang memenuhi kriteria filter. Pilih hasil apa pun untuk memperbarui detail masing-masing dari tiga bagian sebelumnya. Kami mencoba menemukan sampel yang kemungkinan besar memiliki detail yang tersedia dari semua komponen, bahkan jika pengambilan sampel berlaku di salah satu dari mereka. Sampel ini ditampilkan sebagai saran.
Nota
Pengalaman diagnostik Transaksi sekarang menawarkan tampilan sederhana, yang menunjukkan langkah-langkah agen dengan cara yang jelas dan seperti cerita. Untuk informasi selengkapnya, lihat Memantau agen AI dengan Application Insights.
Catatan rilis
Anotasi rilis menandai penyebaran dan peristiwa signifikan lainnya pada bagan Application Insights, memungkinkan korelasi perubahan dengan performa, kegagalan, dan penggunaan.
Anotasi otomatis dengan Azure Pipelines
Azure Pipelines membuat anotasi rilis selama penyebaran ketika semua kondisi berikut ini benar:
- Sumber daya target ditautkan ke Application Insights melalui
APPLICATIONINSIGHTS_CONNECTION_STRINGpengaturan aplikasi. - Sumber daya Application Insights berada dalam langganan yang sama dengan sumber daya target.
- Penyebaran menggunakan salah satu tugas Azure Pipelines berikut:
| Kode tugas | Nama tugas | Versions |
|---|---|---|
| AzureAppServiceSettings | Pengaturan Azure App Service | Apa saja |
| AzureRmWebAppDeployment | Azure App Service | V3+ |
| AzureFunctionApp | Azure Functions | Apa saja |
| AzureFunctionAppContainer | Azure Functions untuk kontainer | Apa saja |
| AzureWebAppContainer | Azure Web App untuk Kontainer | Apa saja |
| AzureWebApp | Aplikasi Web Azure | Apa saja |
Nota
Jika Anda masih menggunakan tugas penyebaran anotasi Application Insights yang lebih lama, hapus.
Mengonfigurasi anotasi dalam alur dengan menggunakan skrip dalam baris
Jika Anda tidak menggunakan tugas di bagian sebelumnya, tambahkan skrip inline di tahap penyebaran.
Buka alur yang sudah ada atau buat yang baru, dan pilih tugas di bawah Tahapan.
Tambahkan tugas Azure CLI baru.
Pilih langganan Azure. Atur Jenis Skrip ke PowerShell, dan atur Lokasi Skrip ke Sebaris.
Tambahkan skrip PowerShell dari langkah 2 di Buat anotasi rilis dengan Azure CLI ke Inline Script.
Tambahkan argumen skrip. Ganti placeholder dalam tanda kurung sudut.
-aiResourceId "<aiResourceId>" ` -releaseName "<releaseName>" ` -releaseProperties @{"ReleaseDescription"="<a description>"; "TriggerBy"="<Your name>" }Contoh berikut menunjukkan metadata yang dapat Anda atur dalam argumen opsional
releasePropertiesdengan menggunakan variabel build dan rilis. Pilih Simpan.-releaseProperties @{ "BuildNumber"="$(Build.BuildNumber)"; "BuildRepositoryName"="$(Build.Repository.Name)"; "BuildRepositoryProvider"="$(Build.Repository.Provider)"; "ReleaseDefinitionName"="$(Build.DefinitionName)"; "ReleaseDescription"="Triggered by $(Build.DefinitionName) $(Build.BuildNumber)"; "ReleaseEnvironmentName"="$(Release.EnvironmentName)"; "ReleaseId"="$(Release.ReleaseId)"; "ReleaseName"="$(Release.ReleaseName)"; "ReleaseRequestedFor"="$(Release.RequestedFor)"; "ReleaseWebUrl"="$(Release.ReleaseWebUrl)"; "SourceBranch"="$(Build.SourceBranch)"; "TeamFoundationCollectionUri"="$(System.TeamFoundationCollectionUri)" }
Membuat anotasi rilis dengan Azure CLI
Gunakan skrip PowerShell berikut untuk membuat anotasi rilis dari proses apa pun, tanpa Azure DevOps.
Masuk ke Azure CLI.
Simpan skrip berikut sebagai
CreateReleaseAnnotation.ps1.param( [parameter(Mandatory = $true)][string]$aiResourceId, [parameter(Mandatory = $true)][string]$releaseName, [parameter(Mandatory = $false)]$releaseProperties = @() ) # Function to ensure all Unicode characters in a JSON string are properly escaped function Convert-UnicodeToEscapeHex { param ( [parameter(Mandatory = $true)][string]$JsonString ) $JsonObject = ConvertFrom-Json -InputObject $JsonString foreach ($property in $JsonObject.PSObject.Properties) { $name = $property.Name $value = $property.Value if ($value -is [string]) { $value = [regex]::Unescape($value) $OutputString = "" foreach ($char in $value.ToCharArray()) { $dec = [int]$char if ($dec -gt 127) { $hex = [convert]::ToString($dec, 16) $hex = $hex.PadLeft(4, '0') $OutputString += "\u$hex" } else { $OutputString += $char } } $JsonObject.$name = $OutputString } } return ConvertTo-Json -InputObject $JsonObject -Compress } $annotation = @{ Id = [GUID]::NewGuid(); AnnotationName = $releaseName; EventTime = (Get-Date).ToUniversalTime().GetDateTimeFormats("s")[0]; Category = "Deployment"; #Application Insights only displays annotations from the "Deployment" Category Properties = ConvertTo-Json $releaseProperties -Compress } $annotation = ConvertTo-Json $annotation -Compress $annotation = Convert-UnicodeToEscapeHex -JsonString $annotation $accessToken = (az account get-access-token | ConvertFrom-Json).accessToken $headers = @{ "Authorization" = "Bearer $accessToken" "Accept" = "application/json" "Content-Type" = "application/json" } $params = @{ Headers = $headers Method = "Put" Uri = "https://management.azure.com$($aiResourceId)/Annotations?api-version=2015-05-01" Body = $annotation } Invoke-RestMethod @params
Nota
Atur Category ke Deployment atau anotasi tidak muncul di Azure portal.
Panggil skrip dan berikan nilai untuk parameter. Parameter -releaseProperties bersifat opsional.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
| Argumen | Definition | Nota |
|---|---|---|
aiResourceId |
ID sumber daya dari sumber daya Application Insights target. | Contoh: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Nama anotasi rilis baru. | |
releaseProperties |
Metadata kustom untuk dilampirkan ke anotasi. | Fakultatif |
Menampilkan anotasi
Nota
Anotasi rilis tidak tersedia di panel Metrik .
Application Insights menampilkan anotasi rilis dalam pengalaman berikut:
- Performa dan Kegagalan
- Penggunaan
- Buku kerja (untuk visualisasi rangkaian waktu apa pun)
Anotasi divisualisasikan sebagai penanda di bagian atas bagan.
Untuk mengaktifkan anotasi dalam buku kerja, buka Pengaturan Tingkat Lanjut lalu pilih Perlihatkan anotasi. Pilih penanda anotasi apa pun untuk membuka detail rilis seperti pemohon, cabang kontrol sumber, alur rilis, dan lingkungan.
Tanya jawab umum
Bagian ini menyediakan jawaban atas pertanyaan umum.
Tampilan pencarian
Apa itu komponen?
Komponen adalah bagian yang dapat disevarkan secara independen dari aplikasi terdistribusi atau layanan mikro Anda. Pengembang dan tim operasi memiliki akses atau visibilitas tingkat kode ke telemetri yang dihasilkan oleh komponen aplikasi ini.
- Komponen berbeda dari dependensi eksternal yang "diamati", seperti SQL dan pusat peristiwa, yang mungkin tidak memiliki akses ke (kode atau telemetri) oleh tim atau organisasi Anda.
- Komponen berjalan pada sejumlah instance server, peran, atau kontainer.
- Komponen dapat terdiri dari string koneksi terpisah untuk Application Insights, bahkan jika langganannya berbeda. Komponen juga dapat memiliki peran berbeda yang melaporkan ke satu string koneksi Application Insights. Pengalaman baru menampilkan rincian pada setiap komponen, terlepas dari cara pengaturannya.
Berapa banyak data yang disimpan?
Lihat Ringkasan batas.
Bagaimana cara melihat data POST di permintaan server saya?
Kami tidak mencatat data POST secara otomatis, tetapi Anda dapat menggunakan TrackTrace atau panggilan log. Masukkan data POST ke dalam parameter pesan. Anda tidak dapat memfilter pesan dengan cara yang sama seperti memfilter properti, tetapi batas ukurannya lebih panjang.
Mengapa pencarian Fungsi Azure saya tidak memberikan hasil?
Azure Functions tidak mencatat string kueri URL.
Diagnostik transaksi
Mengapa saya melihat satu komponen pada bagan dan komponen lain hanya ditampilkan sebagai dependensi eksternal tanpa detail apa pun?
Kemungkinan alasan:
- Apakah komponen lain diinstrumentasikan dengan Application Insights?
- Apakah komponen tersebut menggunakan SDK Application Insights stabil terbaru?
- Jika komponen ini adalah sumber daya Application Insights terpisah, validasi bahwa Anda memiliki access. Jika Anda memiliki akses dan komponen-komponen telah diinstrumentasikan menggunakan Application Insights Software Development Kits (SDKs) terbaru, beri tahu kami melalui kanal masukan di sudut kanan atas.
Saya melihat baris duplikat untuk dependensi. Apakah perilaku ini diharapkan?
Saat ini, kami menampilkan panggilan dependensi keluar yang terpisah dari permintaan masuk. Biasanya, kedua panggilan terlihat identik dengan perbedaan hanya pada durasi akibat perjalanan bolak-balik jaringan. Ikon yang menonjol dan gaya berbeda dari bilah durasi membantu membedakan di antara bilah-bilah tersebut. Apakah presentasi data ini membingungkan? Berikan umpan balik Anda!
Bagaimana menangani pergeseran waktu di berbagai instance komponen?
Jadwal waktu disesuaikan untuk ketidaksesuaian jam dalam bagan transaksi. Anda dapat melihat tanda waktu yang tepat di panel detail atau dengan menggunakan Analitik Log.
Mengapa sebagian besar kueri item terkait hilang dalam pengalaman baru ini?
Perilaku ini dirancang. Semua item terkait, di semua komponen, sudah tersedia di sisi kiri di bagian atas dan bawah. Pengalaman baru ini memiliki dua item terkait yang tidak termasuk di sisi kiri: semua telemetri dari lima menit sebelum dan sesudah peristiwa ini serta timeline pengguna.
Apakah ada cara untuk melihat lebih sedikit peristiwa per transaksi saat saya menggunakan Application Insights JavaScript SDK?
Pengalaman diagnostik transaksi menunjukkan semua telemetri dalam satu operasi yang berbagi ID Operasional. Secara default, SDK Application Insights untuk JavaScript membuat operasi baru untuk setiap tampilan halaman unik. Dalam aplikasi satu halaman (SPA), hanya satu peristiwa tampilan halaman yang dibuat dan satu ID Operasi digunakan untuk semua telemetri yang dihasilkan. Akibatnya, banyak peristiwa mungkin berkorelasi dengan operasi yang sama.
Dalam skenario ini, Anda dapat menggunakan Pelacakan Rute Otomatis untuk membuat operasi baru secara otomatis untuk navigasi di SPA Anda. Anda harus mengaktifkan enableAutoRouteTracking sehingga sistem membuat tampilan halaman setiap kali rute URL diperbarui (tampilan halaman logis terjadi). Jika Anda ingin me-refresh ID Operasi secara manual, panggil appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId(). Memicu peristiwa PageView secara manual juga mengatur ulang ID Operasi.
Mengapa durasi detail transaksi tidak ditambahkan hingga durasi permintaan teratas?
Waktu yang tidak dijelaskan dalam bagan Gantt adalah waktu yang tidak tercakup oleh dependensi terlacak. Masalah ini dapat terjadi karena panggilan eksternal tidak diinstrumentasikan, baik secara otomatis atau manual. Ini juga dapat terjadi karena waktu yang digunakan untuk pemrosesan daripada karena panggilan eksternal.
Jika semua panggilan diinstrumentasi, proses yang berjalan kemungkinan merupakan penyebab utama untuk waktu yang dihabiskan. Alat yang berguna untuk mendiagnosis prosesnya adalah .NET Profiler.
Apa jika saya melihat pesan "Kesalahan mengambil data" saat menavigasi Application Insights di Azure portal?
Kesalahan ini menunjukkan bahwa browser tersebut tidak dapat memanggil API yang diperlukan atau API mengembalikan respon kegagalan. Untuk memecahkan masalah perilaku, buka jendela InPrivate browser dan nonaktifkan ekstensi browser apa pun yang berjalan, lalu identifikasi apakah Anda masih dapat mereproduksi perilaku portal. Jika kesalahan portal masih terjadi, coba uji dengan browser lain, atau komputer lain, selidiki Sistem Nama Domain (DNS) atau masalah terkait jaringan lainnya dari komputer klien tempat panggilan API gagal. Jika kesalahan portal berlanjut, kumpulkan log jaringan browser ketika mereproduksi perilaku tak terduga. Kemudian buka kasus dukungan dari portal Azure.
Langkah selanjutnya
- Pelajari selengkapnya tentang menggunakan Peta Aplikasi untuk menemukan hambatan performa dan hotspot kegagalan di semua komponen aplikasi Anda.
- Pelajari lebih lanjut tentang cara menggunakan Tampilan Ketersediaan untuk menyiapkan pengujian berulang dalam memantau ketersediaan dan responsivitas aplikasi Anda.
- Pelajari cara menggunakan Analitik Log dan menulis kueri kompleks untuk mendapatkan wawasan yang lebih mendalam dari data telemetri Anda.
- Pelajari cara mengirim log dan telemetri kustom ke Application Insights untuk pemantauan yang lebih komprehensif.
- Untuk pengantar pemantauan waktu aktif dan responsivitas, silakan lihat Gambaran umum ketersediaan.