Bagikan melalui


Deteksi Pintar - Anomali Performa

Catatan

Anda dapat memigrasikan sumber daya Insight Aplikasi Anda ke deteksi cerdas berbasis peringatan (pratinjau). Migrasi membuat aturan peringatan untuk berbagai modul deteksi cerdas. Setelah dibuat, Anda dapat mengelola dan mengonfigurasi aturan ini seperti aturan peringatan Azure Monitor lainnya. Anda juga dapat mengonfigurasi grup tindakan untuk aturan ini, sehingga memungkinkan beberapa metode pengambilan tindakan atau memicu pemberitahuan tentang deteksi baru.

Untuk informasi lebih lanjut tentang proses migrasi, lihat Migrasi Pemberitahuan Deteksi Cerdas.

Application Insights secara otomatis menganalisis kinerja aplikasi web Anda, dan dapat memperingatkan Anda tentang potensi masalah.

Fitur ini tidak memerlukan penyiapan khusus, selain mengonfigurasi aplikasi Anda untuk Application Insights untuk bahasa yang didukung. Hal ini aktif saat aplikasi Anda menghasilkan cukup telemetri.

Kapan saya akan mendapatkan pemberitahuan deteksi pintar?

Application Insights telah mendeteksi bahwa performa aplikasi Anda telah terdegradasi dengan salah satu cara berikut:

  • Degradasi waktu respons - Aplikasi Anda telah mulai merespons permintaan lebih lambat dari sebelumnya. Perubahan mungkin cepat, misalnya karena ada regresi dalam penyebaran terbaru Anda. Atau mungkin bertahap, mungkin disebabkan oleh kebocoran memori.
  • Degradasi durasi dependensi - Aplikasi Anda melakukan panggilan ke REST API, database, atau dependensi lainnya. Dependensi tersebut merespons lebih lambat dari sebelumnya.
  • Pola performa lambat - Aplikasi Anda tampaknya memiliki masalah performa yang hanya memengaruhi beberapa permintaan. Misalnya, halaman dimuat lebih lambat pada satu jenis browser daripada yang lain; atau permintaan dilayani lebih lambat dari satu server tertentu. Saat ini, algoritma kami melihat waktu pemuatan halaman, waktu respons permintaan, dan waktu respons dependensi.

Untuk menetapkan garis besar kinerja normal, deteksi cerdas memerlukan setidaknya delapan hari volume telemetri yang memadai. Setelah aplikasi Anda berjalan selama periode tersebut, anomali yang signifikan akan menghasilkan pemberitahuan.

Apakah aplikasi saya pasti memiliki masalah?

Tidak, pemberitahuan tidak berarti bahwa aplikasi Anda pasti bermasalah. Ini hanyalah saran tentang sesuatu yang mungkin ingin Anda lihat lebih dekat.

Bagaimana saya memperbaikinya?

Pemberitahuan tersebut mencakup informasi diagnostik. Berikut contohnya:

Berikut adalah contoh deteksi Degradasi Waktu Respons Server

  1. Triase. Pemberitahuan menunjukkan berapa banyak pengguna atau berapa banyak operasi yang terpengaruh. Informasi ini dapat membantu Anda menetapkan prioritas masalah.

  2. Cakupan. Apakah masalah mempengaruhi semua lalu lintas, atau hanya beberapa halaman? Apakah terbatas pada browser atau lokasi tertentu? Informasi ini dapat diperoleh dari pemberitahuan.

  3. Diagnosis. Sering kali, informasi diagnostik dalam pemberitahuan akan menyarankan sifat masalah. Misalnya, jika waktu respons melambat saat tingkat permintaan tinggi, hal ini mungkin menunjukkan bahwa server atau dependensi Anda berada di luar kapasitasnya.

    Jika tidak, buka panel Performa di Application Insights. Anda akan menemukan data Profiler di sana. Jika pengecualian dikembalikan, Anda juga dapat mencoba snapshot debugger.

