Metrik berbasis log dan pra-agregat dalam Application Insights

Catatan

Dokumentasi berikut bergantung pada API klasik Application Insights. Rencana jangka panjang untuk Application Insights adalah mengumpulkan data menggunakan OpenTelemetry. Untuk informasi selengkapnya, lihat Mengaktifkan Azure Monitor OpenTelemetry untuk aplikasi .NET, Node.js, Python, dan Java.

Artikel ini menjelaskan perbedaan antara metrik Application Insights "tradisional" yang didasarkan pada log dan metrik pra-agregat. Kedua jenis metrik tersedia untuk pengguna Application Insights. 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.

Metrik berbasis log

Di masa lalu, model data telemetri pemantauan aplikasi di Application Insights hanya didasarkan pada beberapa jenis peristiwa yang telah ditentukan sebelumnya, seperti permintaan, pengecualian, panggilan dependensi, dan tampilan halaman. Pengembang dapat menggunakan SDK untuk memancarkan peristiwa ini secara manual dengan menulis kode yang secara eksplisit memanggil SDK. Atau mereka dapat mengandalkan pengumpulan peristiwa otomatis dari autoinstrumentasi. Dalam kedua kasus, back end Application Insights menyimpan semua peristiwa yang dikumpulkan sebagai log. Panel Application Insights di portal Azure bertindak sebagai alat analitik dan diagnostik untuk memvisualisasikan data berbasis peristiwa dari log.

Menggunakan log untuk mempertahankan serangkaian peristiwa lengkap dapat membawa nilai analitis dan diagnostik yang hebat. Misalnya, Anda bisa mendapatkan jumlah permintaan yang tepat ke URL tertentu dengan jumlah pengguna berbeda yang melakukan panggilan ini. Atau Anda bisa mendapatkan jejak diagnostik terperinci, termasuk pengecualian dan panggilan dependensi untuk setiap sesi pengguna. Memiliki jenis informasi ini dapat meningkatkan visibilitas ke dalam kesehatan dan penggunaan aplikasi. Ini juga dapat mengurangi waktu yang diperlukan untuk mendiagnosis masalah dengan aplikasi.

Pada saat yang sama, mengumpulkan serangkaian peristiwa lengkap mungkin tidak praktis atau bahkan tidak mungkin untuk aplikasi yang menghasilkan telemetri dalam volume besar. Untuk situasi ketika volume peristiwa terlalu tinggi, Application Insights menerapkan beberapa teknik pengurangan volume telemetri yang mengurangi jumlah peristiwa yang dikumpulkan dan disimpan. Teknik ini termasuk pengambilan sampel dan pemfilteran. Sayangnya, menurunkan jumlah peristiwa yang disimpan juga menurunkan akurasi metrik yang, di belakang layar, harus melakukan agregasi waktu kueri dari peristiwa yang disimpan dalam log.

Catatan

Dalam Application Insights, metrik yang didasarkan pada agregasi kueri-waktu peristiwa dan pengukuran yang disimpan dalam log disebut metrik berbasis log. Metrik ini biasanya memiliki banyak dimensi dari properti peristiwa, yang membuatnya lebih unggul untuk analitik. Akurasi metrik ini dipengaruhi secara negatif oleh pengambilan sampel dan pemfilteran.

Metrik pra-agregat

Selain metrik berbasis log, pada akhir 2018, tim Application Insights mengirimkan pratinjau publik metrik yang disimpan dalam repositori khusus yang dioptimalkan untuk rangkaian waktu. Metrik baru tidak lagi disimpan sebagai acara individual dengan banyak properti. Sebaliknya, mereka disimpan sebagai rangkaian waktu pra-agregat, dan hanya dengan dimensi kunci. Perubahan ini membuat metrik baru lebih unggul pada waktu kueri. Pengambilan data terjadi lebih cepat dan membutuhkan lebih sedikit daya komputasi. Akibatnya, skenario baru diaktifkan, seperti pemberitahuan mendekati real time pada dimensi metrik dan dasbor yang lebih responsif.

Penting

Metrik berbasis log dan pra-agregat berdampingan di Application Insights. Untuk membedakan keduanya, dalam pengalaman pengguna Application Insights, metrik pra-agregat sekarang disebut metrik Standar (pratinjau). Metrik tradisional dari peristiwa diganti namanya menjadi metrik berbasis Log.

SDK yang lebih baru (Application Insights 2.7 SDK atau yang lebih baru untuk metrik pra-agregat .NET) selama pengumpulan. 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 dengan menggunakan GetMetric, yang menghasilkan lebih sedikit penyerapan data dan biaya yang lebih rendah.

