Application Insights mendukung tiga jenis metrik yang berbeda: metrik standar (preaggregated), berbasis log, dan kustom. Masing-masing membawa nilai unik dalam memantau kesehatan aplikasi, diagnostik, dan analitik. Pengembang yang melengkapi aplikasi dapat memutuskan jenis metrik mana yang paling cocok untuk skenario tertentu. Keputusan didasarkan pada ukuran aplikasi, volume telemetri yang diharapkan, dan persyaratan bisnis untuk presisi dan peringatan metrik. Artikel ini menjelaskan perbedaan antara semua jenis metrik yang didukung.
Metrik standar
Metrik standar dalam Application Insights adalah metrik yang telah ditentukan sebelumnya yang secara otomatis dikumpulkan dan dipantau oleh layanan. Metrik ini mencakup berbagai indikator performa dan penggunaan, seperti penggunaan CPU, konsumsi memori, tingkat permintaan, dan waktu respons. Metrik standar memberikan gambaran umum komprehensif tentang kesehatan dan performa aplikasi Anda tanpa memerlukan konfigurasi tambahan apa pun. Metrik standar telah dilewati selama pengumpulan dan disimpan sebagai rangkaian waktu dalam repositori khusus hanya dengan dimensi kunci, yang memberi mereka performa yang lebih baik pada waktu kueri. Hal ini menjadikan metrik standar pilihan terbaik untuk pemberitahuan mendekati real time pada dimensi metrik dan dasbor yang lebih responsif.
Metrik berbasis log
Metrik berbasis log dalam Application Insights adalah konsep waktu kueri, yang diwakili sebagai rangkaian waktu di atas data log aplikasi Anda. Log yang mendasarinya tidak ditentukan sebelumnya pada waktu pengumpulan atau penyimpanan dan mempertahankan semua properti dari setiap entri log. Retensi ini memungkinkan untuk menggunakan properti log sebagai dimensi pada metrik berbasis log pada waktu kueri untuk pemfilteran bagan metrik dan pemisahan metrik, memberikan metrik berbasis log nilai analitik dan diagnostik yang unggul. Namun, teknik pengurangan volume telemetri seperti pengambilan sampel dan pemfilteran telemetri, umumnya digunakan dengan aplikasi pemantauan yang menghasilkan telemetri dalam volume besar, berdampak pada kuantitas entri log yang dikumpulkan dan karenanya mengurangi akurasi metrik berbasis log.
Metrik kustom (pratinjau)
Metrik kustom di Application Insights memungkinkan Anda menentukan dan melacak pengukuran tertentu yang unik untuk aplikasi Anda. Metrik ini dapat dibuat dengan melengkapi kode Anda untuk mengirim data telemetri kustom ke Application Insights. Metrik kustom memberikan fleksibilitas untuk memantau aspek apa pun dari aplikasi Anda yang tidak tercakup dalam metrik standar, memungkinkan Anda untuk mendapatkan wawasan yang lebih mendalam tentang perilaku dan performa aplikasi Anda.
Application Insights juga menyediakan fitur yang disebut streaming Metrik Langsung, yang memungkinkan pemantauan aplikasi web Anda hampir real-time dan tidak menyimpan data telemetri apa pun.
Perbandingan metrik
Fitur
Metrik standar
Metrik berbasis log
Metrik kustom
Sumber data
Data rangkaian waktu yang telah dilewati yang dikumpulkan selama runtime.
Berasal dari data log menggunakan kueri Kusto.
Metrik yang ditentukan pengguna yang dikumpulkan melalui Application Insights SDK atau API.
Granularitas
Interval tetap (1 menit).
Tergantung pada granularitas data log itu sendiri.
Granularitas fleksibel berdasarkan metrik yang ditentukan pengguna.
Akurasi
Tinggi, tidak terpengaruh oleh pengambilan sampel log.
Dapat dipengaruhi oleh pengambilan sampel dan pemfilteran.
Akurasi tinggi, terutama saat menggunakan metode yang dilewati sebelumnya seperti GetMetric.
Dibatasi oleh kuota untuk metrik gratis dan biaya untuk dimensi tambahan.
Kasus penggunaan
Pemantauan real time, dasbor performa, dan wawasan cepat.
Diagnostik terperinci, pemecahan masalah, dan analisis mendalam.
Indikator performa yang disesuaikan dan metrik khusus bisnis.
Contoh
Penggunaan CPU, penggunaan memori, durasi permintaan.
Jumlah permintaan, jejak pengecualian, panggilan dependensi.
Metrik khusus aplikasi kustom seperti keterlibatan pengguna, penggunaan fitur.
Preaggregasi metrik
SDK OpenTelemetry dan metrik pra-agregat Application Insights SDK (API Klasik) yang lebih baru selama pengumpulan untuk mengurangi volume data yang dikirim dari SDK ke titik akhir saluran telemetri. Proses ini berlaku untuk metrik standar yang dikirim secara default, sehingga akurasi tidak terpengaruh oleh pengambilan sampel atau pemfilteran. Ini juga berlaku untuk metrik kustom yang dikirim menggunakan API OpenTelemetry atau GetMetric dan TrackValue, yang menghasilkan lebih sedikit penyerapan data dan biaya yang lebih rendah. Jika versi SDK Application Insights Anda mendukung GetMetric dan TrackValue, ini adalah metode yang lebih disukai untuk mengirim metrik kustom.
Untuk SDK yang tidak menerapkan preaggregasi (yaitu, versi SDK Application Insights yang lebih lama atau untuk instrumentasi browser), back end Application Insights masih mengisi metrik baru dengan menggabungkan peristiwa yang diterima oleh titik akhir saluran telemetri Application Insights. Untuk metrik kustom, Anda dapat menggunakan metode trackMetric . Meskipun Anda tidak mendapat manfaat dari pengurangan volume data yang dikirimkan melalui kawat, Anda masih dapat menggunakan metrik yang telah ditentukan sebelumnya dan mengalami performa dan dukungan yang lebih baik dari peringatan dimensi mendekati real time dengan SDK yang tidak melakukan pra-agregasi metrik selama pengumpulan.
Titik akhir saluran telemetri melakukan pra-agregat peristiwa sebelum pengambilan sampel penyerapan. Untuk alasan ini, pengambilan sampel penyerapan tidak pernah memengaruhi akurasi metrik yang diprakarsai, terlepas dari versi SDK yang Anda gunakan dengan aplikasi Anda.
Tabel berikut mencantumkan di mana preaggregasi dipraaggregasi.
Preaggregasi metrik dengan Distro OpenTelemetry Azure Monitor
Dengan autoinstrumentasi, SDK secara otomatis ditambahkan ke kode aplikasi Anda dan tidak dapat disesuaikan. Untuk metrik kustom, instrumentasi manual diperlukan.
2ASP.NET autoinstrumentasi pada komputer virtual/set skala komputer virtual dan lokal memancarkan metrik standar tanpa dimensi. Hal yang sama berlaku untuk Azure App Service, tetapi tingkat koleksi harus diatur ke direkomendasikan. Instrumentasi manual diperlukan untuk semua dimensi.
3 Agen Java yang digunakan dengan autoinstrumentation menangkap metrik yang dipancarkan oleh pustaka populer dan mengirimkannya ke Application Insights sebagai metrik kustom.
Dimensi metrik kustom dan preaggregasi
Semua metrik yang Anda kirim menggunakan panggilan OpenTelemetry, trackMetric, atau GetMetric dan TrackValue API secara otomatis disimpan di penyimpanan metrik dan log. Metrik ini dapat ditemukan dalam tabel customMetrics di Application Insights dan di Metrics Explorer di bawah Namespace Layanan Metrik Kustom yang disebut azure.applicationinsights. Meskipun versi berbasis log metrik kustom Anda selalu mempertahankan semua dimensi, versi metrik yang telah ditentukan sebelumnya disimpan secara default tanpa dimensi. Mempertahankan dimensi metrik kustom adalah fitur Pratinjau yang dapat diaktifkan dari tab Penggunaan dan perkiraan biaya dengan memilih Dengan dimensi di bawah Kirim metrik kustom ke Azure Metric Store.
Kelebihan kuota mungkin memiliki konsekuensi yang tidak diinginkan. Azure Monitor mungkin menjadi tidak dapat diandalkan di langganan atau wilayah Anda. Untuk mempelajari cara menghindari kelebihan kuota, lihat Batasan dan pertimbangan desain.
Mengapa kumpulan dimensi metrik kustom dinonaktifkan secara default?
Pengumpulan dimensi metrik kustom dinonaktifkan secara default karena di masa mendatang, menyimpan metrik kustom dengan dimensi akan ditagih secara terpisah dari Application Insights. Menyimpan metrik kustom nondirmensional tetap gratis (hingga kuota). Anda dapat mempelajari tentang perubahan model harga yang akan datang di halaman harga resmi kami.
Membuat bagan dan menjelajahi metrik
Gunakan penjelajah metrik Azure Monitor untuk memplot bagan dari metrik preaggregated, berbasis log, dan kustom, dan untuk menulis dasbor dengan bagan. Setelah Anda memilih sumber daya Application Insights yang Anda inginkan, gunakan pemilih namespace untuk beralih antar metrik.
Model harga untuk metrik Application Insights
Menyerap metrik ke dalam Application Insights, baik berbasis log atau preaggregasi, menghasilkan biaya berdasarkan ukuran data yang diserap. Untuk informasi selengkapnya, lihat detail harga Log Azure Monitor. Metrik kustom Anda, termasuk semua dimensinya, selalu disimpan di penyimpanan log Application Insights. Selain itu, versi metrik kustom Anda yang telah disebarkan sebelumnya tanpa dimensi diteruskan ke penyimpanan metrik secara default.
Memilih opsi Aktifkan pemberitahuan pada dimensi metrik kustom untuk menyimpan semua dimensi metrik yang telah ditentukan sebelumnya di penyimpanan metrik dapat menghasilkan biaya tambahan berdasarkan harga metrik kustom.
Bagian berikut mencantumkan metrik dengan agregasi dan dimensi yang didukung. Detail tentang metrik berbasis log mencakup pernyataan kueri Kusto yang mendasarinya.
Bagian berikut 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 ke dalam klausul tambahan where timestamp... untuk hanya memilih peristiwa dari rentang waktu yang dipilih. Misalnya, bagan yang memperlihatkan data selama 24 jam terakhir, kueri menyertakan | where timestamp > ago(24 h).
Granularitas waktu yang dipilih dimasukkan ke dalam klausul akhirsummarize ... by bin(timestamp, [time grain]).
Dimensi Filter yang dipilih diterjemahkan ke dalam klausul tambahanwhere.
Dimensi bagan Split yang dipilih diterjemahkan ke dalam properti ringkasan tambahan. Misalnya, jika Anda membagi bagan dengan location, dan memplot menggunakan granularitas waktu 5 menit, klausul dirangkum summarize... by bin(timestamp, 5 m), location.
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.
Penting
Untuk metrik berbasis log berikut, jika beberapa agregasi didukung, agregasi dalam miring digunakan dalam contoh kueri Kusto.
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.
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.
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, Maks, Min
Run location, , Test nameTest result
Uji ketersediaan (availabilityResults/count)
Metrik uji Ketersediaan mencerminkan hitungan pengujian web yang dijalankan oleh Azure Monitor.
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.
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.
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.
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 yang didukung
Jumlah
Jumlah
Cloud role name
Kegagalan panggilan dependensi (dependensi/gagal)
Jumlah panggilan dependensi yang gagal.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Jumlah
Jumlah
Cloud role instance, , Cloud role nameDependency performance, Dependency type, Is traffic synthetic, , Result code,Target of dependency call
Pengecualian (exceptions/count)
Setiap kali Anda mencatat pengecualian ke Application Insights, ada panggilan ke metode trackException() SDK. Metrik Pengecualian memperlihatkan jumlah pengecualian yang dicatat.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Jumlah
Jumlah
Cloud role instance, , Cloud role nameDevice type
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 yang didukung
Jumlah
Jumlah
Cloud role instance, , Cloud role nameIs synthetic traffic, , Request performance,Result code
Pengecualian server (exceptions/server)
Metrik ini menunjukkan jumlah pengecualian server.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Jumlah
Jumlah
Cloud role instance, Cloud role name
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.
Catatan
Saat menggunakan pengambilan sampel, itemCount menunjukkan berapa banyak item telemetri yang diwakili oleh catatan log tunggal. Misalnya, dengan pengambilan sampel 25%, setiap rekaman log yang disimpan mewakili 4 item (1 disimpan + 3 sampel keluar). Kueri berbasis log merangkum semua nilai itemCount untuk memastikan metrik mencerminkan jumlah total peristiwa aktual, bukan hanya jumlah rekaman log yang disimpan.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Jumlah total
Semua bidang telemetri
exceptions
| where client_Type == 'Browser'
| summarize ['exceptions/browser_sum'] = sum(itemCount) by bin(timestamp, 15m)
| render barchart
Kegagalan panggilan dependensi (dependensi/gagal)
Jumlah panggilan dependensi yang gagal.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Jumlah total
Semua bidang telemetri
dependencies
| where success == 'False'
| summarize ['dependencies/failed_sum'] = sum(itemCount) by bin(timestamp, 15m)
| render barchart
Pengecualian (exceptions/count)
Setiap kali Anda mencatat pengecualian ke Application Insights, ada panggilan ke metode trackException() SDK. Metrik Pengecualian memperlihatkan jumlah pengecualian yang dicatat.
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 yang didukung
Hitung
Jumlah total
Semua bidang telemetri
requests
| where success == 'False'
| summarize ['requests/failed_sum'] = sum(itemCount) by bin(timestamp, 15m)
| render barchart
Pengecualian server (exceptions/server)
Metrik ini menunjukkan jumlah pengecualian server.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Jumlah total
Semua bidang telemetri
exceptions
| where client_Type != 'Browser'
| summarize ['exceptions/server_sum'] = sum(itemCount) by bin(timestamp, 15m)
| render barchart
Memori yang tersedia (performanceCounters/availableMemory)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Megabyte / Gigabyte (dependen data)
Rata-rata, Maks, Min
Cloud role instance
Laju pengecualian (performanceCounters/exceptionRate)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Rata-rata, Maks, Min
Cloud role instance
Waktu eksekusi permintaan HTTP (performanceCounters/requestExecutionTime)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Milidetik
Rata-rata, Maks, Min
Cloud role instance
Laju permintaan HTTP (performanceCounters/requestsPerSecond)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Permintaan per detik
Rata-rata, Maks, Min
Cloud role instance
Permintaan HTTP dalam antrean aplikasi (performanceCounters/requestsInQueue)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Rata-rata, Maks, Min
Cloud role instance
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, Maks, Min
Cloud role instance
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)
Jumlah memori yang tidak dibagikan yang dialokasikan proses yang dipantau untuk datanya.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Byte
Rata-rata, Min, Maks
Cloud role instance
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
Cloud role instance
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.
ASP.NET waktu eksekusi permintaan (performanceCounters/requestExecutionTime)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Milidetik
Rata-rata, Min, Maks
Semua bidang telemetri
performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Request Execution Time") or name == "requestExecutionTime")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/requestExecutionTime_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render barchart
tingkat permintaan ASP.NET (performanceCounters/requestsPerSecond)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Rata-rata, Min, Maks
Semua bidang telemetri
performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests/Sec") or name == "requestsPerSecond")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/requestsPerSecond_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render barchart
ASP.NET permintaan dalam antrean aplikasi (performanceCounters/requestsInQueue)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Rata-rata, Min, Maks
Semua bidang telemetri
performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests In Application Queue") or name == "requestsInQueue")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/requestsInQueue_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render barchart
Memori yang tersedia (performanceCounters/availableMemory)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Megabyte / Gigabyte (dependen data)
Rata-rata, Min, Maks
Semua bidang telemetri
performanceCounters
| where ((category == "Memory" and counter == "Available Bytes") or name == "memoryAvailableBytes")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/memoryAvailableBytes_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render timechart
Laju pengecualian (performanceCounters/exceptionRate)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Rata-rata, Min, Maks
Semua bidang telemetri
performanceCounters
| where ((category == ".NET CLR Exceptions" and counter == "# of Exceps Thrown / sec") or name == "exceptionsPerSecond")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/exceptionsPerSecond_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render timechart
Jumlah Total GC (performanceCounters/GC Total Count)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Rata-rata, Min, Maks, Unik
Semua bidang telemetri
performanceCounters
| where name == "GC Total Count"
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/GC Total Count_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render timechart
Total Waktu GC (performanceCounters/GC Total Time)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Rata-rata, Min, Maks, Unik
Semua bidang telemetri
performanceCounters
| where name == "GC Total Time"
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/GC Total Time_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render timechart
Memori Timbunan yang Digunakan (MB) (performanceCounters/Heap Memory Used (MB))
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Megabyte / Gigabyte (dependen data)
Rata-rata, Min, Maks, Unik
Semua bidang telemetri
performanceCounters
| where name == "Heap Memory Used (MB)"
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/Heap Memory Used (MB)_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render timechart
Waktu eksekusi permintaan HTTP (performanceCounters/requestExecutionTime)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Milidetik
Rata-rata, Min, Maks
Semua bidang telemetri
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)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Permintaan per detik
Rata-rata, Min, Maks
Semua bidang telemetri
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)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Rata-rata, Min, Maks
Semua bidang telemetri
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
Semua bidang telemetri
performanceCounters
| where ((category == "Process" and counter == "% Processor Time Normalized") or name == "processCpuPercentage")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/processCpuPercentage_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| 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.
Proses CPU (semua inti) (performanceCounters/processCpuPercentageTotal)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Persentase
Rata-rata, Min, Maks
Semua bidang telemetri
performanceCounters
| where ((category == "Process" and counter == "% Processor Time") or name == "processCpuPercentageTotal")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/processCpuPercentageTotal_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render timechart
Laju IO proses (performanceCounters/processIOBytesPerSecond)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Byte per detik
Rata-rata, Min, Maks
Semua bidang telemetri
performanceCounters
| where ((category == "Process" and counter == "IO Data Bytes/sec") or name == "processIOBytesPerSecond")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/processIOBytesPerSecond_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render timechart
Jumlah memori yang tidak dibagikan yang dialokasikan proses yang dipantau untuk datanya.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Byte
Rata-rata, Min, Maks
Semua bidang telemetri
performanceCounters
| where ((category == "Process" and counter == "Private Bytes") or name == "processPrivateBytes")
| extend performanceCounter_value = iif(itemType == 'performanceCounter', value, todouble(''))
| summarize ['performanceCounters/processPrivateBytes_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| 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
Semua bidang telemetri
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 ['performanceCounters/processorCpuPercentage_avg'] = sum(performanceCounter_value) / count() by bin(timestamp, 15m)
| render timechart
Utas Kebuntuan Yang Dicurigai (performanceCounters/Dugaan Utas Yang Dibuntuti)
Metrik ini terkait dengan jumlah panggilan dependensi.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Jumlah
Jumlah
Cloud role instance, , Dependency performanceCloud role name, Dependency type, Is traffic synthetic, Result code, , Successful call,Target of a dependency call
Durasi dependensi (dependensi/durasi)
Metrik ini mengacu pada durasi panggilan dependensi.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Milidetik
Rata-rata, Maks, Min
Cloud role instance, , Dependency performanceCloud role name, Dependency type, Is traffic synthetic, Result code, , Successful call,Target of a dependency call
Tingkat permintaan server (permintaan/tingkat)
Metrik ini mencerminkan jumlah permintaan server masuk yang diterima oleh aplikasi web Anda.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung per detik
Avg
Cloud role instance, , Cloud role name, , Request performanceResult code, Is traffic syntheticSuccessful request
Permintaan server (requests/count)
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Jumlah
Jumlah
Cloud role instance, , Cloud role name, , Request performanceResult code, Is traffic syntheticSuccessful request
Waktu respons server (requests/duration)
Metrik ini mencerminkan waktu yang diperlukan server untuk memproses permintaan masuk.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Milidetik
Rata-rata, Maks, Min
Cloud role instance, , Cloud role name, , Request performanceResult code, Is traffic syntheticSuccessful request
Panggilan dependensi (dependencies/count)
Metrik ini terkait dengan jumlah panggilan dependensi.
Jumlah pengguna berbeda yang mengakses aplikasi Anda. Akurasi metrik ini dapat dipengaruhi secara signifikan dengan menggunakan pengambilan sampel dan pemfilteran telemetri.
Satuan ukuran
Agregasi yang didukung
Dimensi yang didukung
Hitung
Unik
Semua bidang telemetri
union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_Id)
| summarize ['users/count_unique'] = dcount(user_Id) by bin(timestamp, 15m)
| render barchart
Metrik kustom disimpan di penyimpanan metrik dan log, sehingga memungkinkan untuk mengambilnya menggunakan kueri Kusto.
Misalnya, jika Anda melengkapi aplikasi anda dengan _telemetryClient.GetMetric("Sales Amount").TrackValue(saleAmount); menggunakan GetMetric dan TrackValue untuk melacak metrik kustom Jumlah Penjualan, Anda dapat menggunakan kueri Kusto berikut untuk setiap agregasi yang tersedia.
Rata-rata (rata-rata)
customMetrics
| where name == "Sales Amount"
| extend
customMetric_valueSum = iif(itemType == 'customMetric', valueSum, todouble('')),
customMetric_valueCount = iif(itemType == 'customMetric', valueCount, toint(''))
| summarize ['customMetrics/Sales Amount_avg'] = sum(customMetric_valueSum) / sum(customMetric_valueCount) by bin(timestamp, 15m)
| order by timestamp desc
| render timechart
Minimum (min)
customMetrics
| where name == "Sales Amount"
| extend customMetric_valueMin = iif(itemType == 'customMetric', valueMin, todouble(''))
| summarize ['customMetrics/Sales Amount_min'] = min(customMetric_valueMin) by bin(timestamp, 15m)
| render timechart
Maksimum (maks)
customMetrics
| where name == "Sales Amount"
| extend customMetric_valueMax = iif(itemType == 'customMetric', valueMax, todouble(''))
| summarize ['customMetrics/Sales Amount_max'] = max(customMetric_valueMax) by bin(timestamp, 15m)
| render timechart
Jumlah (jumlah)
customMetrics
| where name == "Sales Amount"
| extend customMetric_valueSum = iif(itemType == 'customMetric', valueSum, todouble(''))
| summarize ['customMetrics/Sales Amount_sum'] = sum(customMetric_valueSum) by bin(timestamp, 15m)
| render barchart
Hitung (hitungan)
customMetrics
| where name == "Sales Amount"
| extend customMetric_valueCount = iif(itemType == 'customMetric', valueCount, toint(''))
| summarize ['customMetrics/Sales Amount_count'] = sum(customMetric_valueCount) by bin(timestamp, 15m)
| render barchart
Unik (unik)
customMetrics
| where name == "Sales Amount"
| extend customMetric_value = iif(itemType == 'customMetric', value, todouble(''))
| summarize ['customMetrics/Sales Amount_unique'] = dcount(customMetric_value) by bin(timestamp, 15m)
| render barchart
Mengakses metrik berbasis log secara langsung dengan REST API Application Insights
REST API Application Insights memungkinkan pengambilan terprogram metrik berbasis log. Ini juga menampilkan parameter ai.include-query-payload opsional yang ketika ditambahkan ke string kueri, meminta API untuk mengembalikan tidak hanya data rangkaian waktu, tetapi juga pernyataan Bahasa Kueri Kusto (KQL) yang digunakan untuk mengambilnya. Parameter ini dapat sangat bermanfaat bagi pengguna yang bertujuan untuk memahami koneksi antara peristiwa mentah di Log Analytics dan metrik berbasis log yang dihasilkan.
Untuk mengakses data Anda secara langsung, teruskan parameter ai.include-query-payload ke API Application Insights dalam kueri menggunakan KQL.
Catatan
Untuk mengambil kueri log yang mendasar, DEMO_APP dan DEMO_KEYtidak perlu diganti. Jika Anda hanya ingin mengambil pernyataan KQL dan bukan data rangkaian waktu aplikasi Anda sendiri, Anda dapat menyalin dan menempelkannya langsung ke bilah pencarian browser Anda.
Berikut ini adalah contoh pernyataan KQL pengembalian untuk metrik "Pengguna Terautentikasi." (Dalam contoh ini, "users/authenticated" adalah ID metrik.)
output
{
"value": {
"start": "2024-06-21T09:14:25.450Z",
"end": "2024-06-21T21:14:25.450Z",
"users/authenticated": {
"unique": 0
}
},
"@ai.query": "union (traces | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (requests | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (pageViews | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (dependencies | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (customEvents | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (availabilityResults | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (exceptions | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (customMetrics | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)), (browserTimings | where timestamp >= datetime(2024-06-21T09:14:25.450Z) and timestamp < datetime(2024-06-21T21:14:25.450Z)) | where notempty(user_AuthenticatedId) | summarize ['users/authenticated_unique'] = dcount(user_AuthenticatedId)"
}