Log Application Insights berbasis metrik

Log Application Insights berbasis metrik memungkinkan Anda menganalisis kesehatan aplikasi yang dipantau, membuat dasbor yang canggih, dan mengonfigurasi pemberitahuan. Ada dua jenis WebJob:

Karena metrik standar telah diagregasi selama koleksi, mereka memiliki performa yang lebih baik pada waktu kueri. Ini membuat mereka menjadi pilihan yang lebih baik untuk dasbor dan pemberitahuan real-time. Metrik berbasis log memiliki lebih banyak dimensi, yang menjadikannya opsi unggul untuk analisis data dan diagnostik ad-hoc. Gunakan pemilih ruang nama untuk beralih antara metrik berbasis log dan standar metrik di penjelajah metrik.

Menginterpretasikan dan menggunakan kueri dari artikel ini

Artikel ini mencantumkan metrik dengan agregasi dan dimensi yang didukung. Detail tentang metrik berbasis log mencakup pernyataan kueri Kusto yang mendasarinya. Untuk kenyamanan, setiap kueri menggunakan default untuk granularitas waktu, jenis bagan, dan kadang-kadang memisahkan dimensi yang menyederhanakan dengan menggunakan kueri di Log Analytics tanpa perlu modifikasi.

Saat Anda memplot metrik yang sama dalam penjelajah metrik, tidak ada default - kueri disesuaikan secara dinamis berdasarkan pengaturan bagan Anda:

  • Rentang Waktu yang dipilih diterjemahkan menjadi tambahan dimana tanda waktu... klausa untuk hanya memilih peristiwa dari rentang waktu yang dipilih. Misalnya, bagan yang menampilkan data selama 24 jam terakhir, kuerinya menyertakan | dengan stempel waktu > lalu (24 jam).

  • Granularitas Waktu yang dipilih dimasukkan ke dalam ringkasan akhir ... dengan klausa bin (tanda waktu, [butir waktu]).

  • Dimensi Filter yang dipilih diterjemahkan ke dalam klausa tambahan.

  • Dimensi bagan Split yang dipilih diterjemahkan ke dalam properti ringkasan tambahan. Misalnya, jika Anda membagi bagan Anda berdasarkanlokasi, dan plot menggunakan granularitas waktu 5 menit, ringkasanklausul dirangkum ... oleh bin (tanda waktu, 5 m), lokasi..

Catatan

Jika Anda baru menggunakan bahasa kueri Kusto, Anda mulai dengan menyalin dan menempelkan pernyataan Kusto ke panel kueri Log Analytics tanpa melakukan modifikasi apa pun. Klik Jalankan untuk melihat bagan dasar. Saat Anda mulai memahami sintaks bahasa kueri, Anda dapat mulai melakukan modifikasi kecil dan melihat dampak perubahan Anda. Menjelajahi data Anda sendiri adalah cara yang bagus untuk mulai mewujudkan kekuatan penuh Log Analytics dan Azure Monitor.

Metrik ketersediaan

Metrik dalam kategori Ketersediaan memungkinkan Anda untuk melihat kesehatan aplikasi web Anda seperti yang diamati dari titik-titik di seluruh dunia. Konfigurasikan pengujian ketersediaan untuk mulai menggunakan metrik apa pun dari kategori ini.

Ketersediaan (availabilityResults/availabilityPercentage)

Metrik Ketersediaan memperlihatkan persentase pengujian web yang berjalan yang tidak mendeteksi masalah apa pun. Nilai terendah yang mungkin adalah 0, yang menunjukkan bahwa semua pengujian web yang berjalan telah gagal. Nilai 100 berarti bahwa semua pengujian web yang berjalan telah melewati kriteria validasi.

Satuan ukuran Agregasi yang didukung Dimensi yang didukung
Persentase Tengah Jalankan lokasi, Nama uji
availabilityResults 
| summarize sum(todouble(success == 1) * 100) / count() by bin(timestamp, 5m), location
| render timechart

Durasi uji ketersediaan (availabilityResults/duration)

