Live Metrics: Memantau & Mendiagnosis dengan latensi 1 detik

Pantau aplikasi web langsung dalam produksi Anda dengan Live Metrics (juga dikenal sebagai QuickPulse) dari Application Insights. Pilih dan filter metrik dan penghitung kinerja untuk dilihat secara real time, tanpa gangguan pada layanan Anda. Periksa jejak tumpukan dari sampel permintaan dan pengecualian yang gagal. Bersama dengan Profiler dan Snapshot Debugger, Live Metrics menyediakan alat diagnostik yang canggih dan non-invasif untuk situs web langsung Anda.

Catatan

Live Metrics hanya mendukung TLS 1.2. Untuk informasi selengkapnya, lihat Pemecahan masalah.

Dengan Live Metrics, Anda dapat:

  • Validasi perbaikan saat dirilis, dengan melihat jumlah performa dan kegagalan.
  • Lihat efek beban pengujian, dan diagnosis masalah secara langsung.
  • Fokus pada sesi pengujian tertentu atau filter masalah umum, dengan memilih dan memfilter metrik yang ingin Anda lihat.
  • Dapatkan jejak pengecualian seperti yang terjadi.
  • Bereksperimen dengan filter untuk menemukan KPI yang paling relevan.
  • Pantau setiap penghitung kinerja Windows secara langsung.
  • Identifikasi server yang mengalami masalah dengan mudah, dan filter semua KPI/umpan langsung ke server tersebut.

Live Metrics tab

Metrik Langsung saat ini didukung untuk aplikasi ASP.NET, ASP.NET Core, Azure Functions, Java, dan Node.js.

Catatan

Jumlah instans server terpantau yang ditampilkan oleh Live Metrics mungkin lebih rendah dari jumlah aktual instans yang dialokasikan untuk aplikasi tersebut. Ini karena banyak server web modern akan membatalkan pemuatan aplikasi yang tidak menerima permintaan selama periode waktu tertentu untuk menghemat sumber daya. Karena Live Metrics hanya menghitung server yang sedang menjalankan aplikasi, server yang telah membatalkan pemuatan proses tidak akan disertakan dalam total tersebut.

Mulai

  1. Ikuti panduan khusus bahasa untuk mengaktifkan Metrik Langsung.

  2. Di portal Azure, buka sumber daya Application Insights untuk aplikasi Anda, lalu buka Live Stream.

  3. Amankan saluran kontrol jika Anda mungkin menggunakan data sensitif seperti nama pelanggan di filter Anda.

Penting

Memantau aplikasi LTS ASP.NET Core memerlukan Application Insights versi 2.8.0 atau yang lebih baru. Untuk mengaktifkan Application Insights, pastikan keduanya diaktifkan di Portal Azure dan paket Application Insights NuGet disertakan. Tanpa paket NuGet, beberapa telemetri dikirim ke Application Insights tetapi telemetri itu tidak akan ditampilkan di Live Metrics.

Catatan

Pada tanggal 31 Maret 2025, dukungan untuk penyerapan kunci instrumentasi akan berakhir. Penyerapan kunci instrumentasi akan berjalan terus, namun kami tidak akan lagi menyediakan pembaruan atau dukungan terhadap fitur tersebut. Transisi ke string koneksi untuk memanfaatkan kemampuan baru.

Aktifkan Live Metrics menggunakan kode untuk aplikasi .NET apa pun

Catatan

Live Metrics diaktifkan secara default saat onboarding menggunakan instruksi yang direkomendasikan untuk Aplikasi .NET.

Cara untuk menyiapkan Live Metrics secara manual:

  1. Pasang paket NuGet Microsoft.ApplicationInsights.PerfCounterCollector
  2. Contoh kode aplikasi konsol berikut ini menampilkan pengaturan Metrik Langsung.
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using System;
using System.Threading.Tasks;