Mengonfigurasi Pemberitahuan Email

Pemberitahuan deteksi pintar diaktifkan secara default. Mereka dikirim ke pengguna yang memiliki akses Pembaca Pemantauan dan Kontributor Pemantauan ke langganan tempat sumber daya Application Insights berada. Untuk mengubah pemberitahuan default, klik Konfigurasikan di pemberitahuan email, atau buka Pengaturan deteksi pintar di Application Insights.

Pengaturan Deteksi Pintar

  • Anda dapat menonaktifkan pemberitahuan default, dan menggantinya dengan daftar email tertentu.

Email tentang deteksi pintar anomali kerja dibatasi hingga satu email per hari per sumber daya Application Insights. Email akan dikirim hanya jika setidaknya ada satu masalah baru yang terdeteksi pada hari itu. Anda tidak akan mendapatkan pengulangan pesan apa pun.

Tanya jawab umum

  • Jadi, staf Microsoft melihat data saya?

    • Tidak. Layanan ini sepenuhnya otomatis. Hanya Anda yang mendapatkan pemberitahuan. Data Anda bersifat privat.
  • Apakah Anda menganalisis semua data yang dikumpulkan oleh Application Insights?

    • Saat ini, kami menganalisis waktu respons permintaan, waktu respons dependensi, dan waktu muat halaman. Analisis metrik lainnya ada di backlog kami untuk masa mendatang.
  • Jenis aplikasi apa yang berfungsi untuk deteksi ini?

    • Degradasi ini terdeteksi dalam aplikasi apa pun yang menghasilkan telemetri yang sesuai. Jika Anda menginstal Application Insights di aplikasi web, maka permintaan dan dependensi akan dilacak secara otomatis. Namun di layanan ujung belakang atau aplikasi lain, jika Anda memasukkan panggilan ke TrackRequest() atau TrackDependency, maka deteksi pintar akan bekerja dengan cara yang sama.
  • Bisakah saya membuat aturan deteksi anomali saya sendiri atau menyesuaikan aturan yang ada?

  • Seberapa sering analisis dilakukan?

    • Kami menjalankan analisis setiap hari pada telemetri dari hari sebelumnya (sehari penuh di zona waktu UTC).
  • Apakah hal ini menggantikan pemberitahuan metrik?

    • Tidak. Kami tidak berkomitmen untuk mendeteksi setiap perilaku yang mungkin Anda anggap tidak normal.
  • Jika saya tidak melakukan apa pun sebagai tanggapan atas pemberitahuan, apakah saya akan mendapatkan pengingat?

    • Tidak, Anda mendapatkan pesan tentang setiap masalah hanya sekali. Jika masalah berlanjut, masalah akan diperbarui di panel umpan deteksi pintar.
  • Saya kehilangan email. Di mana saya dapat menemukan pemberitahuan di portal?

    • Pada ringkasan Application Insights Anda, klik petak Deteksi pintar. Di sana Anda akan menemukan semua pemberitahuan hingga 90 hari yang lalu.

Bagaimana cara saya meningkatkan performa?

Tanggapan yang lambat dan gagal adalah salah satu frustrasi terbesar bagi pengguna situs web, seperti yang Anda ketahui dari pengalaman Anda sendiri. Jadi, penting untuk mengatasi masalah tersebut.

Triase

Pertama, apakah itu penting? Jika halaman selalu lambat dimuat, tetapi hanya 1% dari pengguna situs Anda yang harus melihatnya, mungkin Anda memiliki hal-hal yang lebih penting untuk dipikirkan. Namun, jika hanya 1% pengguna yang membukanya, tetapi selalu memunculkan pengecualian, hal tersebut mungkin perlu diselidiki.

Gunakan pernyataan dampak, seperti pengguna yang terpengaruh atau % lalu lintas, sebagai panduan umum. Perlu disadari bahwa hal tersebut mungkin tidak menceritakan keseluruhan cerita. Kumpulkan bukti lain untuk mengonfirmasi.