Metrik durasi uji Ketersediaan menunjukkan berapa banyak waktu yang diperlukan untuk menjalankan uji web. Untuk uji web multi-langkah, metrik mencerminkan total waktu eksekusi semua langkah.

Satuan ukuran Agregasi yang didukung Dimensi yang didukung
Milidetik Rata-rata, Min, Maks Jalankan lokasi, Nama uji, Hasil uji
availabilityResults
| where notempty(duration)
| extend availabilityResult_duration = iif(itemType == 'availabilityResult', duration, todouble(''))
| summarize sum(availabilityResult_duration)/sum(itemCount) by bin(timestamp, 5m), location
| render timechart

Uji ketersediaan (availabilityResults/count)

Metrik uji Ketersediaan mencerminkan hitungan pengujian web yang dijalankan oleh Azure Monitor.

Satuan ukuran Agregasi yang didukung Dimensi yang didukung
Jumlah Jumlah Jalankan lokasi, Nama uji, Hasil uji
availabilityResults
| summarize sum(itemCount) by bin(timestamp, 5m)
| render timechart

Metrik browser

Metrik browser dikumpulkan oleh Application Insights JavaScript SDK dari browser pengguna akhir yang nyata. Mereka memberikan wawasan hebat tentang pengalaman pengguna Anda dengan aplikasi web Anda. Metrik browser biasanya tidak diambil sampel, yang berarti bahwa mereka memberikan presisi yang lebih tinggi dari jumlah penggunaan dibandingkan dengan metrik sisi server yang mungkin miring dengan pengambilan sampel.

Catatan

Untuk mengumpulkan metrik browser, aplikasi Anda harus berinstrumen dengan Application Insights JavaScript SDK.

Waktu muat halaman browser (browserTimings/totalDuration)

Waktu dari permintaan pengguna hingga DOM, lembar gaya, skrip, dan gambar dimuat.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat
Milidetik Rata-rata, Min, Maks Tidak
browserTimings
| where notempty(totalDuration)
| extend _sum = totalDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

Waktu pemrosesan klien (browserTiming/processingDuration)

Waktu antara menerima byte terakhir dokumen hingga DOM dimuat. Permintaan asinkron mungkin masih diproses.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat
Milidetik Rata-rata, Min, Maks Tidak
browserTimings
| where notempty(processingDuration)
| extend _sum = processingDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum)/sum(_count) by bin(timestamp, 5m)
| render timechart

Waktu sambungkan jaringan load halaman (browserTimings/networkDuration)

Waktu antara permintaan pengguna dan koneksi jaringan. Mencakup pencarian DNS dan koneksi transportasi.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat
Milidetik Rata-rata, Min, Maks Tidak
browserTimings
| where notempty(networkDuration)
| extend _sum = networkDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

Waktu respons penerimaan (browserTimings/receiveDuration)

Waktu antara byte pertama dan terakhir, atau sampai pemutusan sambungan.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat
Milidetik Rata-rata, Min, Maks Tidak
browserTimings
| where notempty(receiveDuration)
| extend _sum = receiveDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

Mengirim waktu permintaan (browserTimings/sendDuration)

Waktu antara koneksi jaringan dan menerima byte pertama.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat
Milidetik Rata-rata, Min, Maks Tidak
browserTimings
| where notempty(sendDuration)
| extend _sum = sendDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart

Metrik kegagalan

Metrik dalam Kegagalan menunjukkan masalah dengan permintaan pemrosesan, panggilan dependensi, dan pengecualian yang dilemparkan.

Pengecualian browser (exceptions/browser)

Metrik ini mencerminkan jumlah pengecualian yang dilemparkan dari kode aplikasi Anda yang berjalan di browser. Hanya pengecualian yang dilacak dengan panggilan trackException() API Application Insights yang disertakan di dalam metrik.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat Catatan
Jumlah Jumlah Tidak Versi berbasis log menggunakan agregasi Sum
exceptions
| where notempty(client_Browser)
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Kegagalan panggilan dependensi (dependensi/gagal)