namespace LiveMetricsDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a TelemetryConfiguration instance.
            TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
            config.InstrumentationKey = "INSTRUMENTATION-KEY-HERE";
            QuickPulseTelemetryProcessor quickPulseProcessor = null;
            config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
                .Use((next) =>
                {
                    quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
                    return quickPulseProcessor;
                })
                .Build();

            var quickPulseModule = new QuickPulseTelemetryModule();

            // Secure the control channel.
            // This is optional, but recommended.
            quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
            quickPulseModule.Initialize(config);
            quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);

            // Create a TelemetryClient instance. It is important
            // to use the same TelemetryConfiguration here as the one
            // used to setup Live Metrics.
            TelemetryClient client = new TelemetryClient(config);

            // This sample runs indefinitely. Replace with actual application logic.
            while (true)
            {
                // Send dependency and request telemetry.
                // These will be shown in Live Metrics.
                // CPU/Memory Performance counter is also shown
                // automatically without any additional steps.
                client.TrackDependency("My dependency", "target", "http://sample",
                    DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
                client.TrackRequest("My Request", DateTimeOffset.Now,
                    TimeSpan.FromMilliseconds(230), "200", true);
                Task.Delay(1000).Wait();
            }
        }
    }
}

Sementara sampel di atas adalah untuk aplikasi konsol, kode yang sama dapat digunakan dalam semua aplikasi .NET. Jika TelemetryModules lain diaktifkan yang secara otomatis mengumpulkan telemetri, penting untuk memastikan konfigurasi yang sama digunakan untuk menginisialisasi modul tersebut, juga digunakan untuk modul Metrik Langsung.

Bagaimana Live Metrics berbeda dari Penjelajah Metrik dan Analitik?

Streaming Langsung Penjelajah Metrik dan Analitik
Latensi Data ditampilkan dalam satu detik Agregat selama beberapa menit
Tidak ada retensi Data dipertahankan selama berada di bagan, lalu dibuang Data disimpan selama 90 hari
Sesuai permintaan Data hanya distreaming saat panel Metrik Langsung terbuka Data dikirim setiap kali SDK diinstal dan diaktifkan
Gratis Tidak ada biaya untuk data Streaming Langsung Tunduk pada harga
Pengambilan sampel Semua metrik dan penghitung yang dipilih ditransmisikan. Pelacakan kegagalan dan tumpukan diambil sampelnya. Kejadian dapat diambil sampelnya
Saluran kontrol Sinyal kontrol filter dikirim ke SDK. Sebaiknya Anda mengamankan saluran ini. Komunikasi adalah salah satu cara ke portal

Memilih dan memfilter metrik Anda

(Tersedia dengan ASP.NET, ASP.NET Core, dan Azure Functions (v2).)

Anda dapat memantau langsung KPI kustom dengan menerapkan filter arbitrer pada telemetri Application Insights dari portal. Klik kontrol filter yang ditampilkan saat Anda mengarahkan mouse ke atas salah satu bagan. Bagan berikut memplot KPI jumlah Permintaan khusus dengan filter pada atribut URL dan Durasi. Validasi filter Anda dengan bagian Pratinjau Stream yang menampilkan umpan langsung telemetri yang cocok dengan kriteria yang telah ditentukan kapan saja.

Filter request rate

Anda dapat memantau nilai yang berbeda dari Hitungan. Opsi bergantung pada jenis aliran, yang dapat berupa telemetri Application Insights: permintaan, dependensi, pengecualian, pelacakan, kejadian, atau metrik. Ini bisa menjadi pengukuran kustom Anda sendiri:

Query builder on request rate with custom metric

Selain telemetri Application Insights, Anda juga dapat memantau penghitung kinerja Windows dengan memilihnya dari opsi streaming, dan memberikan nama penghitung kinerja.

Live Metrics dikumpulkan pada dua titik: secara lokal di setiap server, lalu di semua server. Anda dapat mengubah default pada salah satu dengan memilih opsi lain di masing-masing menu tarik turun.

Contoh Telemetri: Kejadian Diagnostik Langsung Kustom

Secara default, umpan langsung kejadian menunjukkan sampel permintaan yang gagal dan panggilan dependensi, pengecualian, kejadian, dan jejak. Pilih ikon filter untuk melihat kriteria yang diterapkan kapan saja.

Filter button

Seperti metrik, Anda dapat menentukan kriteria arbitrer ke salah satu jenis telemetri Application Insights. Dalam contoh ini, kita memilih kegagalan permintaan tertentu, dan peristiwa.

Query Builder

Catatan