Pertimbangkan parameter masalah tersebut. Jika bergantung pada geografi, siapkan pengujian ketersediaan termasuk wilayah tersebut: mungkin ada masalah jaringan di area tersebut.

Mendiagnosis pemuatan halaman yang lambat

Di mana masalahnya? Apakah server lambat merespons, apakah halaman terlalu panjang, atau apakah browser harus melakukan pekerjaan berlebih untuk menampilkannya?

Buka panel metrik Browser. Tampilan tersegmentasi waktu pemuatan halaman browser menunjukkan tempat waktu dihabiskan.

  • Jika Waktu Kirim Permintaan tinggi, server merespons dengan lambat, atau permintaan adalah pos dengan data dalam jumlah besar. Lihat metrik performa untuk menyelidiki waktu respons.
  • Siapkan pelacakan ketergantungan untuk melihat apakah kelambatan tersebut disebabkan oleh layanan eksternal atau database Anda.
  • Jika Respons Penerimaan bersifat dominan, halaman Anda beserta bagian dependennya - JavaScript, CSS, gambar, dan sebagainya (tapi bukan data yang dimuat secara asinkron) panjang. Siapkan uji ketersediaan, dan pastikan untuk mengatur opsi untuk memuat bagian dependen. Ketika Anda mendapatkan hasil, buka detail hasil dan perluas detail tersebut untuk melihat waktu pemuatan dari file yang berbeda.
  • Waktu Pemrosesan Klien Tinggi menunjukkan skrip berjalan lambat. Jika alasannya tidak jelas, pertimbangkan untuk menambahkan beberapa kode waktu dan mengirim waktu dalam panggilan trackMetric.

Meningkatkan halaman yang lambat

Ada web yang penuh dengan saran tentang meningkatkan respons server dan waktu pemuatan halaman Anda, jadi kami tidak akan mencoba mengulangi semuanya di sini. Berikut adalah beberapa tips yang mungkin sudah Anda ketahui, hanya untuk membuat Anda berpikir:

  • Pemuatan lambat karena file besar: Muat skrip dan bagian lain secara tidak sinkron. Gunakan bundling skrip. Pecahkan halaman utama menjadi widget yang memuat data secara terpisah. Jangan kirimkan HTML lama biasa untuk tabel yang panjang: gunakan skrip untuk meminta data sebagai JSON atau format ringkas lainnya, kemudian isi tabel di tempat. Ada kerangka kerja yang bagus untuk membantu tugas-tugas seperti itu. (Mereka juga menyertakan skrip besar, tentu saja.)
  • Dependensi server lambat: Pertimbangkan lokasi geografis komponen Anda. Contohnya, jika Anda menggunakan Azure, pastikan server web dan database berada di wilayah yang sama. Apakah kueri mengambil informasi lebih banyak dari yang dibutuhkan? Apakah caching atau batching akan membantu?
  • Masalah kapasitas: Lihat metrik server waktu respons dan jumlah permintaan. Jika waktu respons memuncak secara tidak proporsional dengan puncak dalam jumlah permintaan, kemungkinan beban server Anda berlebihan.

Degradasi Waktu Respons Server

Pemberitahuan degradasi waktu respons memberi tahu Anda:

  • Waktu respons dibandingkan dengan waktu respons normal untuk operasi ini.
  • Berapa banyak pengguna yang terpengaruh.
  • Waktu respons rata-rata dan waktu respons persentil ke-90 untuk operasi ini pada hari terjadinya deteksi dan tujuh hari sebelumnya.
  • Hitung permintaan operasi ini pada hari dideteksi dan tujuh hari sebelumnya.
  • Korelasi antara degradasi pada operasi ini dan degradasi pada dependensi terkait.
  • Tautan untuk membantu Anda mendiagnosis masalah.
    • Jejak profiler dapat membantu Anda melihat di mana waktu operasi dihabiskan. Tautan tersedia jika ada contoh pelacakan Profiler untuk operasi ini.
    • Laporan performa di Metric Explorer, tempat Anda dapat mengiris dan membagi rentang waktu/filter untuk operasi ini.
    • Cari panggilan ini untuk melihat properti panggilan tertentu.
    • Laporan kegagalan - Jika dihitung > 1, berarti ada kegagalan dalam operasi ini yang mungkin berkontribusi pada penurunan performa.