Jumlah panggilan dependensi yang gagal.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat Catatan
Jumlah Jumlah Tidak Versi berbasis log menggunakan agregasi Sum
dependencies
| where success == 'False'
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Pengecualian (exceptions/count)

Setiap kali Anda mencatat pengecualian untuk Application Insights, ada panggilan ke metode trackException() SDK. Metrik Pengecualian memperlihatkan jumlah pengecualian yang dicatat.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat Catatan
Jumlah Jumlah Nama peran cloud, Instans peran awan, Jenis perangkat Versi berbasis log menggunakan agregasi Sum
exceptions
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Permintaan gagal (permintaan/gagal)

Jumlah permintaan server terlacak yang ditandai sebagai gagal. Secara default, Application Insights SDK secara otomatis menandai setiap permintaan server yang mengembalikan kode respons HTTP 5xx atau 4xx sebagai permintaan yang gagal. Anda dapat menyesuaikan logika ini dengan mengubah properti sukses dari item telemetri permintaan di penginisialisasi telemetri kustom.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat Catatan
Jumlah Jumlah Instans peran cloud, Nama peran Cloud, Lalu lintas riil atau sintetis, Permintaan performa, Kode respons Versi berbasis log menggunakan agregasi Sum
requests
| where success == 'False'
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Pengecualian server (exceptions/server)

Metrik ini menunjukkan jumlah pengecualian server.

Satuan ukuran Agregasi yang didukung Dimensi pra-agregat Catatan
Jumlah Jumlah Nama peran cloud, Instans peran Cloud, Jenis perangkat Versi berbasis log menggunakan agregasi Sum
exceptions
| where isempty(client_Browser)
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Penghitung kinerja

Gunakan metrik dalam kategori Penghitung kinerja untuk mengakses penghitung kinerja sistem yang dikumpulkan oleh Application Insights.

Memori yang tersedia (performanceCounters/availableMemory)

performanceCounters
| where ((category == "Memory" and counter == "Available Bytes") or name == "availableMemory")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Laju pengecualian (performanceCounters/exceptionRate)

performanceCounters
| where ((category == ".NET CLR Exceptions" and counter == "# of Exceps Thrown / sec") or name == "exceptionRate")
| extend performanceCounter_value = iif(itemType == 'performanceCounter',value,todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Waktu eksekusi permintaan HTTP (performanceCounters/requestExecutionTime)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Request Execution Time") or name == "requestExecutionTime")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Laju permintaan HTTP (performanceCounters/requestsPerSecond)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests/Sec") or name == "requestsPerSecond")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Permintaan HTTP dalam antrean aplikasi (performanceCounters/requestsInQueue)

performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests In Application Queue") or name == "requestsInQueue")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

CPU Proses (performanceCounters/processCpuPercentage)

Metrik menunjukkan berapa banyak dari total kapasitas prosesor yang dikonsumsi oleh proses yang meng-hosting aplikasi Anda yang dipantau.

Satuan ukuran Agregasi yang didukung Dimensi yang didukung
Persentase Rata-rata, Min, Maks Instans peran cloud
performanceCounters
| where ((category == "Process" and counter == "% Processor Time Normalized") or name == "processCpuPercentage")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Catatan

Rentang metrik adalah antara 0 dan 100 * n, di mana n adalah jumlah inti CPU yang tersedia. Misalnya, nilai metrik 200% dapat mewakili pemanfaatan penuh dari dua inti CPU atau setengah pemanfaatan dari 4 inti CPU dan seterusnya. Proses CPU Dinormalisasi adalah metrik alternatif yang dikumpulkan oleh banyak SDK yang mewakili nilai yang sama tetapi membaginya dengan jumlah inti CPU yang tersedia. Dengan demikian, rentang metrik Proses CPU Yang Dinormalisasi adalah 0 hingga 100.

Laju IO proses (performanceCounters/processIOBytesPerSecond)