Saat ini, untuk Kriteria berbasis pesan pengecualian, gunakan pesan pengecualian terluar. Dalam contoh sebelumnya, untuk memfilter pengecualian jinak dengan pesan pengecualian dalam (mengikuti pembatas "<--") "Klien terputus", gunakan pesan yang tidak berisi kriteria "Konten permintaan pembacaan kesalahan".

Lihat detail item di umpan langsung dengan mengkliknya. Anda dapat menjeda umpan dengan mengklik Jeda atau hanya menggulir ke bawah, atau mengklik item. Umpan langsung akan dilanjutkan setelah Anda menggulir kembali ke bagian atas, atau dengan mengklik penghitung item yang dikumpulkan saat dijeda.

Screenshot shows the Sample telemetry window with an exception selected and the exception details displayed at the bottom of the window.

Memfilter menurut instans server

Jika Anda ingin memantau contoh peran server tertentu, Anda dapat memfilter berdasarkan server. Untuk memfilter, pilih nama server pada Server.

Sampled live failures

Mengamankan saluran kontrol

Filter kustom Live Metrics memungkinkan Anda untuk mengontrol telemetri aplikasi mana yang ditayangkan ke tampilan Metrik Langsung di portal Azure. Kriteria filter dikirim ke aplikasi yang dilengkapi dengan SDK Application Insights. Filter tersebut berpotensi berisi informasi sensitif seperti IDPelanggan. Untuk menjaga agar nilai ini tetap aman dan mencegah potensi pengungkapan ke aplikasi yang tidak sah, Anda memiliki dua opsi:

  • Direkomendasikan: Amankan saluran Live Metrics menggunakan autentikasi Azure AD
  • Lama (tidak lagi direkomendasikan): Siapkan saluran terautentikasi dengan mengonfigurasi kunci API rahasia seperti yang dijelaskan di bawah ini

Anda dapat mencoba filter kustom tanpa harus menyiapkan saluran yang diautentikasi. Cukup klik salah satu ikon filter dan otorisasi server yang tersambung. Perhatikan bahwa jika memilih opsi ini, Anda harus mengotorisasi server yang terhubung setiap sesi baru atau ketika server baru online.

Peringatan

Kami sangat mencegah penggunaan saluran yang tidak aman dan akan menonaktifkan opsi ini 6 bulan setelah Anda mulai menggunakannya. Dialog "Otorisasi server yang terhubung" menampilkan tanggal (disorot di bawah) setelah opsi ini akan dinonaktifkan.

Screenshot displaying the 'authorize connected servers' dialog.

Opsi lama: Membuat kunci API

API key > Create API keyCreate API Key tab. Select

Tambahkan kunci API ke Konfigurasi

ASP.NET

Dalam file applicationinsights.config, tambahkan AuthenticationApiKey ke QuickPulseTelemetryModule:

<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector">
      <AuthenticationApiKey>YOUR-API-KEY-HERE</AuthenticationApiKey>
</Add>

Inti ASP.NET

Untuk aplikasi ASP.NET Core, ikuti petunjuk di bawah ini.

Ubah ConfigureServices file Startup.cs Anda sebagai berikut:

Tambahkan namespace layanan berikut.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Lalu ubah metode ConfigureServices seperti di bawah ini.

public void ConfigureServices(IServiceCollection services)
{
    // existing code which include services.AddApplicationInsightsTelemetry() to enable Application Insights.
    services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");
}

Informasi lebih lanjut tentang mengonfigurasi ASP.NET Core dapat ditemukan dalam panduan kami tentang mengonfigurasi modul telemetri di ASP.NET Core.

WorkerService

Untuk aplikasi WorkerService, ikuti petunjuk di bawah ini.

Tambahkan namespace layanan berikut.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Selanjutnya, tambahkan baris berikut sebelum panggilan services.AddApplicationInsightsTelemetryWorkerService.

    services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

Informasi lebih lanjut tentang mengonfigurasi aplikasi WorkerService dapat ditemukan dalam panduan kami tentang mengonfigurasi modul telemetri di WorkerServices.

Azure Function Apps

Untuk Azure Function Apps (v2), mengamankan saluran dengan kunci API dapat dicapai dengan variabel lingkungan.

Buat kunci API dari dalam sumber daya Application Insights Anda, dan buka Konfigurasi > Pengaturan untuk Function App Anda. Pilih Pengaturan aplikasi baru dan masukkan nama APPINSIGHTS_QUICKPULSEAUTHAPIKEY dan nilai yang sesuai dengan kunci API Anda.