Untuk SDK yang tidak menerapkan pra-agregasi (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 pengumpulan peristiwa Application Insights. Meskipun Anda tidak mendapat manfaat dari pengurangan volume data yang dikirimkan melalui kawat, Anda masih dapat menggunakan metrik pra-agregat dan mengalami performa dan dukungan yang lebih baik dari peringatan dimensi mendekati real time dengan SDK yang tidak melakukan metrik pra-agregat selama pengumpulan.

Titik akhir koleksi melakukan pra-agregat peristiwa sebelum pengambilan sampel penyerapan. Untuk alasan ini, pengambilan sampel penyerapan tidak pernah memengaruhi akurasi metrik pra-agregat, terlepas dari versi SDK yang Anda gunakan dengan aplikasi Anda.

Tabel metrik pra-agregat yang didukung SDK

SDK produksi saat ini Metrik standar (pra-agregasi SDK) Metrik kustom (tanpa pra-agregasi SDK) Metrik kustom (dengan pra-agregasi SDK)
.NET Core dan .NET Framework Didukung (V2.13.1+) Didukung melalui TrackMetric Didukung (V2.7.2+) melalui GetMetric
Java Tidak didukung Didukung melalui TrackMetric Tidak didukung
Node.js Didukung (V2.0.0+) Didukung melalui TrackMetric Tidak didukung
Python Tidak didukung Didukung Didukung sebagian melalui OpenCensus.stats

Catatan

Implementasi metrik untuk Python dengan menggunakan OpenCensus.stats berbeda dari GetMetric. Untuk informasi selengkapnya, lihat dokumentasi Python tentang metrik.

Tabel metrik pra-agregat yang didukung tanpa kode

SDK produksi saat ini Metrik standar (pra-agregasi SDK) Metrik kustom (tanpa pra-agregasi SDK) Metrik kustom (dengan pra-agregasi SDK)
ASP.NET Didukung 1 Tidak didukung Tidak didukung
Inti ASP.NET Didukung 2 Tidak didukung Tidak didukung
Java Tidak didukung Tidak didukung Didukung
Node.js Tidak didukung Tidak didukung Tidak didukung
  1. ASP.NET lampiran tanpa kode 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. SDK diperlukan untuk semua dimensi.
  2. ASP.NET tanpa kode Core pada App Service memancarkan metrik standar tanpa dimensi. SDK diperlukan untuk semua dimensi.

Menggunakan pra-agregasi dengan metrik kustom Application Insights

Anda dapat menggunakan pra-agregasi dengan metrik kustom. Dua manfaat utamanya adalah:

  • Kemampuan untuk mengonfigurasi dan memperingatkan dimensi metrik kustom
  • Mengurangi volume data yang dikirim dari SDK ke titik akhir pengumpulan Application Insights

Ada beberapa cara untuk mengirim metrik kustom dari Application Insights SDK. Jika versi SDK Anda menawarkan GetMetric dan TrackValue, metode ini adalah cara yang lebih disukai untuk mengirim metrik kustom. Dalam hal ini, pra-agregasi terjadi di dalam SDK. Pendekatan ini mengurangi volume data yang disimpan di Azure dan juga volume data yang dikirimkan dari SDK ke Application Insights. Jika tidak, gunakan metode trackMetric , yang melakukan pra-agregat peristiwa metrik selama penyerapan data.

Dimensi dan agregasi metrik kustom

Semua metrik yang Anda kirim menggunakan panggilan API OpenTelemetry, trackMetric , atau GetMetric dan TrackValue secara otomatis disimpan di penyimpanan log dan metrik. Metrik ini dapat ditemukan dalam tabel customMetrics di Application Insights dan di Metrics Explorer di bawah Namespace Metrik Kustom yang disebut "azure.applicationinsights". Meskipun versi berbasis log metrik kustom Anda selalu mempertahankan semua dimensi, versi metrik pra-agregat 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.

Screenshot that shows usage and estimated costs.

Kuota

Metrik pra-agregat disimpan sebagai rangkaian waktu di Azure Monitor. Kuota Azure Monitor pada metrik kustom berlaku.

Catatan

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 pra-agregat berbasis log dan standar

Gunakan penjelajah metrik Azure Monitor untuk memplot bagan dari metrik pra-agregat dan berbasis log dan untuk menulis dasbor dengan bagan. Setelah Anda memilih sumber daya Application Insights yang Anda inginkan, gunakan pemilih namespace untuk beralih antara metrik standar (pratinjau) dan berbasis log. Anda juga dapat memilih namespace metrik kustom.

Screenshot that shows Metric namespace.

Model harga untuk metrik Application Insights

Menyerap metrik ke dalam Application Insights, baik berbasis log atau pra-agregat, 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 pra-agregat metrik kustom Anda tanpa dimensi diteruskan ke penyimpanan metrik secara default.

Memilih opsi Aktifkan pemberitahuan pada dimensi metrik kustom untuk menyimpan semua dimensi metrik pra-agregat di penyimpanan metrik dapat menghasilkan biaya tambahan berdasarkan harga metrik kustom.

Langkah berikutnya