Satuan ukuran Agregasi yang didukung Dimensi yang didukung
Byte per detik Rata-rata, Min, Maks Instans peran cloud
performanceCounters
| where ((category == "Process" and counter == "IO Data Bytes/sec") or name == "processIOBytesPerSecond")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Memproses byte privat (performanceCounters/processPrivateBytes)

Jumlah memori yang tidak dibagikan yang dialokasikan proses pemantauan untuk datanya.

Satuan ukuran Agregasi yang didukung Dimensi yang didukung
Byte Rata-rata, Min, Maks Instans peran cloud
performanceCounters
| where ((category == "Process" and counter == "Private Bytes") or name == "processPrivateBytes")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Waktu prosesor (performanceCounters/processorCpuPercentage)

Konsumsi CPU oleh semua proses yang berjalan pada instans server yang dipantau.

Satuan ukuran Agregasi yang didukung Dimensi yang didukung
Persentase Rata-rata, Min, Maks Instans peran cloud

Catatan

Metrik waktu prosesor tidak tersedia untuk aplikasi yang dihosting di Azure App Services. Gunakan metrik CPU Proses untuk melacak penggunaan CPU dari aplikasi web yang dihosting di Azure App Service.

performanceCounters
| where ((category == "Processor" and counter == "% Processor Time") or name == "processorCpuPercentage")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart

Metrik server

Panggilan dependensi (dependencies/count)

Metrik ini terkait dengan jumlah panggilan dependensi.

dependencies
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Durasi dependensi (dependensi/durasi)

Metrik ini mengacu pada durasi panggilan dependensi.

dependencies
| where notempty(duration)
| extend dependency_duration = iif(itemType == 'dependency',duration,todouble(''))
| extend _sum = dependency_duration
| extend _count = itemCount
| extend _sum = _sum*_count
| summarize sum(_sum)/sum(_count) by bin(timestamp, 1m)
| render timechart

Permintaan server (requests/count)

Metrik ini mencerminkan jumlah permintaan server masuk yang diterima oleh aplikasi web Anda.

requests
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart

Waktu respons server (requests/duration)

Metrik ini mencerminkan waktu yang diperlukan server untuk memproses permintaan masuk.

requests
| where notempty(duration)
| extend request_duration = iif(itemType == 'request', duration, todouble(''))
| extend _sum = request_duration
| extend _count = itemCount
| extend _sum = _sum*_count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 1m)
| render timechart

Metrik penggunaan

Waktu muat tampilan halaman (pageViews/durasi)

Metrik ini mengacu pada jumlah waktu yang diperlukan agar peristiwa PageView dimuat.

pageViews
| where notempty(duration)
| extend pageView_duration = iif(itemType == 'pageView', duration, todouble(''))
| extend _sum = pageView_duration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render barchart

Tampilan halaman (pageViews/count)

Hitungan peristiwa PageView yang dicatat dengan API TrackPageView() Application Insights.

pageViews
| summarize sum(itemCount) by bin(timestamp, 1h)
| render barchart

Sesi (sesi/hitungan)

Metrik ini mengacu pada hitungan identitas sesi yang berbeda.

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(session_Id)
| summarize dcount(session_Id) by bin(timestamp, 1h)
| render barchart

Jejak (traces/count)

Jumlah pernyataan jejak yang dicatat dengan panggilan API TrackTrace() Application Insights.

traces
| summarize sum(itemCount) by bin(timestamp, 1h)
| render barchart

Pengguna (pengguna/hitungan)

Jumlah pengguna berbeda yang mengakses aplikasi Anda. Akurasi metrik ini dapat dipengaruhi secara signifikan dengan menggunakan pengambilan sampel dan pemfilteran telemetri.

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_Id)
| summarize dcount(user_Id) by bin(timestamp, 1h)
| render barchart

Pengguna, Terautentikasi (pengguna/terautentikasi)

Jumlah pengguna berbeda yang diautentikasi ke dalam aplikasi Anda.

union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_AuthenticatedId)
| summarize dcount(user_AuthenticatedId) by bin(timestamp, 1h)
| render barchart