Tabel fitur yang didukung

Bahasa Metrik Dasar Metrik performa Pemfilteran kustom Telemetri sampel CPU dibagi menurut proses
.NET Framework Didukung (LTS) Didukung (LTS) Didukung (LTS) Didukung (LTS) Didukung (LTS)
.NET Core (target=.NET Framework) Didukung (LTS) Didukung (LTS) Didukung (LTS) Didukung (LTS) Didukung (LTS)
.NET Core (target=.NET Core) Didukung (LTS) Didukung* Didukung (LTS) Didukung (LTS) Tidak Didukung
Azure Functions v2 Didukung Didukung Didukung Didukung Tidak Didukung
Java Didukung (V2.0.0+) Didukung (V2.0.0+) Tidak Didukung Didukung (V3.2.0+) Tidak Didukung
Node.js Didukung (V1.3.0+) Didukung (V1.3.0+) Tidak Didukung Didukung (V1.3.0+) Tidak Didukung

Metrik dasar mencakup tingkat permintaan, dependensi, dan pengecualian. Metrik performa (penghitung kinerja) termasuk memori dan CPU. Contoh telemetri menunjukkan aliran informasi terperinci untuk permintaan dan dependensi, pengecualian, kejadian, dan jejak yang gagal.

*Dukungan PerfCounters sedikit berbeda di seluruh versi .NET Core yang tidak menargetkan .NET Framework:

  • Metrik PerfCounters didukung saat berjalan di Azure App Service untuk Windows. (AspNetCore SDK Versi 2.4.1 atau lebih tinggi)
  • PerfCounters didukung saat aplikasi berjalan di komputer Windows APA PUN (mesin virtual atau Layanan Cloud atau lokal dll.) (AspNetCore SDK Versi 2.7.1 atau lebih tinggi), tetapi untuk aplikasi yang menargetkan .NET Core LTS atau versi lebih tinggi.
  • PerfCounters didukung ketika aplikasi berjalan DI MANA SAJA (Linux, Windows, layanan aplikasi untuk Linux, kontainer, dll.) dalam versi terbaru, tetapi hanya untuk aplikasi yang menargetkan LTS .NET Core atau versi lebih tinggi.

Pemecahan Masalah

Live Metrics menggunakan alamat IP yang berbeda dari telemetri Application Insights lainnya. Pastikan alamat IP tersebut terbuka di firewall Anda. Periksa juga port keluar untuk Live Metrics yang terbuka di firewall server Anda.

Seperti yang dijelaskan dalam pengumuman migrasi Azure TLS 1.2, Live Metrics sekarang hanya mendukung TLS 1.2. Jika Anda menggunakan versi TLS yang lebih lama, Live Metrics tidak akan menampilkan data apa pun. Untuk aplikasi berbasis .NET Framework 4.5.1, lihat Cara mengaktifkan Keamanan Lapisan Transportasi (TLS) 1.2 pada klien - Configuration Manager untuk mendukung versi TLS yang lebih baru.

Peringatan

Saat ini, saluran yang diautentikasi hanya mendukung instrumentasi SDK manual. Saluran yang terautentikasi tidak dapat dikonfigurasi dengan instrumentasi otomatis (dulu dikenal sebagai "lampirkan tanpa kode").

Konfigurasi tidak ada untuk .NET

  1. Pastikan Anda menggunakan versi terbaru paket NuGet Microsoft.ApplicationInsights.PerfCounterCollector
  2. Mengedit file ApplicationInsights.config
    • Verifikasi bahwa string koneksi menunjuk ke sumber daya Application Insights yang Anda gunakan
    • Temukan opsi konfigurasi QuickPulseTelemetryModule; jika tidak ada, tambahkan
    • Temukan opsi konfigurasi QuickPulseTelemetryProcessor; jika tidak ada, tambahkan
<TelemetryModules>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
</TelemetryModules>

<TelemetryProcessors>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.
QuickPulse.QuickPulseTelemetryProcessor, Microsoft.AI.PerfCounterCollector"/>
<TelemetryProcessors>
  1. Mulai ulang aplikasi

Langkah berikutnya