Degradasi Durasi Dependensi

Aplikasi modern sering mengadopsi pendekatan desain layanan mikro, yang dalam banyak kasus sangat bergantung pada layanan eksternal. Misalnya, jika aplikasi Anda bergantung pada beberapa platform data, atau pada penyedia layanan penting seperti layanan Azure AI.

Contoh pemberitahuan penurunan dependensi:

Berikut adalah contoh deteksi Degradasi Durasi Dependensi

Perhatikan bahwa itu memberi tahu Anda:

  • Durasi dibandingkan dengan waktu respons normal untuk operasi ini
  • Berapa banyak pengguna yang terpengaruh
  • Durasi rata-rata dan durasi persentil ke-90 untuk dependensi ini pada hari dideteksi dan tujuh hari sebelumnya
  • Jumlah panggilan dependensi pada hari dideteksi dan tujuh hari sebelumnya
  • Tautan untuk membantu Anda mendiagnosis masalah
    • Laporan performa di Metric Explorer untuk dependensi ini
    • Cari panggilan dependensi ini untuk melihat properti panggilan
    • Laporan kegagalan - Jika dihitung > 1, berarti ada panggilan ketergantungan yang gagal selama periode deteksi yang mungkin berkontribusi pada penurunan durasi.
    • Buka Analitik dengan kueri yang menghitung durasi dan jumlah dependensi ini

Deteksi pintar dari pola berkinerja lambat

Application Insights menemukan masalah performa yang mungkin hanya memengaruhi sebagian pengguna Anda, atau hanya memengaruhi pengguna di beberapa kasus. Misalnya, jika halaman dimuat lebih lambat pada jenis browser tertentu dibandingkan dengan yang lain, atau jika server tertentu menangani permintaan lebih lambat daripada server lain. Hal seperti itu juga dapat menemukan masalah yang terkait dengan kombinasi properti, seperti pemuatan halaman yang lambat di satu area geografis untuk klien yang menggunakan sistem operasi tertentu.

Anomali seperti ini sulit dideteksi hanya dengan memeriksa data, tetapi lebih umum daripada yang Anda kira. Sering kali anomali hanya muncul ketika pelanggan Anda mengeluh. Pada saat itu, sudah terlambat: pengguna yang terdampak sudah beralih ke pesaing Anda!

Saat ini, algoritma kami melihat waktu pemuatan halaman, waktu respons permintaan di server, dan waktu respons dependensi.

Anda tidak perlu mengatur ambang batas atau aturan konfigurasi. Algoritma pembelajaran mesin dan penggalian data digunakan untuk mendeteksi pola abnormal.

Dari peringatan email, klik tautan untuk membuka laporan diagnostik di Azure

  • Kapan menunjukkan waktu masalah terdeteksi.
  • Apa yang menjelaskan masalah yang terdeteksi, dan karakteristik ke-rangkaian peristiwa yang kami temukan, yang menampilkan perilaku masalah.
  • Tabel tersebut membandingkan set dengan performa buruk tersebut dengan perilaku rata-rata dari semua peristiwa lainnya.

Klik tautan untuk membuka Metric Explorer guna melihat laporan, difilter menurut waktu dan properti dari set yang berkinerja lambat.

Ubah rentang waktu dan filter untuk menjelajahi telemetri.

Langkah berikutnya

Alat diagnostik ini membantu Anda memeriksa telemetri dari aplikasi Anda:

Deteksi pintar bersifat otomatis. Namun barangkali Anda ingin mengatur beberapa peringatan lagi?