Bagikan melalui


Metrik berbasis log dan preaggregasi di 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 dan Peta Strategi OpenTelemetry kami. Panduan migrasi tersedia untuk .NET, Node.js, dan Python.

Artikel ini menjelaskan perbedaan antara metrik Application Insights "tradisional" yang didasarkan pada log dan metrik yang telah disebarkan sebelumnya. 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 yang dilewati sebelumnya

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, rangkaian waktu tersebut disimpan sebagai rangkaian waktu yang telah ditentukan sebelumnya, 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 preaggregasi berdampingan di Application Insights. Untuk membedakan keduanya, dalam pengalaman pengguna Application Insights, metrik yang telah ditentukan sebelumnya sekarang disebut metrik standar. Metrik tradisional dari peristiwa diganti namanya menjadi metrik berbasis log.

SDK yang lebih baru (Application Insights 2.7 SDK atau yang lebih baru untuk .NET) melakukan pra-agregat metrik 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 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 pengumpulan peristiwa Application Insights. 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 koleksi 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 metrik preaggregasi yang didukung SDK

SDK produksi saat ini Metrik standar (preaggregasi SDK) Metrik kustom (tanpa preaggregasi SDK) Metrik kustom (dengan preaggregasi 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 preaggregasi yang didukung tanpa kode

SDK produksi saat ini Metrik standar (preaggregasi SDK) Metrik kustom (tanpa preaggregasi SDK) Metrik kustom (dengan preaggregasi 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 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. SDK diperlukan untuk semua dimensi.
  2. ASP.NET Inti autoinstrumentasi pada App Service memancarkan metrik standar tanpa dimensi. SDK diperlukan untuk semua dimensi.

Menggunakan preaggregasi dengan metrik kustom Application Insights

Anda dapat menggunakan preaggregasi dengan metrik kustom. Dua manfaat utamanya adalah:

  • 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, preaggregasi 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 metrik kustom dan preaggregasi

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 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.

Cuplikan layar yang memperlihatkan penggunaan dan perkiraan biaya.

Kuota

Metrik yang dilewati 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 berbasis log dan preaggregasi standar

Gunakan penjelajah metrik Azure Monitor untuk memplot bagan dari metrik yang telah ditentukan sebelumnya 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 dan berbasis log. Anda juga dapat memilih namespace metrik kustom.

Cuplikan layar yang memperlihatkan namespace 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.

Langkah berikutnya