FAQ resmi untuk Azure Monitor Application Insights. Temukan jawaban atas pertanyaan tentang menggunakan Application Insights dengan Azure Monitor.
Gambaran Umum
Bagaimana cara saya menginstrumen aplikasi?
Untuk informasi terperinci tentang aplikasi instrumenting untuk mengaktifkan Application Insights, lihat dasar-dasar pengumpulan data.
Bagaimana cara saya menggunakan Application Insights?
Setelah mengaktifkan Application Insights dengan mengkustomisasi aplikasi, sebaiknya periksa Metrik Langsung dan Peta Aplikasi terlebih dahulu.
Telemetri apa yang dikumpulkan Application Insights?
Dari aplikasi web server:
- Permintaan HTTP.
- Dependensi. Panggilan ke database SQL, panggilan HTTP ke layanan eksternal, Azure Cosmos DB, Storage Tabel Azure, Azure Blob Storage, dan Azure Queue Storage.
- Pengecualian dan jejak tumpukan.
-
Penghitung kinerja: Anda dapat menggunakan penghitung kinerja saat:
- Azure Monitor agen Application Insights
- Pemantauan Azure untuk mesin virtual (VM) atau kumpulan skala mesin virtual
Wawasan Aplikasi .
- Peristiwa dan metrik kustom yang Anda kodekan.
- Log jejak jika Anda mengonfigurasi pengumpul yang sesuai.
Dari halaman-halaman web klien:
Pengecualian yang tidak tertangkap dalam aplikasi Anda, termasuk informasi tentang
- Jejak tumpukan
- Detail pengecualian dan pesan yang menyertai kesalahan
- Nomor baris & kolom kesalahan
- URL tempat kesalahan dimunculkan
- Permintaan Ketergantungan Jaringan yang dibuat oleh Permintaan Http XML (XHR) aplikasi Anda dan Pengambilan (koleksi pengambilan dinonaktifkan secara default), akan mencakup informasi tentang:
- URL sumber dependensi
- Perintah & Metode yang digunakan untuk meminta dependensi
- Durasi permintaan
- Kode hasil dan status keberhasilan permintaan
- ID (jika ada) pengguna yang membuat permintaan
- Konteks korelasi (jika ada) di mana permintaan dibuat
Informasi pengguna (misalnya, Lokasi, jaringan, IP)
Informasi perangkat (misalnya, Browser, OS, versi, bahasa, model)
Informasi sesi
Nota
Untuk beberapa aplikasi, seperti aplikasi satu halaman (SPAs), durasi tidak selalu dicatat dan, dalam kasus tersebut, bernilai default 0.
Untuk informasi selengkapnya, lihat Pengumpulan, Retensi, dan Penyimpanan Data di Application Insights.
Dari sumber lain, jika Anda telah mengonfigurasinya:
Ke mana perginya telemetri yang dikumpulkan dengan kerangka kerja pengelogan tradisional?
Saat menggunakan kerangka kerja pengelogan seperti Serilog, pesan log diserap oleh Application Insights sebagai Telemetri Pelacakan dan disimpan dalam traces tabel (atau AppTraces di Analitik Log). Hal ini sesuai dengan desain, karena tabel seperti requests, dependencies, dan exceptions dicadangkan untuk jenis telemetri masing-masing.
Untuk detailnya, lihat model data telemetri Application Insights.
Berapa banyak sumber daya Application Insights yang harus saya sebarkan?
Untuk memahami jumlah sumber daya Application Insights yang diperlukan untuk mencakup aplikasi atau komponen Anda di seluruh lingkungan, lihat panduan perencanaan penyebaran Application Insights.
Bagaimana cara mengelola sumber daya Application Insights dengan PowerShell?
Anda dapat menulis skrip PowerShell dengan menggunakan Azure Resource Monitor untuk:
- Membuat dan memperbarui sumber daya Application Insights.
- Mengatur rencana harga.
- Dapatkan "connection string".
- Tambahkan pemberitahuan metrik.
- Menambahkan pengujian ketersediaan.
Anda tidak dapat menyiapkan laporan penjelajah metrik atau menyiapkan ekspor berkelanjutan.
Bagaimana cara memeriksa telemetri Application Insights?
Gunakan REST API untuk menjalankan kueri Analitik Log.
Dapatkah saya mengirim telemetri ke portal Application Insights?
Kami merekomendasikan Azure Monitor OpenTelemetry Distro.
Berapa lama waktu yang dibutuhkan untuk mengumpulkan telemetri?
Sebagian besar data Application Insights memiliki latensi di bawah 5 menit. Beberapa data dapat memakan waktu lebih lama, yang khas untuk file log yang lebih besar. Lihat perjanjian tingkat layanan Application Insights.
Apa itu model harga Application Insights?
Application Insights dibebankan melalui ruang kerja Log Analytics di mana data log dimasukkan. Tingkat harga Log Analytics bayar sesuai pemakaian default mencakup 5 GB per bulan tunjangan data gratis per akun penagihan. Pelajari selengkapnya tentang opsi harga log Azure Monitor.
Apakah ada biaya transfer data antara aplikasi web Azure dan Application Insights?
- Jika aplikasi web Azure Anda dihosting di pusat data di mana ada titik akhir pengumpulan Application Insights, tidak ada biaya.
- Jika tidak ada titik akhir pengumpulan di pusat data host Anda, maka telemetri aplikasi Anda akan mengakibatkan biaya keluar Azure.
Jawaban ini tergantung pada distribusi titik akhir kami, bukan di tempat sumber daya Application Insights Anda dihosting.
Apakah saya dikenakan biaya jaringan jika sumber daya Application Insights saya memantau sumber daya Azure (yaitu, produsen telemetri) di wilayah yang berbeda?
Ya, Anda dapat dikenakan lebih banyak biaya jaringan, yang bervariasi tergantung pada wilayah asal telemetri dan ke mana tujuannya. Lihat harga bandwidth Azure untuk informasi lebih lanjut.
Jika Anda melihat biaya tak terduga atau biaya tinggi di Application Insights, panduan ini dapat membantu. Ini mencakup penyebab umum seperti volume telemetri tinggi, lonjakan penyerapan data, dan pengambilan sampel yang salah dikonfigurasi. Ini sangat berguna jika Anda mengatasi masalah yang terkait dengan lonjakan biaya, volume telemetri, pengambilan sampel yang tidak berfungsi, batas data, ingesti tinggi, atau penagihan yang tidak terduga. Untuk memulai, lihat Troubleshoot penyerapan data tinggi di Application Insights.
Versi TLS apa yang didukung?
Application Insights menggunakan Transport Layer Security (TLS) 1.2 dan 1.3.
Penting
Pada 1 Maret 2025, Azure akan menghentikan TLS versi lama di semua layanan. Pada saat itu, Application Insights tidak lagi mendukung TLS 1.0, TLS 1.1, dan suite sandi serta kurva elips TLS 1.2/1.3 warisan yang tercantum.
Untuk pertanyaan umum tentang masalah TLS lama, lihat Memecahkan masalah TLS dan Dukungan TLS dari Azure Resource Manager.
Di mana saya bisa mendapatkan informasi selengkapnya tentang Application Insights?
Untuk informasi selengkapnya, lihat Pengenalan Application Insights.
Pengumpulan data, retensi, penyimpanan, dan privasi
Bagaimana Application Insights menangani pengumpulan data, retensi, storage, dan privasi?
Context
Application Insights mengumpulkan telemetri dari aplikasi Anda dan menyimpannya di ruang kerja Analitik Log. Ini berfungsi untuk aplikasi yang dihosting di mana saja, tidak hanya di Azure.
Apa yang dikumpulkan dan dari mana
Telemetri berasal dari: (1) SDK yang Anda tambahkan ke aplikasi Anda, termasuk telemetri kustom apa pun yang Anda kirim, (2) agen server opsional, dan (3) pengujian ketersediaan yang dijalankan Microsoft. Data umum mencakup permintaan, dependensi, pengecualian dan crash, penghitung kinerja, konteks klien dan server, jejak, dan peristiwa atau metrik kustom apa pun yang Anda kirim. Untuk memverifikasi apa yang sedang dikirim, jalankan aplikasi Anda dalam mode debug dan periksa Output IDE atau jendela Diagnostik Anda. Untuk halaman web, buka tools pengembang browser Anda dan periksa pada tab Jaringan. Anda dapat memfilter atau memperkaya telemetri sebelum dikirim dengan menerapkan prosesor telemetri.
Retensi dan penyimpanan
Retensi data mentah dapat diatur ke 30, 60, 90, 120, 180, 270, 365, 550, atau 730 hari. Retensi di luar 90 hari dapat dikenakan biaya tambahan. Metrik agregat dipertahankan pada granularitas 1 menit selama 90 hari. Rekam jepret debug dipertahankan selama 15 hari. Data disimpan di wilayah yang Anda pilih saat membuat sumber daya. Telemetri tidak dapat diubah setelah penyerapan. Anda tidak dapat mengedit telemetri. Penghapusan tersedia untuk menghapus data jika diperlukan.
Akses, keamanan, dan enkripsi
Data terlihat oleh Anda dan rekan satu tim dengan akses dan bisa diekspor. Microsoft menggunakan data Anda hanya untuk menyediakan layanan dengan akses terbatas bagi personel tertentu dan dapat menggunakan statistik agregat untuk meningkatkan layanan. Telemetri dikirim melalui HTTPS dan data dienkripsi saat tidak aktif dan saat bergerak di antara pusat data.
Privasi dan penggunaan yang bertanggung jawab
Modul SDK default berfokus pada performa, penggunaan, dan diagnostik dan biasanya tidak menyertakan data pribadi sensitif. Jangan letakkan data sensitif dalam URL. Tinjau telemetri kustom sehingga tidak menyertakan data pribadi. IP klien digunakan untuk geolokasi, maka bidang IP yang disimpan di-nol secara default. Jika Anda memerlukan masking, tambahkan penginisialisasi telemetri. Jika aplikasi Anda memerlukan penolakan, nonaktifkan pengumpulan dalam kode. Tinjau juga bidang yang tampaknya tidak berbahaya, misalnya nama perangkat pada perangkat pribadi. Anda dapat mengontrol atau menonaktifkan beberapa koleksi dalam konfigurasi atau melalui kode. Untuk informasi selengkapnya, lihat Geolokasi dan penanganan alamat IP.
TLS
Gunakan TLS modern untuk data saat transit. Jangan hardcode versi protokol yang lebih lama. Izinkan platform untuk menegosiasikan versi yang lebih baru saat tersedia. Untuk informasi selengkapnya, lihat Amankan penyebaran Azure Monitor Anda.
Buffering dan gangguan lokal
Jika konektivitas ke Azure hilang atau dibatasi, SDK melakukan buffering telemetri secara lokal dan mencoba lagi. Item yang sudah kedaluarsa akan dihapus, misalnya setelah sekitar 48 jam untuk log dan 30 menit untuk metrik. Storage sementara lokal tidak dienkripsi, jadi amankan direktori storage yang Anda konfigurasi. Di browser, sessionStorage digunakan untuk menahan kiriman.
Penyimpanan lokal per bahasa: acuan cepat
.NET (ServerTelemetryChannel): Pengaturan default adalah
%LOCALAPPDATA%\Microsoft\ApplicationInsightsatau%TMP%. Anda dapat mengatur folder yang bertahan dalam konfigurasi atau kode.Konfigurasi (ApplicationInsights.config):
<TelemetryChannel Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel, Microsoft.AI.ServerTelemetryChannel"> <StorageFolder>D:\NewTestFolder</StorageFolder> </TelemetryChannel>Kode C#:
var channel = new Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.ServerTelemetryChannel(); channel.StorageFolder = @"D:\NewTestFolder"; channel.Initialize(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active); Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.TelemetryChannel = channel;.NET (ASP.NET Core): Default yang sama seperti di atas. Di Linux dan macOS, SDK dapat membuat folder storage secara otomatis. Urutan preferensi:
${TMPDIR}, lalu/var/tmp, lalu/tmp. Anda juga dapat mengatur folder diStartup.cs.Startup ASP.NET Core:
using Microsoft.ApplicationInsights.Channel; using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel; // inside ConfigureServices services.AddSingleton(typeof(ITelemetryChannel), new ServerTelemetryChannel { StorageFolder = "/tmp/myfolder" });Java: Menggunakan folder sementara OS, misalnya
C:\Users\username\AppData\Local\Tempdi Windows. Jalur ini tidak dapat dikonfigurasi melalui file konfigurasi standar.Node.js: Mengatur ke default
%TEMP%/appInsights-node{CONNECTION STRING}. Anda dapat mengubah awalan file yang digunakan untuk direktori sementara saat runtime.Sampel node:
const appInsights = require('applicationinsights'); appInsights.Sender.TEMPDIR_PREFIX = 'my-app-ai'; appInsights.setup(process.env.APPLICATIONINSIGHTS_CONNECTION_STRING).start();JavaScript (browser): Menggunakan
sessionStoragekunciAI_bufferdanAI_sent_buffer. Untuk menonaktifkan penyimpanan sesi buffering:import { ApplicationInsights } from '@microsoft/applicationinsights-web'; const appInsights = new ApplicationInsights({ config: { connectionString: '<YOUR-CONNECTION-STRING>', enableSessionStorageBuffer: false } }); appInsights.loadAppInsights();Python (OpenCensus): Nilai standarnya adalah
%USERNAME%/.opencensus/.azure/. Anda dapat mengatur jalur kustom:from opencensus.ext.azure.log_exporter import AzureLogHandler handler = AzureLogHandler(connection_string='<YOUR-CONNECTION-STRING>', storage_path='/var/tmp/ai-cache')
Data penggunaan apa yang dikumpulkan Microsoft?
Dalam banyak kasus, Application Insights secara otomatis mengumpulkan data tentang penggunaan produk untuk Microsoft. Data ini disimpan di penyimpanan data Microsoft dan tidak memengaruhi volume dan biaya pemantauan pelanggan. Application Insights mengumpulkan metrik penting dan tidak penting tentang:
- Azure Monitor OpenTelemetry Distro
- Autoinstrumentasi (instrumentasi otomatis)
- Application Insights SDK (API Klasik)
Tiga tujuan utama pengumpulan data ini adalah:
- Kesehatan dan keandalan layanan - Memantau konektivitas ke endpoint pengambilan data dari perspektif eksternal untuk memastikan layanan berfungsi dengan benar.
- Dukungan diagnostik - Menawarkan panduan swadaya dan membantu dukungan pelanggan dengan mendiagnosis serta menyelesaikan masalah.
- Peningkatan produk - Mengumpulkan wawasan bagi Microsoft untuk mengoptimalkan desain produk dan meningkatkan pengalaman pengguna secara keseluruhan.
Nota
Pengumpulan data penggunaan tidak mendukung Azure Private Link.
Bahasa yang didukung
| Metode pengukuran | .NET | Java | JavaScript | Node.js | Phyton |
|---|---|---|---|---|---|
| Metrik penting | |||||
| Jaringan | ❌ | ✅ | ❌ | ✅ | ✅ |
| Lampirkan | ✔️* | ✅ | ❌ | ✅ | ✅ |
| Fitur | ❌ | ✅ | ❌ | ✅ | ✅ |
| Metrik yang tidak penting | |||||
| Kegagalan disk I/O | ❌ | ✅ | ❌ | ❌ | ❌ |
* Tidak didukung dengan API Klasik atau autoinstrumentasi (hanya OTel)
Wilayah Uni Eropa yang didukung
Pengumpulan data penggunaan mendukung Batas Data UE untuk sumber daya Application Insights di wilayah berikut:
| Nama geografis | Nama wilayah |
|---|---|
| Eropa | Eropa Utara |
| Eropa | Eropa Barat |
| Prancis | Prancis Tengah |
| Prancis | Prancis Selatan |
| Jerman | Jerman Barat Tengah |
| Norwegia | Norwegia Timur |
| Norwegia | Norwegia Barat |
| Swedia | Swedia Tengah |
| Switzerland | Swiss Utara |
| Switzerland | Swiss Barat |
| Inggris Raya | Inggris Raya Selatan |
| Inggris Raya | Inggris Raya Barat |
Data penggunaan yang dikumpulkan
Metrik jaringan
| Nama metrik | Unit | Dimensi yang didukung |
|---|---|---|
| Jumlah Keberhasilan Permintaan | Jumlah |
Resource Provider, Attach TypeInstrumentation Key, Runtime Version, Operating System, Language, Version, Endpoint, Host |
| Jumlah Kegagalan Permintaan | Jumlah | , Resource Provider, Attach Type, Instrumentation Key, Runtime Version, Operating System, Language, Version, Endpoint, Host, Status Code |
| Waktu Permintaan | Jumlah |
Resource Provider, Attach TypeInstrumentation Key, Runtime Version, Operating System, Language, Version, Endpoint, Host |
| Jumlah Uji Ulang | Jumlah | , Resource Provider, Attach Type, Instrumentation Key, Runtime Version, Operating System, Language, Version, Endpoint, Host, Status Code |
| Jumlah Pembatasan | Jumlah | , Resource Provider, Attach Type, Instrumentation Key, Runtime Version, Operating System, Language, Version, Endpoint, Host, Status Code |
| Jumlah Pengecualian | Jumlah | , Resource Provider, Attach Type, Instrumentation Key, Runtime Version, Operating System, Language, Version, Endpoint, Host, Exception Type |
Melampirkan metrik
| Nama metrik | Unit | Dimensi yang didukung |
|---|---|---|
| Lampirkan | Jumlah |
Resource Provider, Resource Provider Identifier, Attach Type, Instrumentation Key, Runtime Version, Operating System, Language, Version |
Metrik fitur
| Nama metrik | Unit | Dimensi yang didukung |
|---|---|---|
| Fitur | Jumlah |
Resource Provider, Attach TypeInstrumentation Key, Runtime Version, Feature, Type, Operating System, Language, Version |
Metrik yang tidak penting
Lacak kegagalan I/O Disk saat Anda menggunakan persistensi disk untuk telemetri yang andal.
| Nama metrik | Unit | Dimensi yang didukung |
|---|---|---|
| Jumlah Kegagalan Baca | Jumlah |
Resource Provider, Attach TypeInstrumentation Key, Runtime Version, Operating System, Language, Version |
| Jumlah Kegagalan Penulisan Data | Jumlah |
Resource Provider, Attach TypeInstrumentation Key, Runtime Version, Operating System, Language, Version |
Konfigurasi firewall
Metrik dikirim ke lokasi berikut, yang koneksi keluarnya harus dibuka di firewall:
| Lokasi | URL |
|---|---|
| Eropa | westeurope-5.in.applicationinsights.azure.com |
| Di luar Eropa | westus-0.in.applicationinsights.azure.com |
Menonaktifkan pengumpulan data penggunaan
.NET
Pengumpulan data penggunaan diaktifkan secara default. Hal ini dapat dinonaktifkan dengan mengatur variabel lingkungan APPLICATIONINSIGHTS_STATSBEAT_DISABLED ke true.
Java
Nota
Hanya metrik yang tidak penting yang dapat dinonaktifkan di Java.
Untuk menonaktifkan metrik yang tidak penting, tambahkan konfigurasi berikut ke file konfigurasi Anda:
{
"preview": {
"statsbeat": {
"disabled": "true"
}
}
}
Anda juga dapat menonaktifkan fitur ini dengan mengatur variabel APPLICATIONINSIGHTS_STATSBEAT_DISABLED lingkungan ke true. Pengaturan ini kemudian lebih diutamakan daripada disabled, yang ditentukan dalam konfigurasi JSON.
Node.js
Pengumpulan data penggunaan diaktifkan secara default. Hal ini dapat dinonaktifkan dengan mengatur variabel lingkungan APPLICATION_INSIGHTS_NO_STATSBEAT ke true.
Python
Pengumpulan data penggunaan diaktifkan secara default. Hal ini dapat dinonaktifkan dengan mengatur variabel lingkungan APPLICATIONINSIGHTS_STATSBEAT_DISABLED_ALL ke true.
Informasi yang Diarsipkan
Untuk informasi yang diarsipkan, lihat Kumpulan, retensi, dan storage data di Application Insights.
API Application Insights untuk aktivitas dan metrik kustom
Mengapa saya kehilangan data telemetri?
Kedua TelemetryChannels akan kehilangan telemetri yang di-buffer jika tidak dikosongkan sebelum aplikasi dimatikan.
Untuk menghindari kehilangan data, bersihkan TelemetryClient saat aplikasi dimatikan.
Untuk informasi selengkapnya, lihat Menghapus data.
Pengecualian apa yang mungkin melempar panggilan Track_()?
Tidak ada. Anda tidak perlu membungkusnya dalam klausa try-catch. Jika SDK mengalami masalah, SDK akan mencatat pesan di output konsol debug dan, jika pesan berhasil masuk, di Pencarian Diagnostik.
Apakah ada REST API untuk mendapatkan data dari portal?
Ya, API akses data. Cara lain untuk mengekstrak data termasuk Power BI pada sumber daya berbasis ruang kerja.
Mengapa panggilan saya ke event-event khusus dan API metrik diabaikan?
Application Insights SDK tidak kompatibel dengan autoinstrumentasi. Jika autoinstrumentasi diaktifkan, panggilan ke Track() dan api peristiwa dan metrik kustom lainnya akan diabaikan.
Nonaktifkan autoinstrumentasi di Azure portal pada tab Application Insights di halaman App Service atau atur ApplicationInsightsAgent_EXTENSION_VERSION ke disabled.
Mengapa hitungan di bagan Penelusuran dan Metrik tidak sama?
Pengambilan sampel mengurangi jumlah item telemetri (seperti permintaan dan peristiwa kustom) yang dikirim dari aplikasi Anda ke portal. Di Pencarian, Anda akan melihat jumlah item yang diterima. Dalam bagan metrik yang menampilkan hitungan peristiwa, Anda akan melihat jumlah peristiwa asli yang terjadi.
Setiap item yang dikirimkan membawa itemCount properti yang menunjukkan berapa banyak peristiwa asli yang diwakili item tersebut. Untuk mengamati pengambilan sampel dalam operasi, Anda dapat menjalankan kueri ini di Analitik Log:
requests | summarize original_events = sum(itemCount), transmitted_events = count()
Bagaimana cara mengatur pemberitahuan pada peristiwa?
Pemberitahuan Azure hanya tersedia pada metrik. Buat metrik kustom yang melewati ambang nilai setiap kali peristiwa terjadi. Kemudian, atur pemberitahuan pada metrik. Anda mendapatkan pemberitahuan setiap kali metrik melewati ambang batas ke kedua arah. Anda tidak akan mendapatkan pemberitahuan hingga persimpangan pertama, tidak peduli apakah nilai awal tinggi atau rendah. Selalu ada latensi beberapa menit.
Di mana saya bisa mendapatkan informasi selengkapnya tentang API Application Insights untuk peristiwa dan metrik kustom?
Untuk informasi selengkapnya, lihat API Application Insights untuk peristiwa kustom dan metrik.
Menyebarkan Agen Application Insights untuk server lokal
Apakah Agen Application Insights mendukung penginstalan proksi?
Ya. Ada beberapa cara untuk mengunduh Agen Application Insights:
- Jika komputer Anda memiliki access internet, Anda dapat melakukan onboarding ke PowerShell Gallery dengan menggunakan parameter
-Proxy. - Anda juga dapat mengunduh modul secara manual dan memasangnya di komputer Anda atau menggunakannya secara langsung.
Masing-masing opsi ini dijelaskan dalam instruksi terperinci.
Apakah Agen Application Insights mendukung aplikasi ASP.NET Core?
Ya. Di Application Insights Agent 2.0.0 dan yang lebih baru, aplikasi ASP.NET Core yang dihosting di IIS didukung.
Bagaimana saya dapat memverifikasi bahwa pengaktifan berhasil?
Anda dapat menggunakan cmdlet Get-ApplicationInsightsMonitoringStatus untuk memverifikasi bahwa pengaktifan berhasil.
Gunakan Metrik Langsung untuk dengan cepat menentukan apakah aplikasi Anda mengirim telemetri.
Anda juga dapat menggunakan Analitik Log untuk mencantumkan semua peran cloud yang saat ini mengirimkan telemetri:
union * | summarize count() by cloud_RoleName, cloud_RoleInstance
Bagaimana cara melakukan passthrough proxy?
Untuk mencapai perantara proksi, konfigurasikan proksi pada tingkat mesin atau tingkat aplikasi. Lihat DefaultProxy.
Contoh Web.config:
<system.net>
<defaultProxy>
<proxy proxyaddress="http://xx.xx.xx.xx:yyyy" bypassonlocal="true"/>
</defaultProxy>
</system.net>
Di mana saya bisa mendapatkan informasi selengkapnya tentang menyebarkan Agen Application Insights untuk server lokal?
Untuk informasi selengkapnya, lihat Menyebarkan Agen Application Insights untuk server lokal.
Dukungan TLS
Menentukan apakah penghentian TLS memengaruhi Anda
Application Insights dan Azure Monitor tidak mengontrol versi TLS yang digunakan untuk koneksi HTTPS. Versi TLS tergantung pada sistem operasi dan lingkungan runtime tempat aplikasi Anda berjalan.
Untuk mengonfirmasi versi TLS yang digunakan:
- Tinjau dokumentasi untuk sistem operasi dan runtime atau kerangka kerja Anda.
- Hubungi tim dukungan yang sesuai jika Anda memerlukan bantuan lebih lanjut. Jangan buka permintaan dukungan dengan Application Insights.
Contoh dukungan bahasa dan runtime untuk TLS 1.2+
Versi berikut mencakup dukungan terintegrasi untuk TLS 1.2 atau yang lebih tinggi:
- .NET / .NET Core: .NET Framework 4.6.2 atau yang lebih baru, dan semua versi .NET Core
- Java: Java 8 update 161 (8u161) atau yang lebih baru
- Python: Distribusi Python yang dibangun dengan OpenSSL 1.0.1 atau yang lebih baru
- Node.js: Node.js versi 10 atau yang lebih baru
Contoh dukungan sistem operasi untuk TLS 1.2+
Sistem operasi berikut mencakup dukungan terintegrasi untuk TLS 1.2 atau yang lebih tinggi:
- Windows: Windows 8, Windows Server 2012, dan yang lebih baru
- Linux: Sebagian besar distribusi Linux modern yang menggunakan OpenSSL 1.0.1 atau yang lebih baru
Bagaimana saya dapat memastikan sumber daya saya tidak terpengaruh?
Agar terhindar dari gangguan layanan, setiap titik akhir jarak jauh (termasuk permintaan dependen) yang berinteraksi dengan sumber daya Anda perlu mendukung setidaknya satu kombinasi dari Versi Protokol yang sama, Cipher Suite, dan Kurva Elips yang disebutkan sebelumnya. Jika titik akhir jarak jauh tidak mendukung konfigurasi TLS yang diperlukan, maka perlu diperbarui agar mendukung beberapa kombinasi konfigurasi TLS setelah penghentian.
Setelah 1 Mei 2025, apa perilaku untuk sumber daya yang terpengaruh?
Sumber daya Application Insights yang terpengaruh berhenti menyerap data dan tidak dapat access komponen aplikasi yang diperlukan. Akibatnya, beberapa fitur berhenti berfungsi.
Komponen mana yang terkena dampak penghentian?
Penghentian penggunaan Transport Layer Security (TLS) yang dirinci dalam dokumen ini hanya akan memengaruhi perilaku setelah 1 Mei 2025. Untuk informasi selengkapnya tentang operasi CRUD, lihat Azure Resource Manager Dukungan TLS. Sumber daya ini memberikan detail selengkapnya tentang dukungan TLS dan garis waktu penghentian.
Di mana saya bisa mendapatkan dukungan Transport Layer Security (TLS)?
Untuk pertanyaan umum mengenai masalah TLS lama, lihat Memecahkan masalah TLS.
Di mana saya bisa mendapatkan informasi selengkapnya tentang dukungan TLS di Application Insights?
Untuk informasi selengkapnya, lihat dukungan TLS.
ASP.NET
Bagaimana cara menghapus instalan SDK?
Untuk menghapus Application Insights, Anda perlu menghapus paket dan referensi NuGet dari API di aplikasi Anda. Anda dapat menghapus instalan paket NuGet dengan menggunakan Package Manager NuGet di Visual Studio.
- Jika koleksi jejak diaktifkan, pertama-tama hapus instalan paket Microsoft.ApplicationInsights.TraceListener dengan menggunakan NuGet Package Manager tetapi jangan hapus dependensi apa pun.
- Hapus instalan paket Microsoft.ApplicationInsights.Web dan hapus dependensinya dengan menggunakan NuGet Package Manager dan opsi Uninstall dalam kontrol Opsi NuGet Package Manager.
- Untuk menghapus Application Insights sepenuhnya, periksa dan hapus kode atau file yang ditambahkan secara manual bersama dengan panggilan API apa pun yang Anda tambahkan di project Anda. Untuk informasi selengkapnya, lihat Apa yang dibuat secara otomatis saat Anda menambahkan Application Insights SDK?.
Apa yang dibuat secara otomatis saat Anda menambahkan Application Insights SDK?
Saat Anda menambahkan Application Insights ke project Anda, Application Insights secara otomatis membuat file dan menambahkan kode ke beberapa file Anda. Hanya menghapus instalan Paket NuGet tidak selalu membuang file dan kode. Untuk menghapus Application Insights sepenuhnya, Anda harus memeriksa dan menghapus kode atau file yang ditambahkan secara manual bersama dengan panggilan API apa pun yang Anda tambahkan di project Anda.
Saat Anda menambahkan Telemetri Application Insights ke proyek ASP.NET Visual Studio, file berikut ini akan ditambahkan:
- ApplicationInsights.config
- AiHandleErrorAttribute.cs
Potongan kode berikut ditambahkan secara otomatis:
[Nama project Anda].csproj
<ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4</ApplicationInsightsResourceId>Packages.config
<packages> ... <package id="Microsoft.ApplicationInsights" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.4.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.Web" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.WindowsServer" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.12.0" targetFramework="net472" /> <package id="Microsoft.AspNet.TelemetryCorrelation" version="1.0.7" targetFramework="net472" /> <package id="System.Buffers" version="4.4.0" targetFramework="net472" /> <package id="System.Diagnostics.DiagnosticSource" version="4.6.0" targetFramework="net472" /> <package id="System.Memory" version="4.5.3" targetFramework="net472" /> <package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net472" /> <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" /> ... </packages>Layout.cshtml
Jika project Anda memiliki file Layout.cshtml, kode berikut ditambahkan.
<head> ... <script type = 'text/javascript' > var appInsights=window.appInsights||function(config) { function r(config){ t[config] = function(){ var i = arguments; t.queue.push(function(){ t[config].apply(t, i)})} } var t = { config:config},u=document,e=window,o='script',s=u.createElement(o),i,f;for(s.src=config.url||'//az416426.vo.msecnd.net/scripts/a/ai.0.js',u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=['Event','Exception','Metric','PageView','Trace','Ajax'];i.length;)r('track'+i.pop());return r('setAuthenticatedUserContext'),r('clearAuthenticatedUserContext'),config.disableExceptionTracking||(i='onerror',r('_'+i),f=e[i],e[i]=function(config, r, u, e, o) { var s = f && f(config, r, u, e, o); return s !== !0 && t['_' + i](config, r, u, e, o),s}),t }({ connectionString:'<YOUR-CONNECTION-STRING>' }); window.appInsights=appInsights; appInsights.trackPageView(); </script> ... </head>ConnectedService.json
{ "ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider", "Version": "16.0.0.0", "GettingStartedDocument": { "Uri": "https://go.microsoft.com/fwlink/?LinkID=613413" } }FilterConfig.cs
public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ErrorHandler.AiHandleErrorAttribute());// This line was added }
Bagaimana cara menonaktifkan korelasi telemetri?
Untuk menonaktifkan korelasi telemetri dalam konfigurasi, lihat <ExcludeComponentCorrelationHttpHeadersOnDomains> di Wawasan Aplikasi untuk aplikasi konsol.
Di mana saya bisa mendapatkan informasi selengkapnya tentang menggunakan Application Insights dengan ASP.NET?
Untuk informasi selengkapnya, lihat Konfigurasi Application Insights untuk situs web ASP.NET anda.
Aplikasi ASP.NET Core
Apakah Application Insights mendukung ASP.NET Core 3.1?
ASP.NET Core 3.1 tidak lagi didukung oleh Microsoft.
Application Insights SDK untuk ASP.NET Core versi 2.8.0 dan Visual Studio 2019 atau yang lebih baru dapat digunakan dengan aplikasi ASP.NET Core 3.1.
Bagaimana cara melacak telemetri yang tidak dikumpulkan secara otomatis?
Peroleh instans TelemetryClient dengan menggunakan injeksi konstruktor dan panggil metode TrackXXX() yang diperlukan padanya. Kami tidak menyarankan untuk membuat instans TelemetryClient atau TelemetryConfiguration baru dalam aplikasi ASP.NET Core. Instans TelemetryClient tunggal sudah terdaftar di dalam kontainer DependencyInjection, yang menggunakan TelemetryConfiguration bersama dengan elemen telemetri lainnya. Buat instans baru TelemetryClient hanya jika memerlukan konfigurasi yang terpisah dari telemetri lainnya.
Contoh berikut menunjukkan cara melacak lebih banyak telemetri dari pengontrol.
using Microsoft.ApplicationInsights;
public class HomeController : Controller
{
private TelemetryClient telemetry;
// Use constructor injection to get a TelemetryClient instance.
public HomeController(TelemetryClient telemetry)
{
this.telemetry = telemetry;
}
public IActionResult Index()
{
// Call the required TrackXXX method.
this.telemetry.TrackEvent("HomePageRequested");
return View();
}
}
Untuk informasi selengkapnya tentang pelaporan data kustom di Application Insights, lihat Referensi API metrik kustom Application Insights. Pendekatan serupa dapat digunakan untuk mengirim metrik kustom ke Application Insights dengan menggunakan GetMetric API.
Bagaimana saya mencatat isi permintaan dan respons dalam telemetri saya?
ASP.NET Core memiliki dukungan built-in untuk mencatat informasi Permintaan/Respons HTTP (termasuk isi) melalui ILogger. Disarankan untuk memanfaatkan ini. Ini dapat berpotensi mengekspos informasi pengidentifikasi pribadi (PII) dalam telemetri, dan dapat menyebabkan biaya (biaya performa dan penagihan Application Insights) meningkat secara signifikan, jadi evaluasi risiko dengan hati-hati sebelum menggunakan ini.
Bagaimana cara saya menyesuaikan pengumpulan log ILogger?
Pengaturan default untuk Application Insights adalah hanya menangkap Peringatan dan log yang lebih parah.
Ambil Informasi dan log yang kurang parah dengan mengubah konfigurasi pengelogan untuk penyedia Application Insights sebagai berikut.
{
"Logging": {
"LogLevel": {
"Default": "Information"
},
"ApplicationInsights": {
"LogLevel": {
"Default": "Information"
}
}
},
"ApplicationInsights": {
"ConnectionString": "<YOUR-CONNECTION-STRING>"
}
}
Penting untuk diperhatikan bahwa contoh berikut tidak menyebabkan penyedia Application Insights mengambil log Information. Itu tidak merekamnya karena SDK menambahkan filter logging default yang memerintahkan ApplicationInsights untuk merekam hanya log Warning dan log yang lebih parah. Application Insights membutuhkan penggantian eksplisit.
{
"Logging": {
"LogLevel": {
"Default": "Information"
}
}
}
Untuk informasi selengkapnya, lihat Konfigurasi ILogger.
Beberapa templat Visual Studio menggunakan metode ekstensi UseApplicationInsights() di IWebHostBuilder untuk mengaktifkan Application Insights. Apakah penggunaan ini masih valid?
Metode ekstensi UseApplicationInsights() masih didukung, tetapi ditandai sebagai usang di Application Insights SDK versi 2.8.0 dan yang lebih seterusnya. Ini dihapus dalam versi utama SDK berikutnya. Untuk mengaktifkan telemetri Application Insights, gunakan AddApplicationInsightsTelemetry() karena menyediakan kelebihan beban untuk mengontrol beberapa konfigurasi. Selain itu, di aplikasi ASP.NET Core 3.X, services.AddApplicationInsightsTelemetry() adalah satu-satunya cara untuk mengaktifkan Application Insights.
Saya menyebarkan aplikasi ASP.NET Core saya ke Web Apps. Haruskah saya masih mengaktifkan ekstensi Application Insights dari Web Apps?
Jika SDK diinstal pada waktu build seperti yang ditunjukkan dalam artikel ini, Anda tidak perlu mengaktifkan ekstensi Application Insights dari portal App Service. Jika ekstensi diinstal, ekstensi akan mundur saat mendeteksi SDK sudah ditambahkan. Jika Anda mengaktifkan Application Insights dari ekstensi, Anda tidak perlu menginstal dan memperbarui SDK. Tetapi jika Anda mengaktifkan Application Insights dengan mengikuti instruksi dalam artikel ini, Anda memiliki lebih banyak fleksibilitas karena:
- Telemetri Application Insights terus berfungsi di:
- Semua sistem operasi, termasuk Windows, Linux, dan Mac.
- Semua mode publikasi, termasuk dependen kerangka kerja atau mandiri.
- Semua kerangka kerja target, termasuk .NET Framework secara keseluruhan.
- Semua opsi hosting, termasuk Web Apps, VM, Linux, kontainer, AKS, dan hosting non-Azure.
- Semua versi .NET Core, termasuk versi pratinjau.
- Anda dapat melihat telemetri secara lokal saat melakukan debugging dari Visual Studio.
- Anda dapat melacak lebih banyak telemetri kustom dengan menggunakan API
TrackXXX(). - Anda memiliki kontrol penuh atas konfigurasi.
Dapatkah saya mengaktifkan pemantauan Application Insights dengan menggunakan alat seperti Azure Monitor Agen Application Insights (sebelumnya Status Monitor v2)?
Ya. Dalam Application Insights Agent 2.0.0-beta1 dan yang lebih baru, aplikasi ASP.NET Core yang dihosting di IIS didukung.
Apakah semua fitur didukung jika saya menjalankan aplikasi saya di Linux?
Ya. Dukungan fitur untuk SDK sama di semua platform, dengan pengecualian berikut:
- SDK mengumpulkan penghitung peristiwa di Linux karena penghitung kinerja hanya didukung di Windows. Sebagian besar metrik juga sama.
Apakah SDK ini didukung untuk Layanan Pekerja?
Tidak. Sebagai gantinya, gunakan Application Insights untuk aplikasi Layanan Pekerja (aplikasi non-HTTP) untuk layanan pekerja.
Bagaimana cara menghapus instalan SDK?
Untuk menghapus Application Insights, Anda perlu menghapus paket dan referensi NuGet dari API di aplikasi Anda. Anda dapat menghapus instalan paket NuGet dengan menggunakan Package Manager NuGet di Visual Studio.
Nota
Instruksi ini adalah untuk menghapus instalan SDK ASP.NET Core. Jika Anda perlu menghapus instalasi ASP.NET SDK, lihat Cara saya dapat menghapus instalasi ASP.NET SDK?.
- Hapus instalan paket Microsoft.ApplicationInsights.AspNetCore dengan menggunakan NuGet Package Manager.
- Untuk menghapus Application Insights sepenuhnya, periksa dan hapus kode atau file yang ditambahkan secara manual bersama dengan panggilan API apa pun yang Anda tambahkan di project Anda. Untuk informasi selengkapnya, lihat Apa yang dibuat saat Anda menambahkan Application Insights SDK?.
Apa yang dibuat saat Anda menambahkan Application Insights SDK?
Saat Anda menambahkan Application Insights ke project Anda, Application Insights akan membuat file dan menambahkan kode ke beberapa file Anda. Menguninstal Paket NuGet tidak selalu menghapus file dan kode. Untuk menghapus Application Insights sepenuhnya, Anda harus memeriksa dan menghapus kode atau file yang ditambahkan secara manual bersama dengan panggilan API apa pun yang Anda tambahkan di project Anda.
Saat Anda menambahkan Telemetri Application Insights ke templat Visual Studio ASP.NET Core project, ia menambahkan kode berikut:
[Nama project Anda].csproj
<PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <ApplicationInsightsResourceId>/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/Default-ApplicationInsights-EastUS/providers/microsoft.insights/components/WebApplication4core</ApplicationInsightsResourceId> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.12.0" /> </ItemGroup> <ItemGroup> <WCFMetadata Include="Connected Services" /> </ItemGroup>Appsettings.json
"ApplicationInsights": { "ConnectionString": "<YOUR-CONNECTION-STRING>" }ConnectedService.json
{ "ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider", "Version": "16.0.0.0", "GettingStartedDocument": { "Uri": "https://go.microsoft.com/fwlink/?LinkID=798432" } }Startup.cs
public void ConfigureServices(IServiceCollection services) { services.AddRazorPages(); services.AddApplicationInsightsTelemetry(); // This is added }
Bagaimana cara menonaktifkan korelasi telemetri?
Untuk menonaktifkan korelasi telemetri dalam kode, lihat <ExcludeComponentCorrelationHttpHeadersOnDomains> di Wawasan Aplikasi untuk aplikasi konsol.
Di mana saya bisa mendapatkan informasi selengkapnya tentang menggunakan Application Insights untuk aplikasi ASP.NET Core?
Untuk informasi selengkapnya, lihat Wawasan Aplikasi untuk ASP.NET Core.
Penghitung kinerja ASP.NET
Apa perbedaan antara Tingkat Pengecualian dan Metrik Pengecualian?
-
Exception rate: Tingkat pengecualian adalah penghitung kinerja sistem. CLR menghitung semua pengecualian yang ditangani dan tidak tertangani yang dilemparkan, kemudian membagi total pengecualian tersebut dalam interval pengambilan sampel dengan panjang interval tersebut. Application Insights SDK mengumpulkan hasil ini dan mengirimkannya ke portal. -
Exceptions: Metrik pengecualian menghitung laporan yangTrackExceptionditerima oleh portal dalam periode pengambilan sampel sebagaimana ditampilkan dalam bagan. Ini hanya mencakup pengecualian yang ditangani di mana Anda menuliskan panggilanTrackExceptiondalam kode Anda. Ini tidak termasuk semua pengecualian yang tidak tertangani.
Di mana saya bisa mendapatkan informasi selengkapnya tentang penghitung kinerja ASP.NET?
Untuk informasi selengkapnya, lihat Counters untuk .NET di Application Insights.
Penghitung peristiwa ASP.NET
Dapatkah saya melihat EventCounters di Live Metrics?
Metrik Langsung tidak menampilkan EventCounters. Gunakan Metric Explorer atau Analitik untuk melihat telemetri.
Setelah saya mengaktifkan Application Insights dari Portal Aplikasi Web Azure, mengapa saya tidak dapat melihat penghitung peristiwa?
ekstensi Application Insights untuk ASP.NET Core belum mendukung fitur ini.
Di mana saya bisa mendapatkan informasi selengkapnya tentang penghitung peristiwa ASP.NET?
Untuk informasi selengkapnya, lihat Counters untuk .NET di Application Insights.
Mesin virtual Azure dan set skala mesin virtual
Bagaimana cara menonaktifkan pemantauan sisi klien untuk aplikasi ASP.NET Core?
Pemantauan sisi klien diaktifkan secara default untuk aplikasi ASP.NET Core. Jika Anda ingin menonaktifkannya, tentukan variabel lingkungan di server dengan informasi berikut:
-
Nama:
APPINSIGHTS_JAVASCRIPT_ENABLED -
Nilai:
false
Di mana saya bisa mendapatkan informasi selengkapnya tentang menggunakan Application Insights untuk Azure VM dan virtual machine scale sets?
Untuk informasi selengkapnya, lihat Wawasan Aplikasi untuk VM Azure dan virtual machine scale sets.
Pelacakan dependensi
Bagaimana cara pengumpul dependensi otomatis melaporkan panggilan yang gagal ke dependensi?
Panggilan dependensi yang gagal memiliki kolom yang success diatur menjadi False. Modul DependencyTrackingTelemetryModule tidak melaporkan ExceptionTelemetry. Model data lengkap untuk dependensi dijelaskan dalam model data telemetri Application Insights.
Bagaimana cara menghitung latensi penyerapan untuk telemetri dependensi saya?
Gunakan kode ini:
dependencies
| extend E2EIngestionLatency = ingestion_time() - timestamp
| extend TimeIngested = ingestion_time()
Bagaimana saya dapat menentukan waktu saat panggilan dependensi dimulai?
Dalam tampilan kueri Log Analytics, timestamp menunjukkan saat panggilan TrackDependency() dimulai, yang terjadi segera setelah respons panggilan dependensi diterima. Untuk menghitung waktu saat panggilan dependensi dimulai, Anda akan mengambil timestamp dan mengurangi rekaman duration panggilan dependensi.
Apakah pelacakan dependensi di Application Insights menyertakan pencatatan badan respons?
Pelacakan dependensi di Application Insights tidak menyertakan pencatatan isi respons karena akan menghasilkan terlalu banyak telemetri untuk sebagian besar aplikasi.
Di mana saya bisa mendapatkan informasi selengkapnya tentang pelacakan dependensi di Application Insights?
Untuk informasi selengkapnya, lihat Pelacakan dependensi.
Uji ketersediaan
Dapatkah saya menjalankan pengujian ketersediaan pada server intranet?
Pengujian ketersediaan berjalan pada titik kehadiran yang didistribusikan di seluruh dunia. Ada dua solusi:
- Pintu Firewall: Izinkan permintaan ke server Anda dari daftar agen pengujian web yang panjang dan berubah-ubah.
-
Kode kustom: Tulis kode Anda sendiri untuk mengirim permintaan berkala ke server Anda dari dalam intranet Anda. Anda dapat menjalankan Visual Studio pengujian web untuk tujuan ini. Penguji dapat mengirim hasilnya ke Application Insights dengan menggunakan
TrackAvailability()API.
Apa string agen pengguna untuk pengujian ketersediaan?
String agen pengguna adalah Mozilla/5.0 (kompatibel; MSIE 9.0; Windows NT 6.1; Trident/5.0; AppInsights)
Di mana saya bisa mendapatkan informasi selengkapnya tentang pengujian ketersediaan Application Insights?
Untuk informasi selengkapnya, lihat Pengujian ketersediaan.
Dukungan TLS untuk pengujian ketersediaan
Bagaimana penghentian memengaruhi perilaku pengujian web saya?
Pengujian ketersediaan bertindak sebagai klien terdistribusi di setiap lokasi pengujian web yang didukung. Setiap kali pengujian web dijalankan, layanan uji ketersediaan mencoba menjangkau titik akhir jarak jauh yang ditentukan dalam konfigurasi pengujian web. Pesan Halo Klien TLS dikirim yang berisi semua konfigurasi TLS yang saat ini didukung. Jika titik akhir jarak jauh berbagi konfigurasi TLS umum dengan klien uji ketersediaan, maka jabat tangan TLS berhasil. Jika tidak, uji web tersebut akan gagal akibat kegagalan jabat tangan TLS.
Bagaimana cara memeriksa konfigurasi TLS yang didukung oleh endpoint jarak jauh?
Ada beberapa alat yang tersedia untuk menguji konfigurasi TLS apa yang didukung titik akhir. Salah satu caranya adalah dengan mengikuti contoh yang dirinci di halaman ini. Jika titik akhir jarak jauh Anda tidak tersedia melalui internet publik, Anda perlu memastikan Anda memvalidasi konfigurasi TLS yang didukung pada titik akhir jarak jauh dari komputer yang memiliki akses untuk menghubungi titik akhir Anda.
Nota
Untuk langkah-langkah untuk mengaktifkan konfigurasi TLS yang diperlukan di server web Anda, yang terbaik adalah menjangkau tim yang memiliki platform hosting tempat server web Anda berjalan jika prosesnya tidak diketahui.
Setelah 1 Mei 2025, apa perilaku pengujian web untuk tes yang terkena dampak?
Tidak ada satu pun jenis pengecualian yang semua kegagalan jabat tangan TLS yang terpengaruh oleh penghentian ini akan muncul. Namun, pengecualian paling umum yang akan menyebabkan pengujian web Anda mulai gagal adalah The request was aborted: Couldn't create SSL/TLS secure channel. Anda juga akan dapat melihat kegagalan terkait TLS di TLS Transport Troubleshooting Step untuk hasil pengujian web yang berpotensi terpengaruh.
Dapatkah saya melihat konfigurasi TLS apa yang saat ini digunakan oleh pengujian web saya?
Konfigurasi TLS yang dinegosiasikan selama eksekusi pengujian web tidak dapat dilihat. Selama endpoint eksternal mendukung konfigurasi TLS umum dengan pengujian ketersediaan, tidak ada dampak yang akan terlihat setelah penghentian.
Komponen mana yang dipengaruhi oleh penghentian dalam layanan uji ketersediaan?
Penghapusan TLS yang dirinci dalam dokumen ini seharusnya hanya memengaruhi perilaku eksekusi tes ketersediaan web setelah 1 Mei 2025. Untuk informasi selengkapnya tentang berinteraksi dengan layanan uji ketersediaan untuk operasi CRUD, lihat Azure Resource Manager Dukungan TLS. Sumber daya ini memberikan detail selengkapnya tentang dukungan TLS dan garis waktu penghentian.
Di mana saya bisa mendapatkan dukungan TLS?
Untuk pertanyaan umum mengenai masalah TLS lama, lihat Memecahkan masalah TLS.
Di mana saya bisa mendapatkan informasi selengkapnya tentang dukungan TLS untuk pengujian ketersediaan?
Untuk informasi selengkapnya, lihat Konfigurasi TLS yang didukung.
Pemantauan di Azure App Service untuk aplikasi .NET, Node.js, Python, dan Java
Apa yang diubah Application Insights di project saya?
Detailnya tergantung pada jenis project. Daftar berikut adalah contoh untuk aplikasi web.
Menambahkan file ke proyek:
- ApplicationInsights.config
- ai.js
Menginstal paket NuGet:
- API Application Insights: API inti
- API Application Insights untuk Aplikasi Web: Digunakan untuk mengirim telemetri dari server
- API Application Insights untuk Aplikasi JavaScript: Digunakan untuk mengirim telemetri dari klien
Termasuk komponen dalam paket:
- Microsoft.ApplicationInsights
- Microsoft.ApplicationInsights.Platform
Sisipkan item ke dalam:
- Web.config
- packages.config
Masukkan cuplikan kode ke dalam kode klien dan server untuk menginisialisasi mereka dengan ID sumber daya Application Insights. Misalnya, dalam aplikasi MVC, kode dimasukkan ke dalam halaman utama Views/Shared/_Layout.cshtml. Hanya untuk proyek baru, Anda tambahkan Application Insights ke project yang ada secara manual.
Apa perbedaan antara metrik standar dari metrik Application Insights vs. Azure App Service?
Application Insights mengumpulkan telemetri untuk permintaan yang berhasil masuk ke aplikasi. Jika kegagalan terjadi di WebApps/WebServer, dan permintaan tidak mencapai aplikasi pengguna, Application Insights tidak memiliki telemetri tentang hal itu.
Durasi untuk serverresponsetime yang dihitung oleh Application Insights tidak selalu cocok dengan waktu respons server yang diamati oleh Web Apps. Perilaku ini karena Application Insights hanya menghitung durasi ketika permintaan benar-benar mencapai aplikasi pengguna. Jika permintaan macet atau diantrekan di WebServer, waktu tunggu disertakan dalam metrik Web Apps tetapi tidak dalam metrik Application Insights.
Di mana saya bisa mendapatkan informasi selengkapnya tentang pemantauan di Azure App Service untuk aplikasi .NET, Node.js, Python, dan Java?
Untuk informasi lebih lanjut, lihat Enable application monitoring in Azure App Service.
Autoinstrumentasi
Haruskah istilah "autoinstrumentation" diberi tanda hubung?
Kami mengikuti Panduan Gaya Microsoft untuk dokumentasi produk yang diterbitkan ke platform Microsoft Learn .
Secara umum, kami tidak menyertakan tanda hubung setelah awalan "otomatis".
Di mana saya bisa mendapatkan informasi selengkapnya tentang autoinstrumentasi?
Untuk informasi selengkapnya, lihat Apa itu autoinstrumentasi untuk Azure Monitor Application Insights?.
String sambungan
Apakah wilayah Azure baru memerlukan penggunaan string koneksi?
Wilayah Azure baru mengharuskan penggunaan string koneksi daripada kunci instrumentasi. Connection string mengidentifikasi sumber daya yang ingin Anda kaitkan dengan data telemetri Anda. Ini juga memungkinkan Anda untuk memodifikasi titik akhir yang digunakan sumber daya Anda sebagai tujuan telemetri Anda. Salin connection string dan tambahkan ke kode aplikasi Anda atau ke variabel lingkungan.
Haruskah saya menggunakan string koneksi atau kunci instrumentasi?
Kami menyarankan agar Anda menggunakan string koneksi alih-alih kunci instrumentasi.
Kapan saya perlu mengatur variabel lingkungan?
Atur APPLICATIONINSIGHTS_CONNECTION_STRING secara manual dalam semua skenario di mana sistem tidak menyediakannya secara otomatis. Skenario ini termasuk, tetapi tidak terbatas pada: pengembangan lokal dan .NET Fungsi Terisolasi menggunakan integrasi ASP.NET Core. Dalam kasus-kasus ini, variabel lingkungan memastikan bahwa pipeline OpenTelemetry dapat mengirim telemetri ke Application Insights. Untuk informasi lebih lanjut tentang mengonfigurasi string koneksi dengan variabel lingkungan, lihat Configuring OpenTelemetry in Application Insights.
Bagaimana cara mengatur aplikasi web global agar memenuhi persyaratan kepatuhan terhadap data daerah?
Untuk memenuhi persyaratan kepatuhan data regional, gunakan titik akhir Application Insights regional alih-alih titik akhir global. Titik akhir global tidak menjamin bahwa data tetap berada dalam wilayah tertentu. Titik akhir regional membantu memastikan bahwa telemetri dari pengguna di area yang diatur hanya dikirim ke pusat data di wilayah tersebut.
Untuk mengonfigurasi aplikasi web global Anda untuk kepatuhan regional:
- Buat satu sumber daya Application Insights per wilayah dengan persyaratan kepatuhan yang ketat, seperti Uni Eropa atau United States.
- Buat sumber daya Application Insights lain untuk pengguna di semua wilayah lain.
- Konfigurasikan aplikasi Anda untuk mengirim telemetri ke sumber daya Application Insights yang sesuai berdasarkan wilayah setiap pengguna. Tentukan wilayah menggunakan sinyal seperti alamat IP, metadata akun, atau pengaturan lokasi.
- Sambungkan semua sumber daya Application Insights ke ruang kerja Analitik Log jika Anda memerlukan pengalaman kueri terpadu di seluruh wilayah.
Contohnya:
- Kirim data dari pengguna Wilayah A ke sumber daya Application Insights Wilayah A menggunakan string koneksi Wilayah A.
- Kirim data dari pengguna Wilayah B ke sumber daya Application Insights Wilayah B dengan menggunakan connection string khusus Wilayah B.
- Kirim semua data pengguna lainnya ke sumber daya Application Insights serbaguna menggunakan string koneksi yang berbeda.
Penting
Menggunakan titik akhir global tidak memastikan kepatuhan regional. Untuk memenuhi persyaratan residensi data, selalu gunakan titik akhir khusus wilayah dan merutekan telemetri berdasarkan wilayah pengguna.
Diagram berikut menunjukkan contoh penyiapan untuk aplikasi web global:
Di mana saya bisa mendapatkan informasi selengkapnya tentang string koneksi di Application Insights?
Untuk informasi selengkapnya, lihat String koneksi.
Membuat dan mengonfigurasi sumber daya Application Insights
Bagaimana cara saya memindahkan satu sumber daya Application Insights ke wilayah baru?
Mentransfer sumber daya Application Insights yang ada antar wilayah tidak didukung, dan Anda tidak dapat memigrasikan data historis ke wilayah baru. Solusinya melibatkan:
- Membuat sumber daya Application Insights baru di wilayah yang diinginkan.
- Membuat ulang kustomisasi unik dari sumber daya asli ke sumber daya yang baru.
- Memperbarui aplikasi Anda dengan connection string sumber daya wilayah baru.
- Pengujian untuk memastikan semuanya berfungsi seperti yang diharapkan dengan sumber daya Application Insights baru.
- Putuskan untuk menyimpan atau menghapus sumber daya Application Insights asli. Menghapus sumber daya klasik berarti kehilangan semua data historis. Jika sumber daya berbasis ruang kerja, data tetap berada di Analitik Log, memungkinkan akses ke data historis hingga periode retensi kedaluwarsa.
Penyesuaian unik yang umumnya perlu dibuat ulang atau diperbarui secara manual untuk sumber daya di wilayah baru termasuk tetapi tidak terbatas pada:
- Buat ulang dasbor dan buku kerja kustom.
- Buat ulang atau perbarui cakupan pemberitahuan log/metrik kustom apa pun.
- Buat ulang pemberitahuan ketersediaan.
- Susun kembali pengaturan kontrol akses berbasis peran Azure kustom yang diperlukan pengguna Anda untuk mengakses sumber daya baru.
- Mereplikasi pengaturan yang melibatkan pengambilan sampel penyerapan, retensi data, batas harian, dan pengaktifan metrik kustom. Pengaturan ini dikontrol melalui panel Penggunaan dan estimasi biaya.
- Integrasi apa pun yang bergantung pada kunci API, seperti anotasi rilis dan saluran kontrol aman untuk metrik langsung. Anda perlu membuat kunci API baru dan memperbarui integrasi terkait.
- Ekspor berkelanjutan dalam sumber daya klasik harus dikonfigurasi lagi.
- Pengaturan diagnostik dalam sumber daya berbasis ruang kerja harus dikonfigurasi lagi.
Bisakah saya menggunakan providers('Microsoft.Insights', 'components').apiVersions[0] dalam penyebaran di Azure Resource Manager saya?
Kami tidak menyarankan penggunaan metode ini untuk mengisi versi API. Versi terkini dapat mewakili rilis pratinjau, yang mungkin berisi perubahan yang dapat memengaruhi fungsionalitas. Bahkan dengan rilis non-pratinjau yang lebih baru, versi API tidak selalu kompatibel secara backward dengan templat yang ada. Dalam beberapa kasus, versi API mungkin tidak tersedia untuk semua langganan.
Di mana saya bisa mendapatkan informasi selengkapnya tentang membuat dan mengonfigurasi sumber daya Application Insights?
Untuk informasi selengkapnya, lihat Membuat dan mengonfigurasi sumber daya Application Insights.
Model data telemetri
Bagaimana cara melaporkan masalah dan saran model data atau skema?
Untuk melaporkan masalah dan saran model data atau skema, gunakan repositori GitHub kami.
Bagaimana cara mengukur dampak kampanye pemantauan?
Telemetri PageView menyertakan URL dan Anda dapat mengurai parameter UTM menggunakan fungsi regex di Kusto.
Terkadang, data ini mungkin hilang atau tidak akurat jika pengguna atau perusahaan menonaktifkan pengiriman Agen Pengguna di pengaturan browser. UA Parser regex mungkin tidak menyertakan semua informasi perangkat. Atau Application Insights mungkin belum mengadopsi pembaruan terbaru.
Mengapa pengukuran kustom berhasil tanpa kesalahan tetapi log tidak muncul?
Ini dapat terjadi jika Anda menggunakan nilai string. Hanya nilai numerik yang berfungsi dengan pengukuran kustom.
Di mana saya bisa mendapatkan informasi selengkapnya tentang model data telemetri?
Untuk informasi selengkapnya, lihat Model data telemetri Application Insights.
Pengelogan dengan .NET
Jenis telemetri Application Insights apa yang dihasilkan dari catatan ILogger? Di mana saya dapat melihat log ILogger di Application Insights?
ApplicationInsightsLoggerProvider mengambil ILogger log dan membuat TraceTelemetry darinya. Jika objek Exception dilweatkan ke metode Log pada ILogger, ExceptionTelemetry dibuat dan bukan TraceTelemetry.
Melihat Telemetri ILogger
Di Azure portal:
- Buka portal Azure dan akses sumber daya Application Insights Anda.
- Pilih bagian Log di dalam Application Insights.
- Gunakan Bahasa Kueri Kusto (KQL) untuk mengkueri pesan "ILogger" yang disimpan dalam tabel
traces. Contoh Kueri:traces | where message contains "YourSearchTerm". - Perbaiki kueri Anda untuk memfilter data ILogger berdasarkan tingkat keparahan, rentang waktu, atau konten pesan tertentu.
Di Visual Studio (Debugger Lokal):
- Mulai aplikasi Anda dalam mode debug dalam Visual Studio.
- Buka jendela Alat Diagnostik saat aplikasi berjalan.
- Di tab Peristiwa , log ILogger muncul bersama dengan data telemetri lainnya.
- Untuk menemukan pesan ILogger tertentu, gunakan fitur pencarian dan filter di jendela Alat Diagnostik.
Jika Anda lebih suka selalu mengirimTraceTelemetry, gunakan cuplikan ini:
builder.AddApplicationInsights(
options => options.TrackExceptionsAsExceptionTelemetry = false);
Mengapa beberapa catatan ILogger tidak memiliki properti yang sama dengan yang lain?
Application Insights mengambil dan mengirim log ILogger dengan menggunakan informasi TelemetryConfiguration yang sama yang digunakan untuk telemetri lainnya. Tapi ada pengecualian. Secara default, TelemetryConfiguration tidak sepenuhnya dikonfigurasi saat Anda log dari Program.cs atau Startup.cs. Log dari lokasi-lokasi ini tidak memiliki konfigurasi default dan tidak menjalankan semua TelemetryInitializer instance dan TelemetryProcessor instance.
Saya menggunakan paket mandiri Microsoft.Extensions.Logging.ApplicationInsights, dan saya ingin mencatat beberapa telemetri kustom tambahan secara manual. Bagaimana aku harus melakukan itu?
Ketika Anda menggunakan paket mandiri, TelemetryClient tidak disuntikkan ke kontainer injeksi dependensi (DI). Anda perlu membuat instans baru TelemetryClient dan menggunakan konfigurasi yang sama dengan yang digunakan penyedia logger, seperti yang ditunjukkan oleh kode berikut. Ini memastikan bahwa konfigurasi yang sama digunakan untuk semua telemetri kustom serta telemetri dari ILogger.
public class MyController : ApiController
{
// This TelemetryClient instance can be used to track additional telemetry through the TrackXXX() API.
private readonly TelemetryClient _telemetryClient;
private readonly ILogger _logger;
public MyController(IOptions<TelemetryConfiguration> options, ILogger<MyController> logger)
{
_telemetryClient = new TelemetryClient(options.Value);
_logger = logger;
}
}
Nota
Jika Anda menggunakan paket Microsoft.ApplicationInsights.AspNetCore untuk mengaktifkan Application Insights, ubah kode ini untuk mendapatkan TelemetryClient langsung di konstruktor.
Saya tidak memiliki SDK yang terinstal, dan saya menggunakan ekstensi Azure Web Apps untuk mengaktifkan Application Insights untuk aplikasi ASP.NET Core saya. Bagaimana cara menggunakan penyedia baru?
Ekstensi Application Insights di Azure Web Apps menggunakan penyedia baru. Anda dapat mengubah aturan pemfilteran di appsettings.json file untuk aplikasi Anda.
Di mana saya bisa mendapatkan informasi selengkapnya tentang pengelogan dengan .NET?
Untuk informasi lebih lanjut, lihat Application Insights logging dengan .NET.
Java Profiler (Alat Pemprofilan Java)
Apa itu Azure Monitor Application Insights Java Profiling?
Java Profiler menggunakan Java Flight Recorder (JFR) untuk membuat profil aplikasi Anda menggunakan konfigurasi yang disesuaikan.
Apa itu Java Flight Recorder?
Java Flight Recorder (JFR) adalah alat untuk mengumpulkan data pembuatan profil aplikasi Java yang sedang berjalan. JFR diintegrasikan ke dalam Java Virtual Machine (JVM) dan digunakan untuk memecahkan masalah performa. Pelajari selengkapnya tentang Java SE JFR Runtime.
Apa implikasi harga dan/atau biaya lisensi untuk mengaktifkan Java Profiling pada App Insights?
Java Profiling adalah fitur gratis dengan Application Insights. Harga Azure Monitor Application Insights didasarkan pada biaya ingesti.
Informasi Java Profiling mana yang dikumpulkan?
Data pembuatan profil yang dikumpulkan oleh JFR meliputi: data pembuatan profil metode dan eksekusi, data pengumpulan sampah, dan profil kunci.
Bagaimana cara menggunakan Java Profiling pada App Insights dan memvisualisasikan data?
Perekaman JFR dapat dilihat dan dianalisis dengan alat pilihan Anda, misalnya Java Mission Control (JMC).
Apakah diagnosis performa dan rekomendasi perbaikan diberikan pada Java Profiling pada App Insights?
'Diagnostik dan rekomendasi performa' adalah fitur baru yang segera tersedia sebagai Diagnostik Java Application Insights. Anda dapat mendaftar untuk mencoba pratinjau fitur ini. Rekaman JFR dapat dilihat pada Java Mission Control (JMC).
Apa perbedaan antara Java Profiling sesuai permintaan dan otomatis di App Insights?
Profil sesuai permintaan adalah profil yang dipicu pengguna secara real-time, sedangkan profil otomatis menggunakan pemicu yang dikonfigurasi sebelumnya.
Gunakan Profil Sekarang untuk opsi pembuatan profil sesuai permintaan. Profil Sekarang segera memprofilkan semua agen yang dilampirkan ke instans Application Insights.
Pembuatan profil otomatis dipicu dengan mencapai ambang sumber daya.
Pemicu Java Profiling mana yang dapat saya konfigurasi?
Java Agent pada Application Insights saat ini mendukung pemantauan konsumsi CPU dan memori. Ambang CPU dikonfigurasi sebagai persentase dari semua inti yang tersedia pada komputer. Memori adalah okupansi wilayah memori Bertenor (OldGen) saat ini dibandingkan dengan ukuran wilayah maksimum yang memungkinkan.
Apa saja prasyarat yang diperlukan untuk mengaktifkan Java Profiling?
Tinjau Prasyarat.
Dapatkah saya menggunakan Java Profiling untuk aplikasi layanan mikro?
Ya, Anda dapat membuat profil JVM yang menjalankan layanan mikro menggunakan JFR.
Di mana saya bisa mendapatkan informasi selengkapnya tentang Java Profiler?
Untuk informasi selengkapnya, lihat Azure Monitor Application Insights Profiler for Java.
Pengecualian pengambilan sampel - Application Insights untuk Java
Apakah saya perlu menggunakan instrumentasi manual untuk mengaktifkan pengaturan ulang pengambilan sampel?
Tidak, penggantian pengambilan sampel sekarang tersedia secara umum (GA) dan dapat digunakan dengan autoinstrumentasi dan instrumentasi manual.
Bagaimana cara mengonfigurasi penggantian pengambilan sampel saat menggunakan Azure App Service dengan autoinstrumentasi?
Jika Anda menggunakan autoinstrumentasi, perbarui file applicationinsights.json di Azure portal.
Apakah perlu mengunggah file agen Application Insights secara manual untuk pengecualian pengambilan sampel?
Untuk autoinstrumentasi, tidak diperlukan pengunggahan agen manual. Namun, untuk instrumentasi manual, Anda masih perlu menyertakan file JAR agen Application Insights dan file konfigurasi dalam paket penyebaran Anda.
Apa perbedaan antara "pengembangan lokal" dan "server aplikasi" dalam konteks instrumentasi manual?
Pengembangan lokal mengacu pada lingkungan tempat aplikasi sedang dibangun atau diuji, seperti komputer pengembang atau instans Azure Cloud Shell. Server aplikasi mengacu pada server web yang menjalankan aplikasi, seperti Tomcat 11 di Azure App Service environment. Saat menggunakan instrumentasi manual, Anda harus memastikan bahwa file JAR agen ditempatkan dengan benar di server aplikasi.
Bagaimana cara saya mengonfigurasi penimpaan pengambilan sampel jika saya menggunakan Azure App Service dengan runtime Java (misalnya, Tomcat 11)?
Untuk autoinstrumentasi, Anda dapat mengonfigurasi pengaturan sampling melalui Azure portal. Jika menggunakan instrumentasi manual, Anda harus menempatkan JAR agen Application Insights di direktori yang sesuai dan menyertakan file applicationinsights.json dengan pengaturan pengambilan sampel yang Anda inginkan.
Di mana saya bisa mendapatkan informasi lebih lanjut tentang penggantian pengambilan sampel?
Untuk informasi selengkapnya, lihat Penggantian Sampling - Azure Monitor Application Insights untuk Java.
Prosesor telemetri
Mengapa prosesor log tidak memproses file log menggunakan TelemetryClient.trackTrace()?
TelemetryClient.trackTrace() adalah bagian dari jembatan Application Insights Classic SDK, dan prosesor log hanya berfungsi dengan instrumentasi berbasis OpenTelemetry baru.
Di mana saya bisa mendapatkan informasi selengkapnya tentang prosesor telemetri?
Untuk informasi selengkapnya, lihat prosesor Telemetri (pratinjau) - Azure Pemantauan Application Insights untuk Java.
JavaScript SDK
Apa saja jumlah pengguna dan sesi?
- JavaScript SDK menetapkan cookie pengguna di klien web, untuk mengidentifikasi pengguna yang kembali, dan cookie sesi ke aktivitas grup.
- Jika tidak ada skrip sisi klien, Anda dapat mengatur cookie di server.
- Jika satu pengguna nyata menggunakan situs Anda di browser yang berbeda, atau dengan menggunakan penjelajahan pribadi/penyamaran, atau komputer yang berbeda, mereka dihitung lebih dari sekali.
- Untuk mengidentifikasi pengguna yang masuk di seluruh komputer dan browser, tambahkan panggilan ke setAuthenticatedUserContext().
Bagaimana kinerja/overhead dari JavaScript SDK?
Application Insights JavaScript SDK memiliki overhead minimal di situs web Anda. Dengan ukuran hanya 36 KB saat terkompresi menggunakan gzip, dan memerlukan hanya sekitar 15 ms untuk inisialisasi, SDK menambahkan waktu muat yang hampir tidak terasa ke situs web Anda. Komponen minimal dari perpustakaan dimuat dengan cepat saat Anda menggunakan SDK, dan skrip lengkap diunduh di latar belakang.
Selain itu, selama pengunduhan skrip dari CDN, semua pelacakan halaman Anda dijadikan antrian, sehingga Anda tidak kehilangan data telemetri apa pun selama seluruh siklus aktivitas halaman Anda. Proses penyiapan ini memberi sistem analitik yang mulus bagi halaman Anda, sistem yang tidak terlihat oleh pengguna Anda.
Browser apa yang didukung oleh JavaScript SDK?
|
|
|
|
|
|---|---|---|---|---|
| Chrome Terbaru ✔ | Firefox Terbaru ✔ | v3.x: IE 9+ & Microsoft Edge ✔ v2.x: Kompatibel IE 8+ & Microsoft Edge ✔ |
Opera Terbaru ✔ | Safari Terbaru ✔ |
Di mana saya dapat menemukan contoh kode untuk JavaScript SDK?
Untuk contoh yang dapat dijalankan, lihat sampel SDK JavaScript Application Insights.
Apa itu kompatibilitas ES3/Internet Explorer 8 dengan JavaScript SDK?
Kita perlu mengambil langkah-langkah yang diperlukan untuk memastikan bahwa SDK ini terus "berfungsi" dan tidak merusak eksekusi JavaScript saat dimuat oleh browser yang lebih lama. Akan sangat ideal untuk tidak mendukung browser lama, tetapi banyak pelanggan besar tidak dapat mengontrol browser mana yang dipilih pengguna mereka untuk digunakan.
Pernyataan ini tidak berarti bahwa kami hanya mendukung serangkaian fitur umum terendah. Kita perlu mempertahankan kompatibilitas kode ES3. Fitur baru perlu ditambahkan dengan cara yang tidak akan merusak penguraian JavaScript ES3 dan ditambahkan sebagai fitur opsional.
Lihat GitHub untuk detail lengkap tentang dukungan Internet Explorer 8.
Apakah Sumber terbuka JavaScript SDK?
Ya, Application Insights JavaScript SDK open source. Untuk melihat kode sumber atau berkontribusi pada project, lihat repositori GitHub official.
Di mana saya bisa mendapatkan informasi selengkapnya tentang JavaScript SDK?
Untuk informasi selengkapnya, lihat Aktifkan Pemantauan Pengguna Nyata pada Azure Monitor Application Insights.
Konfigurasi JavaScript SDK
Bagaimana cara memperbarui konfigurasi server pihak ketiga saya untuk JavaScript SDK?
Sisi server harus dapat menerima koneksi dengan header yang ada tersebut. Bergantung pada konfigurasi Access-Control-Allow-Headers di sisi server, sering kali perlu memperluas daftar sisi server dengan menambahkan Request-Id, Request-Context, dan traceparent (header terdistribusi W3C).
Access-Control-Allow-Headers (Izin Akses Kontrol untuk Header): Request-Id, traceparent, Request-Context, <your header>
Bagaimana cara menonaktifkan pelacakan terdistribusi untuk JavaScript SDK?
Pelacakan terdistribusi dapat dinonaktifkan dalam konfigurasi.
Apakah respons HTTP 502 dan 503 selalu diambil oleh Application Insights?
Tidak. Kesalahan "Gateway buruk 502" dan "503 layanan tidak tersedia" tidak selalu ditangkap oleh Application Insights. Jika hanya JavaScript sisi klien yang digunakan untuk pemantauan, perilaku ini akan diharapkan karena respons kesalahan dikembalikan sebelum halaman yang berisi header HTML dengan cuplikan JavaScript pemantauan yang dirender.
Jika respons 502 atau 503 dikirim dari server dengan pemantauan sisi server diaktifkan, kesalahan dikumpulkan oleh Application Insights SDK.
Bahkan ketika pemantauan sisi server diaktifkan di server web aplikasi, terkadang kesalahan 502 atau 503 tidak ditangkap oleh Application Insights. Banyak server web modern tidak mengizinkan klien untuk berkomunikasi secara langsung. Sebaliknya, mereka menggunakan solusi seperti proksi terbalik untuk meneruskan informasi bolak-balik antara klien dan server web front-end.
Dalam skenario ini, respons 502 atau 503 mungkin dikembalikan ke klien karena masalah di lapisan reverse proxy, sehingga tidak secara otomatis dideteksi oleh Application Insights. Untuk membantu mendeteksi masalah pada lapisan ini, Anda mungkin perlu meneruskan log dari proksi terbalik ke Log Analytics dan membuat aturan kustom untuk memeriksa respons 502 atau 503. Untuk mempelajari lebih lanjut penyebab umum kesalahan 502 dan 503, kunjungi Troubleshoot HTTP errors of "502 Bad Gateway" dan "503 Service Unavailable" di Azure App Service.
Di mana saya bisa mendapatkan informasi selengkapnya tentang konfigurasi JavaScript SDK?
Untuk informasi selengkapnya, lihat Konfigurasi SDK JavaScript Application Insights.
Ekstensi kerangka kerja JavaScript
Bagaimana Application Insights menghasilkan informasi perangkat seperti browser, OS, bahasa, dan model?
Browser meneruskan string Agen Pengguna di header HTTP permintaan. Layanan penyerapan Application Insights menggunakan UA Parser untuk menghasilkan bidang yang Anda lihat dalam tabel dan pengalaman data. Akibatnya, pengguna Application Insights tidak dapat mengubah bidang ini.
Terkadang, data ini mungkin hilang atau tidak akurat jika pengguna atau perusahaan menonaktifkan pengiriman Agen Pengguna di pengaturan browser. UA Parser regex mungkin tidak menyertakan semua informasi perangkat. Atau Application Insights mungkin belum mengadopsi pembaruan terbaru.
Di mana saya bisa mendapatkan informasi selengkapnya tentang ekstensi kerangka kerja JavaScript?
Untuk informasi selengkapnya, lihat Mengaktifkan ekstensi kerangka kerja untuk Application Insights JavaScript SDK.
Ruang kerja terkelola
Apakah saya perlu memperbarui skrip atau otomatisasi yang mereferensikan sumber daya klasik?
Tidak. Templat ARM dan panggilan API yang ada terus berfungsi. Saat Anda mencoba membuat sumber daya klasik, sumber daya berbasis ruang kerja dengan ruang kerja terkelola dibuat sebagai gantinya.
Apakah saya diberi tahu sebelum sumber daya saya dimigrasikan?
Tidak. Pemberitahuan untuk migrasi sumber daya individual tidak tersedia. Untuk mengontrol kapan dan bagaimana sumber daya Anda dimigrasikan, gunakan migrasi manual.
Berapa lama proses migrasi berlangsung?
Migrasi individual biasanya selesai dalam waktu kurang dari dua menit. Peluncuran penuh berlangsung selama beberapa minggu di semua wilayah.
Bagaimana cara mengetahui apakah sumber daya dimigrasikan?
Setelah migrasi, sumber daya ditautkan ke ruang kerja Analitik Log di halaman Gambaran Umum. Pemberitahuan pensiun klasik dihapus, dan buku kerja pensiun tidak lagi mencantumkan sumber daya.
Apakah penagihan saya akan berubah setelah migrasi?
Biaya biasanya tetap serupa. Application Insights berbasis workspace memungkinkan fitur hemat biaya dan kami menyarankan untuk meninjau paket harga.
Jika Anda menggunakan model penagihan lama, tinjau dokumentasi penetapan harga untuk detailnya.
Apakah saya kehilangan pemberitahuan atau pengujian ketersediaan selama migrasi?
Tidak. Semua pemberitahuan, dasbor, dan pengujian ketersediaan tetap utuh dan terus berfungsi setelah migrasi.
Di mana saya bisa mendapatkan informasi selengkapnya tentang ruang kerja terkelola?
Untuk informasi selengkapnya, lihat Ruang kerja terkelola di Application Insights.
Node.js
Bagaimana cara menonaktifkan korelasi telemetri?
Untuk menonaktifkan korelasi telemetri, gunakan correlationHeaderExcludedDomains properti dalam konfigurasi. Untuk informasi selengkapnya, lihat ApplicationInsights-node.js.
Bagaimana cara mengonfigurasi tingkat log yang diinginkan?
Untuk mengonfigurasi tingkat log yang diinginkan yang akan digunakan Application Insights, gunakan APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL variabel lingkungan.
Nilai yang didukung adalah NONE, ERROR, WARN, INFO, DEBUG, VERBOSE, dan ALL.
Untuk informasi selengkapnya, lihat ApplicationInsights-node.js.
Di mana saya bisa mendapatkan informasi selengkapnya tentang memantau layanan dan aplikasi Node.js dengan Application Insights?
Untuk informasi selengkapnya, lihat Memantau layanan dan aplikasi Node.js Anda dengan Application Insights.
Azure Monitor OpenTelemetry
Di mana saya dapat menemukan daftar versi Application Insights SDK dan namanya?
Daftar versi dan nama SDK dihosting di GitHub. Untuk informasi selengkapnya, lihat Versi SDK.
Di mana saya bisa mendapatkan informasi selengkapnya tentang OpenTelemetry?
Untuk informasi selengkapnya, lihat Mengumpulkan telemetri dengan OpenTelemetry di Application Insights.
Migrasi dari SDK .NET Application Insights ke Azure Monitor OpenTelemetry
Bagaimana API dari SDK dikaitkan dengan konsep OpenTelemetry?
OpenTelemetry adalah kerangka kerja pengamatan netral vendor. Tidak ada API Application Insights di SDK atau pustaka OpenTelemetry. Sebelum bermigrasi, penting untuk memahami beberapa konsep OpenTelemetry.
Dalam Application Insights, semua telemetri dikelola melalui satu
TelemetryClientdanTelemetryConfiguration. Di OpenTelemetry, masing-masing dari tiga sinyal telemetri (Jejak, Metrik, dan Log) memiliki konfigurasinya sendiri. Anda dapat membuat telemetri secara manual melalui runtime .NET tanpa pustaka eksternal. Untuk informasi selengkapnya, lihat panduan .NET tentang pelacakan terdistribusi, metrik, dan pencatatan.Application Insights digunakan
TelemetryModulesuntuk mengumpulkan telemetri secara otomatis untuk aplikasi Anda. Sebagai gantinya, OpenTelemetry menggunakan pustaka Instrumentasi untuk mengumpulkan telemetri dari komponen tertentu (seperti AspNetCore untuk permintaan dan HttpClient untuk dependensi).Application Insights digunakan
TelemetryInitializersuntuk memperkaya telemetri dengan informasi tambahan atau untuk mengganti properti. Dengan OpenTelemetry, Anda dapat menulis Prosesor untuk menyesuaikan sinyal tertentu. Selain itu, banyak pustaka Instrumentasi OpenTelemetry menawarkan metodeEnrichuntuk menyesuaikan telemetri yang dihasilkan oleh komponen tersebut.Application Insights digunakan
TelemetryProcessorsuntuk memfilter telemetri. Prosesor OpenTelemetry juga dapat digunakan untuk menerapkan aturan pemfilteran pada sinyal tertentu.
Untuk panduan migrasi, lihat Migrate dari SDK .NET Application Insights ke Azure Monitor OpenTelemetry.
Bagaimana jenis telemetri dari Application Insights dipetakan ke dalam OpenTelemetry?
Tabel ini memetakan jenis data Application Insights ke konsep OpenTelemetry dan implementasi .NET mereka.
| Tabel Monitor Azure | Tipe Data Aplikasi Insights | OpenTelemetry Jenis Data | Implementasi .NET |
|---|---|---|---|
| customEvents | EventTelemetry | Tidak tersedia | Tidak tersedia |
| customMetrics | MetrikTelemetry | Metode pengukuran | Sistem.Diagnostik.Metrik.Meter |
| dependensi | DependencyTelemetry | Rentang (Klien, Internal, Konsumen) | Sistem.Diagnostik.Kegiatan |
| Pengecualian | ExceptionTelemetry | Pengecualian | System.Exception (kesalahan sistem) |
| permohonan | TelemetriPermintaan | Rentang (Server, Penghasil) | Sistem.Diagnostik.Kegiatan |
| jejak | Pelacak Telemetri | Catatan | Microsoft.Extensions.Logging.ILogger |
| jejak | Pelacak Telemetri | Peristiwa Rentang Waktu | System.Diagnostics.ActivityEvent |
Dokumen berikut ini menyediakan informasi selengkapnya.
Bagaimana konsep pengambilan sampel Application Insights dipetakan ke OpenTelemetry?
Meskipun Application Insights menawarkan beberapa opsi untuk mengonfigurasi pengambilan sampel, Azure Monitor Exporter atau Azure Monitor Distro hanya menawarkan pengambilan sampel laju tetap. Hanya Permintaan dan Dependensi (Jejak OpenTelemetry) yang dapat diambil untuk sampel.
Untuk sampel kode yang merinci cara mengonfigurasi pengambilan sampel, lihat panduan kami Mengaktifkan Pengambilan Sampel
Bagaimana Prosesor Telemetri dan Inisialisator berhubungan dengan OpenTelemetry?
Dalam Application Insights .NET SDK, gunakan prosesor telemetri untuk memfilter dan memodifikasi atau membuang telemetri. Gunakan penginisialisasi telemetri untuk menambahkan atau mengubah properti kustom. Untuk informasi selengkapnya, lihat dokumentasi Azure Monitor. OpenTelemetry mengganti konsep-konsep ini dengan prosesor aktivitas atau log, yang memperkaya dan memfilter telemetri.
Penyaringan Jejak
Untuk memfilter data telemetri di OpenTelemetry, Anda dapat menerapkan prosesor aktivitas. Contoh ini setara dengan contoh Application Insights untuk memfilter data telemetri seperti yang dijelaskan dalam dokumentasi Azure Monitor. Contoh ini menggambarkan di mana panggilan dependensi yang tidak berhasil difilter.
using System.Diagnostics;
using OpenTelemetry;
internal sealed class SuccessfulDependencyFilterProcessor : BaseProcessor<Activity>
{
public override void OnEnd(Activity activity)
{
if (!OKtoSend(activity))
{
activity.ActivityTraceFlags &= ~ActivityTraceFlags.Recorded;
}
}
private bool OKtoSend(Activity activity)
{
return activity.Kind == ActivityKind.Client && activity.Status == ActivityStatusCode.Ok;
}
}
Untuk menggunakan prosesor ini, Anda perlu membuat TracerProvider dan menambahkan prosesor sebelum AddAzureMonitorTraceExporter.
using OpenTelemetry.Trace;
public static void Main()
{
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddProcessor(new SuccessfulDependencyFilterProcessor())
.AddAzureMonitorTraceExporter()
.Build();
}
Log Pemfilteran
ILogger implementasi memiliki mekanisme bawaan untuk menerapkan pemfilteran log. Pemfilteran ini memungkinkan Anda mengontrol log yang dikirim ke setiap penyedia terdaftar, termasuk OpenTelemetryLoggerProvider. "OpenTelemetry" adalah alias untuk OpenTelemetryLoggerProvider, yang digunakan dalam mengonfigurasi aturan pemfilteran.
Contoh berikut mendefinisikan "Kesalahan" sebagai default LogLevel dan juga mendefinisikan "Peringatan" sebagai minimum LogLevel untuk kategori yang ditentukan pengguna. Aturan ini sebagaimana didefinisikan hanya berlaku untuk OpenTelemetryLoggerProvider.
builder.AddFilter<OpenTelemetryLoggerProvider>("*", LogLevel.Error);
builder.AddFilter<OpenTelemetryLoggerProvider>("MyProduct.MyLibrary.MyClass", LogLevel.Warning);
Untuk informasi selengkapnya, silakan baca dokumentasi OpenTelemetry .NET tentang log.
Menambahkan Properti Kustom ke Pelacakan
Di OpenTelemetry, Anda dapat menggunakan prosesor aktivitas untuk memperkaya data telemetri dengan lebih banyak properti. Ini mirip dengan menggunakan penginisialisasi telemetri di Application Insights, tempat Anda dapat memodifikasi properti telemetri.
Secara default, Azure Monitor Exporter menandai permintaan HTTP apa pun dengan kode respons 400 atau lebih besar karena gagal. Namun, jika Anda ingin memperlakukan 400 sebagai keberhasilan, Anda dapat menambahkan pemroses aktivitas yang memperkaya aktivitas tersebut dengan menetapkan status keberhasilan dan menambahkan tag untuk menyertakan lebih banyak properti telemetri. Ini mirip dengan menambahkan atau memodifikasi properti menggunakan penginisialisasi di Application Insights seperti yang dijelaskan dalam dokumentasi Azure Monitor.
Berikut adalah contoh cara menambahkan properti kustom dan mengambil alih perilaku default untuk kode respons tertentu:
using System.Diagnostics;
using OpenTelemetry;
/// <summary>
/// Custom Processor that overrides the default behavior of treating response codes >= 400 as failed requests.
/// </summary>
internal class MyEnrichingProcessor : BaseProcessor<Activity>
{
public override void OnEnd(Activity activity)
{
if (activity.Kind == ActivityKind.Server)
{
int responseCode = GetResponseCode(activity);
if (responseCode >= 400 && responseCode < 500)
{
// If we set the Success property, the SDK won't change it
activity.SetStatus(ActivityStatusCode.Ok);
// Allow to filter these requests in the portal
activity.SetTag("Overridden400s", "true");
}
// else leave the SDK to set the Success property
}
}
private int GetResponseCode(Activity activity)
{
foreach (ref readonly var tag in activity.EnumerateTagObjects())
{
if (tag.Key == "http.response.status_code" && tag.Value is int value)
{
return value;
}
}
return 0;
}
}
Untuk menggunakan prosesor ini, Anda perlu membuat TracerProvider dan menambahkan prosesor sebelum AddAzureMonitorTraceExporter.
using OpenTelemetry.Trace;
public static void Main()
{
var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource("Company.Product.Name")
.AddProcessor(new MyEnrichingProcessor())
.AddAzureMonitorTraceExporter()
.Build();
}
Bagaimana cara saya melacak telemetri secara manual menggunakan OpenTelemetry?
Mengirim Jejak - Manual
Jejak dalam Application Insights disimpan sebagai RequestTelemetry dan DependencyTelemetry. Di OpenTelemetry, penelusuran dimodelkan sebagai Span menggunakan kelas Activity.
OpenTelemetry .NET menggunakan kelas ActivitySource dan Activity untuk pelacakan, yang merupakan bagian dari runtime .NET. Pendekatan ini khas karena implementasi .NET mengintegrasikan API pelacakan langsung ke dalam runtime itu sendiri. Paket ini System.Diagnostics.DiagnosticSource memungkinkan pengembang untuk menggunakan ActivitySource untuk membuat dan mengelola Activity instance. Metode ini menyediakan cara yang mulus untuk menambahkan pelacakan ke aplikasi .NET tanpa mengandalkan pustaka eksternal, menerapkan kemampuan bawaan ekosistem .NET. Untuk informasi lebih rinci, lihat panduan instrumentasi pelacakan terdistribusi
Berikut cara memigrasikan pelacakan manual:
Nota
Di Application Insights, nama peran dan instans peran dapat diatur pada tingkat per telemetri. Namun, dengan Azure Monitor Exporter, kami tidak dapat menyesuaikan pada tingkat per telemetri. Nama peran dan instans peran diambil dari sumber daya OpenTelemetry dan diterapkan pada semua telemetri. Silakan baca dokumen ini untuk informasi selengkapnya: Atur nama peran cloud dan instans peran cloud.
DependencyTelemetry
Application Insights DependencyTelemetry digunakan untuk memodelkan permintaan keluar. Berikut cara mengonversinya menjadi OpenTelemetry:
Contoh Application Insights:
DependencyTelemetry dep = new DependencyTelemetry
{
Name = "DependencyName",
Data = "https://www.example.com/",
Type = "Http",
Target = "www.example.com",
Duration = TimeSpan.FromSeconds(10),
ResultCode = "500",
Success = false
};
dep.Context.Cloud.RoleName = "MyRole";
dep.Context.Cloud.RoleInstance = "MyRoleInstance";
dep.Properties["customprop1"] = "custom value1";
client.TrackDependency(dep);
Contoh OpenTelemetry:
var activitySource = new ActivitySource("Company.Product.Name");
var resourceAttributes = new Dictionary<string, object>
{
{ "service.name", "MyRole" },
{ "service.instance.id", "MyRoleInstance" }
};
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(resourceBuilder)
.AddSource(activitySource.Name)
.AddAzureMonitorTraceExporter()
.Build();
// Emit traces
using (var activity = activitySource.StartActivity("DependencyName", ActivityKind.Client))
{
activity?.SetTag("url.full", "https://www.example.com/");
activity?.SetTag("server.address", "www.example.com");
activity?.SetTag("http.request.method", "GET");
activity?.SetTag("http.response.status_code", "500");
activity?.SetTag("customprop1", "custom value1");
activity?.SetStatus(ActivityStatusCode.Error);
activity?.SetEndTime(activity.StartTimeUtc.AddSeconds(10));
}
TelemetriPermintaan
Application Insights RequestTelemetry memodelkan permintaan masuk. Berikut cara memigrasikannya ke OpenTelemetry:
Contoh Application Insights:
RequestTelemetry req = new RequestTelemetry
{
Name = "RequestName",
Url = new Uri("http://example.com"),
Duration = TimeSpan.FromSeconds(10),
ResponseCode = "200",
Success = true,
Properties = { ["customprop1"] = "custom value1" }
};
req.Context.Cloud.RoleName = "MyRole";
req.Context.Cloud.RoleInstance = "MyRoleInstance";
client.TrackRequest(req);
Contoh OpenTelemetry:
var activitySource = new ActivitySource("Company.Product.Name");
var resourceAttributes = new Dictionary<string, object>
{
{ "service.name", "MyRole" },
{ "service.instance.id", "MyRoleInstance" }
};
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.SetResourceBuilder(resourceBuilder)
.AddSource(activitySource.Name)
.AddAzureMonitorTraceExporter()
.Build();
// Emit traces
using (var activity = activitySource.StartActivity("RequestName", ActivityKind.Server))
{
activity?.SetTag("url.scheme", "https");
activity?.SetTag("server.address", "www.example.com");
activity?.SetTag("url.path", "/");
activity?.SetTag("http.response.status_code", "200");
activity?.SetTag("customprop1", "custom value1");
activity?.SetStatus(ActivityStatusCode.Ok);
}
Pelacakan Operasi Kustom
Di Application Insights, lacak operasi kustom menggunakan metode StartOperation dan StopOperation. Capai menggunakan ActivitySource dan Activity di .NET OpenTelemetry. Untuk operasi dengan ActivityKind.Server dan ActivityKind.Consumer, Azure Monitor Exporter menghasilkan RequestTelemetry. Untuk ActivityKind.Client, ActivityKind.Producer, dan ActivityKind.Internal, menghasilkan DependencyTelemetry. Untuk informasi selengkapnya tentang pelacakan operasi kustom, lihat dokumentasi Azure Monitor. Untuk informasi selengkapnya tentang menggunakan ActivitySource dan Activity di .NET, lihat panduan instrumentasi pelacakan terdistribusi .NET.
Berikut adalah contoh cara memulai dan menghentikan aktivitas untuk operasi kustom:
using System.Diagnostics;
using OpenTelemetry;
var activitySource = new ActivitySource("Company.Product.Name");
using var tracerProvider = Sdk.CreateTracerProviderBuilder()
.AddSource(activitySource.Name)
.AddAzureMonitorTraceExporter()
.Build();
// Start a new activity
using (var activity = activitySource.StartActivity("CustomOperation", ActivityKind.Server))
{
activity?.SetTag("customTag", "customValue");
// Perform your custom operation logic here
// No need to explicitly call Activity.Stop() because the using block automatically disposes the Activity object, which stops it.
}
Mengirim Catatan Log
Log di Application Insights disimpan sebagai TraceTelemetry dan ExceptionTelemetry.
Pelacak Telemetri
Di OpenTelemetry, pengelogan terintegrasi melalui ILogger antarmuka. Berikut cara memigrasikan TraceTelemetry:
Contoh Application Insights:
TraceTelemetry traceTelemetry = new TraceTelemetry
{
Message = "hello from tomato 2.99",
SeverityLevel = SeverityLevel.Warning,
};
traceTelemetry.Context.Cloud.RoleName = "MyRole";
traceTelemetry.Context.Cloud.RoleInstance = "MyRoleInstance";
client.TrackTrace(traceTelemetry);
Contoh OpenTelemetry:
var resourceAttributes = new Dictionary<string, object>
{
{ "service.name", "MyRole" },
{ "service.instance.id", "MyRoleInstance" }
};
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
using var loggerFactory = LoggerFactory.Create(builder => builder
.AddOpenTelemetry(logging =>
{
logging.SetResourceBuilder(resourceBuilder);
logging.AddAzureMonitorLogExporter();
}));
// Create a new instance `ILogger` from the above LoggerFactory
var logger = loggerFactory.CreateLogger<Program>();
// Emit log: This uses the logger instance to write a new log
logger.FoodPrice("tomato", 2.99);
internal static partial class LoggerExtensions
{
[LoggerMessage(LogLevel.Warning, "Hello from `{name}` `{price}`.")]
public static partial void FoodPrice(this ILogger logger, string name, double price);
}
ExceptionTelemetry
Application Insights menggunakan ExceptionTelemetry untuk mencatat pengecualian. Berikut cara bermigrasi ke OpenTelemetry:
Contoh Application Insights:
ExceptionTelemetry exceptionTelemetry = new ExceptionTelemetry(new Exception("Test exception"))
{
SeverityLevel = SeverityLevel.Error
};
exceptionTelemetry.Context.Cloud.RoleName = "MyRole";
exceptionTelemetry.Context.Cloud.RoleInstance = "MyRoleInstance";
exceptionTelemetry.Properties["customprop1"] = "custom value1";
client.TrackException(exceptionTelemetry);
Contoh OpenTelemetry:
var resourceAttributes = new Dictionary<string, object>
{
{ "service.name", "MyRole" },
{ "service.instance.id", "MyRoleInstance" }
};
var resourceBuilder = ResourceBuilder.CreateDefault().AddAttributes(resourceAttributes);
using var loggerFactory = LoggerFactory.Create(builder => builder
.AddOpenTelemetry(logging =>
{
logging.SetResourceBuilder(resourceBuilder);
logging.AddAzureMonitorLogExporter();
}));
// Create a new instance `ILogger` from the above LoggerFactory.
var logger = loggerFactory.CreateLogger<Program>();
try
{
// Simulate exception
throw new Exception("Test exception");
}
catch (Exception ex)
{
// Emit exception: This uses the logger instance to write a new exception
logger?.LogError(ex, "An error occurred");
}
Mengirim Metrik
Metrik dalam Application Insights disimpan sebagai MetricTelemetry. Di OpenTelemetry, metrik dimodelkan sebagai Meter dari System.Diagnostics.DiagnosticSource paket.
Application Insights memiliki API Metrik tanpa pra-agregasi (TrackMetric()) dan pra-agregasi (GetMetric().TrackValue()). Tidak seperti OpenTelemetry, Application Insights tidak memiliki gagasan Instruments. Application Insights memiliki API yang sama untuk semua skenario metrik.
OpenTelemetry, di sisi lain, mengharuskan pengguna untuk terlebih dahulu memilih instrumen metrik yang tepat berdasarkan semantik sebenarnya dari metrik tersebut. Misalnya, jika niatnya adalah untuk menghitung sesuatu (seperti jumlah total permintaan server yang diterima, dll.), OpenTelemetry Counter harus digunakan. Jika niatnya adalah untuk menghitung berbagai persentil (seperti nilai P99 latensi server), maka OpenTelemetry Histogram instrumen harus digunakan. Karena perbedaan mendasar antara Application Insights dan OpenTelemetry ini, tidak ada perbandingan langsung yang dibuat di antara mereka.
Tidak seperti Application Insights, OpenTelemetry tidak menyediakan mekanisme bawaan untuk memperkaya atau memfilter metrik. Di Application Insights, prosesor telemetri dan penginisialisasi dapat digunakan untuk memodifikasi atau membuang metrik, tetapi kemampuan ini tidak tersedia di OpenTelemetry.
Selain itu, OpenTelemetry tidak mendukung pengiriman langsung metrik mentah, karena tidak ada fungsionalitas setara dengan TrackMetric() yang ditemukan di Application Insights.
Migrasi dari Application Insights ke OpenTelemetry melibatkan mengganti semua penggunaan API Metrik Application Insights dengan API OpenTelemetry. Ini membutuhkan pemahaman berbagai Instrumen OpenTelemetry dan semantiknya.
Petunjuk / Saran
Histogram paling serbaguna dan paling menyerupai API Application Insights GetMetric().TrackValue(). Anda dapat mengganti API Metrik Application Insights dengan Histogram untuk mencapai tujuan yang sama.
Jenis Telemetri Lainnya
Acara Khusus
Tidak didukung di OpenTelemetry.
Contoh Application Insights:
TelemetryClient.TrackEvent()
Telemetri Ketersediaan
Tidak didukung di OpenTelemetry.
Contoh Application Insights:
TelemetryClient.TrackAvailability()
"Telemetri Tampilan Halaman"
Tidak didukung di OpenTelemetry.
Contoh Application Insights:
TelemetryClient.TrackPageView()
Bisakah saya mendapatkan metrik waktu nyata untuk aplikasi layanan konsol dan layanan pekerja?
Kami merekomendasikan Azure Monitor OpenTelemetry Exporter untuk aplikasi layanan konsol dan pekerja, yang tidak menyertakan metrik langsung.
Di mana saya bisa mendapatkan informasi selengkapnya tentang migrasi dari SDK Application Insights .NET ke OpenTelemetry?
Untuk informasi selengkapnya, lihat Migrate dari SDK .NET Application Insights ke Azure Monitor OpenTelemetry.
Pengambilan sampel Telemetri Terbuka
Apakah sampler kustom Application Insights menggunakan metode sampling berdasarkan akhir?
Sampler kustom Application Insights membuat keputusan pengambilan sampel setelah pembuatan rentang, bukan sebelumnya, sehingga tidak mengikuti pendekatan tradisional berbasis kepala. Sebaliknya, keputusan pengambilan sampel diterapkan di akhir pembuatan rentang—setelah rentang selesai tetapi sebelum diekspor.
Meskipun perilaku ini menyerupai pengambilan sampel berbasis ekor dalam beberapa hal, sampler tidak menunggu untuk mengumpulkan beberapa span dari lacak yang sama sebelum memutuskan. Sebaliknya, menggunakan hash dari ID Pelacakan untuk membantu memastikan kelengkapan penelusuran.
Pendekatan ini menyeimbangkan kelengkapan dan efisiensi pelacakan, dan menghindari biaya yang lebih tinggi yang terkait dengan pengambilan sampel berbasis ekor penuh.
Untuk membuat keputusan pengambilan sampel berdasarkan hasil seluruh lacak (misalnya, menentukan apakah ada rentang dalam lacak yang gagal), sampling berbasis ekor penuh perlu dilakukan oleh Agen atau Kolektor di hilir. Kemampuan ini saat ini tidak didukung, tetapi Anda dapat memintanya sebagai fitur baru melalui Feedback Hub.
Bagaimana sampel kustom Application Insights dibandingkan dengan pengambilan sampel berbasis kepala atau berbasis ekor OpenTelemetry?
| Metode Pengambilan Sampel | Titik keputusan | Kekuatan | Kelemahan |
|---|---|---|---|
| Berasal dari kepala | Sebelum rentang dimulai | Latensi rendah, overhead minimal | Dapat mengambil sampel jejak yang diharapkan, termasuk kegagalan. |
| Berbasis ekor | Setelah rentang di-buffer berdasarkan ambang waktu atau volume | Memungkinkan kriteria pengambilan sampel jejak yang sangat selektif | Biaya yang lebih tinggi dan keterlambatan pemrosesan tambahan |
| Pengambilan Sampel Kustom App Insights | Akhir penyusunan rentang | Menyeimbangkan kelengkapan pelacakan dengan efisiensi | Diperlukan untuk Metrik Langsung dan kompatibilitas API Klasik |
Dapatkah saya mengambil sampel dependensi, permintaan, atau jenis telemetri lainnya dengan tarif yang berbeda?
Tidak, pengambil sampel menerapkan tingkat tetap di semua jenis telemetri dalam pelacakan. Permintaan, dependensi, dan rentang lainnya mengikuti persentase pengambilan sampel yang sama. Untuk menerapkan tarif yang berbeda per jenis telemetri, pertimbangkan untuk menggunakan prosesor rentang OpenTelemetry atau (transformasi waktu penyerapan)[app-insights-overview.md#telemetry-routing].
Bagaimana sampler kustom Application Insights menyebarluaskan keputusan pengambilan sampel?
Sampler kustom Application Insights menyebarluaskan keputusan pengambilan sampel menggunakan standar Konteks Jejak W3C secara default. Standar ini memungkinkan keputusan pengambilan sampel mengalir di antara layanan. Namun, karena pengambil sampel membuat keputusan pengambilan sampel pada akhir generasi rentang—setelah panggilan ke layanan hilir—penyebaran membawa informasi keputusan sampel yang tidak lengkap. Batasan ini sesuai dengan spesifikasi Konteks Pelacakan W3C, tetapi layanan hilir tidak dapat menggunakan keputusan pengambilan sampel yang disebarkan ini dengan andal.
Apakah sampler kustom Application Insights menghormati keputusan pengambilan sampel dari layanan hulu?
Tidak, sampler kustom Application Insights selalu membuat keputusan pengambilan sampel independen, bahkan jika layanan upstream menggunakan algoritma pengambilan sampel yang sama. Keputusan pengambilan sampel dari layanan upstream, termasuk yang menggunakan W3C Trace Context headers, tidak memengaruhi keputusan layanan hilir. Namun, ia melakukan pengambilan sampel berdasarkan hash ID Pelacakan untuk memastikan kelengkapan pelacakan. Untuk meningkatkan konsistensi dan mengurangi kemungkinan jejak yang rusak, konfigurasikan semua komponen dalam sistem untuk menggunakan sampler dan laju pengambilan sampel yang sama.
Mengapa beberapa jejak tampak tidak lengkap bahkan saat menggunakan sampler kustom Application Insights?
Ada beberapa alasan pelacakan dapat muncul tidak lengkap:
- Simpul-simpul yang berbeda dalam sistem terdistribusi menggunakan pendekatan pengambilan sampel yang berbeda tanpa mengoordinasikan keputusan di antara mereka. Misalnya, satu simpul menerapkan pengambilan sampel berbasis kepala OpenTelemetry, dan simpul lain menerapkan pengambilan sampel melalui Azure Monitor Custom Sampler.
- Simpul yang berbeda diatur pada tingkat pengambilan sampel yang berbeda, meskipun keduanya menggunakan pendekatan pengambilan sampel yang sama.
- Anda mengatur pemfilteran, penyampelan, atau batas kuota di alur pemrosesan sisi layanan, dan konfigurasi ini secara acak menyampel segmen tanpa mempertimbangkan kelengkapan pelacakan.
Jika satu komponen menerapkan penentuan sampel berbasis header tanpa menyebarkan keputusan penentuan sampel (melalui header Konteks Jejak W3C), layanan hilir menentukan sampel jejak secara independen, yang dapat mengakibatkan segmen jejak dibuang. Akibatnya, beberapa bagian pelacakan tidak selalu tersedia saat dilihat di Application Insights.
Bagaimana cara kerja sampler kustom Application Insights bersamaan dengan sampling penyerapan?
Pengambilan sampel saat penerimaan data hanya akan menghilangkan data yang sampai ke layanan, sehingga tidak dapat membatalkan atau menggantikan keputusan penetapan sampel khusus dari Application Insights. Jika keduanya diaktifkan, tingkat efektifnya adalah multiplikatif. Misalnya, tingkat SDK 20 persen dikombinasikan dengan tingkat penyerapan 50 persen menghasilkan sekitar 10 persen data yang disimpan. Microsoft merekomendasikan untuk melakukan pengambilan sampel di sumber dengan Azure Monitor OpenTelemetry sampler untuk menjaga jejak tetap utuh dan dapat diprediksi, dan menggunakan pengambilan sampel penyerapan hanya sebagai fallback.
Di mana saya bisa mendapatkan informasi selengkapnya tentang pengambilan sampel OpenTelemetry?
Untuk informasi selengkapnya, kunjungi Sampling di Azure Monitor Application Insights dengan OpenTelemetry.
Dukungan dan umpan balik OpenTelemetry
Apa itu OpenTelemetry?
Ini adalah standar sumber terbuka untuk pengamatan. Pelajari lebih lanjut di OpenTelemetry.
Mengapa Microsoft Azure Monitor berinvestasi di OpenTelemetry?
Microsoft berinvestasi di OpenTelemetry karena alasan berikut:
- Ini netral vendor dan menyediakan API/SDK yang konsisten di seluruh bahasa.
- Seiring waktu, kami percaya OpenTelemetry akan memungkinkan pelanggan Azure Monitor untuk mengamati aplikasi yang ditulis dalam bahasa selain bahasa yang kami dukung.
- Ini memperluas jenis data yang dapat Anda kumpulkan melalui serangkaian pustaka instrumentasi yang kaya.
- OpenTelemetry Software Development Kits (SDK) cenderung lebih berkinerja dalam skala besar daripada pendahulunya, SDK API Klasik Application Insights.
- OpenTelemetry selaras dengan strategi Microsoft untuk embrace open source.
Bagaimana status OpenTelemetry?
Lihat Status OpenTelemetry.
Apa itu Distro OpenTelemetry Monitor Azure?
Anda dapat menganggapnya sebagai pembungkus tipis yang menggabungkan semua komponen OpenTelemetry untuk pengalaman kelas satu di Azure. Pembungkusan ini juga disebut distribusi di OpenTelemetry.
Mengapa saya harus menggunakan Azure Monitor OpenTelemetry Distro?
Ada beberapa keuntungan menggunakan Azure Monitor OpenTelemetry Distro daripada OpenTelemetry asli dari komunitas:
- Mengurangi upaya pengaktifan
- Didukung oleh Microsoft
- Membawa fitur khusus Azure seperti:
- Pengambilan sampel kompatibel dengan SDK Application Insights klasik
- autentikasi Microsoft Entra
- Penyimpanan Offline dan Upaya Ulang Otomatis
- Metrik Standar Wawasan Aplikasi
- Mendeteksi metadata sumber daya untuk mengisi otomatis Nama Peran Cloud dan Instans Peran Cloud di berbagai lingkungan Azure
- Metrik Langsung
Dalam semangat OpenTelemetry, kami merancang distro agar terbuka dan dapat diperluas. Misalnya, Anda dapat menambahkan:
- Pengekspor OpenTelemetry Protocol (OTLP) dan mengirimkannya ke tujuan kedua secara bersamaan
- Pustaka instrumentasi lain yang tidak termasuk dalam distro
Karena Distro menyediakan distribusi OpenTelemetry, Distro mendukung apa pun yang didukung oleh OpenTelemetry. Misalnya, Anda dapat menambahkan lebih banyak prosesor telemetri, pengekspor, atau pustaka instrumentasi, jika OpenTelemetry mendukungnya.
Untuk bahasa yang tidak memiliki pengekspor OpenTelemetry mandiri yang didukung, Azure Monitor OpenTelemetry Distro saat ini adalah satu-satunya cara yang dapat digunakan untuk menggunakan OpenTelemetry dengan Azure Monitor. Untuk bahasa dengan pengekspor OpenTelemetry mandiri yang didukung, Anda memiliki opsi untuk menggunakan Azure Monitor OpenTelemetry Distro atau pengekspor OpenTelemetry mandiri yang sesuai tergantung pada skenario telemetri Anda. Untuk informasi selengkapnya, lihat Kapan saya harus menggunakan pengekspor OpenTelemetry Monitor Azure?.
Haruskah saya menggunakan OpenTelemetry atau Application Insights Classic API SDK?
Sebaiknya gunakan Azure Monitor OpenTelemetry Distro untuk proyek baru.
OpenTelemetry memberikan keuntungan daripada SDK API Klasik Application Insights, termasuk:
- Standardisasi yang lebih baik di seluruh platform
- Ekosistem pustaka instrumentasi yang lebih luas
- Fleksibilitas yang lebih besar dalam pengumpulan dan pemrosesan data
- Peningkatan netralitas vendor, meskipun Azure Monitor OpenTelemetry Distro masih dioptimalkan untuk Azure.
Jika Anda menggunakan .NET atau Node.js SDK API Klasik , lihat Migrasi dari SDK API Klasik Application Insights ke Azure Monitor OpenTelemetry.
Kapan sebaiknya saya menggunakan eksportir OpenTelemetry untuk Azure Monitor?
Untuk ASP.NET Core, Java, Node.js, dan Python, sebaiknya gunakan Distro OpenTelemetry Monitor Azure. Ini adalah satu baris kode untuk memulai.
Untuk semua skenario .NET lainnya, termasuk ASP.NET klasik, aplikasi konsol, Windows Forms (WinForms), dll., sebaiknya gunakan pengekspor OpenTelemetry Monitor .NET Azure: Azure.Monitor.OpenTelemetry.Exporter.
Untuk skenario telemetri Python yang lebih kompleks yang memerlukan konfigurasi tingkat lanjut, sebaiknya gunakan Python Azure Monitor OpenTelemetry Exporter.
Apa status rilis fitur saat ini dalam Azure Monitor OpenTelemetry Distro?
Distro OpenTelemetry Azure Monitor telah mencapai kesetaraan fitur dengan SDK API Klasik Application Insights.
Untuk detail terbaru tentang pengalaman code analysis, lihat .NET Profiler dan Snapshot Debugger.
Dapatkah OpenTelemetry digunakan untuk browser web?
Ya, tetapi kami tidak merekomendasikannya dan Azure tidak mendukungnya. OpenTelemetry JavaScript sangat dioptimalkan untuk Node.js. Sebagai gantinya, sebaiknya gunakan Application Insights JavaScript SDK.
Kapan kita dapat mengharapkan OpenTelemetry SDK tersedia untuk digunakan di browser web?
SDK web OpenTelemetry tidak memiliki garis waktu ketersediaan yang ditentukan. Kemungkinan kita masih beberapa tahun lagi dari memiliki SDK browser yang menjadi alternatif yang layak untuk Application Insights JavaScript SDK.
Dapatkah saya menguji OpenTelemetry di browser web hari ini?
Kotak pasir web OpenTelemetry adalah fork yang dirancang untuk membuat OpenTelemetry berfungsi di browser. Belum dimungkinkan untuk mengirim telemetri ke Application Insights. SDK tidak menentukan peristiwa klien umum.
Apakah menjalankan Application Insights bersama agen pesaing seperti AppDynamics, DataDog, dan NewRelic didukung?
Praktik ini bukan sesuatu yang kami rencanakan untuk diuji atau didukung, meskipun Distro kami memungkinkan Anda ekspor ke titik akhir OTLP bersama Azure Monitor secara bersamaan.
Dapatkah saya menggunakan fitur pratinjau di lingkungan produksi?
Kami tidak merekomendasikannya. Lihat ketentuan penggunaan tambahan untuk pratinjau Microsoft Azure.
Dapatkah saya menggunakan OpenTelemetry Collector?
Beberapa pelanggan menggunakan OpenTelemetry Collector sebagai alternatif agen, meskipun Microsoft belum secara resmi mendukung pendekatan berbasis agen untuk pemantauan aplikasi. Sementara itu, komunitas sumber terbuka berkontribusi dengan OpenTelemetry Collector Azure Monitor Exporter yang digunakan beberapa pelanggan untuk mengirim data ke Azure Monitor Application Insights. Ini tidak didukung oleh Microsoft.
Dalam Grafana, mengapa saya melihat "Status 500"? Tidak dapat memvisualisasikan peristiwa pelacakan menggunakan visualisasi pelacakan"?
Anda mungkin sedang mencoba memvisualisasikan log teks mentah alih-alih pelacakan OpenTelemetry.
Di Application Insights, tabel 'Jejak' menyimpan log teks mentah untuk tujuan diagnostik. Mereka membantu mengidentifikasi dan menghubungkan jejak yang terkait dengan permintaan pengguna, peristiwa lain, dan laporan pengecualian. Namun, tabel 'Jejak' tidak secara langsung berkontribusi pada tampilan transaksi end-to-end (bagan air terjun) dalam alat visualisasi seperti Grafana.
Dengan meningkatnya adopsi praktik cloud-native, terdapat evolusi dalam pengumpulan data telemetri dan istilah yang digunakan. OpenTelemetry menjadi standar untuk mengumpulkan dan melengkapi data telemetri. Dalam konteks ini, istilah 'Jejak' mengambil arti baru. Daripada log mentah, 'Jejak' di OpenTelemetry mengacu pada bentuk telemetri terstruktur yang lebih kaya yang mencakup rentang, yang mewakili unit kerja individu. Rentang ini sangat penting untuk membangun tampilan transaksi terperinci, memungkinkan pemantauan dan diagnostik aplikasi cloud-native yang lebih baik.
Bagaimana cara menginstrumentasi Aplikasi Blazor?
Untuk menginstrumentasikan aplikasi Blazor, pertama-tama identifikasi model penyajian. Blazor Server mendukung instrumentasi berbasis OpenTelemetry penuh. Blazor WebAssembly berjalan di browser dan mendukung instrumentasi terbatas melalui JavaScript.
Dasbor gambaran umum
Bisakah saya menampilkan lebih dari 30 hari data?
Tidak, ada batas data 30 hari yang ditampilkan di dasbor.
Saya melihat kesalahan "sumber daya tidak ditemukan" di dasbor.
Kesalahan "sumber daya tidak ditemukan" dapat terjadi jika Anda memindahkan atau mengganti nama instans Application Insights Anda.
Untuk mengatasi perilaku ini, hapus dasbor default dan pilih Dasbor Aplikasi lagi untuk membuat ulang yang baru.
Di mana saya bisa mendapatkan informasi selengkapnya tentang dasbor Gambaran Umum?
Untuk informasi selengkapnya, lihat dasbor Gambaran Umum Application Insights.
Saluran telemetri
Apakah saluran Application Insights menjamin pengiriman telemetri? Jika tidak, apa skenario di mana telemetri dapat hilang?
Jawaban singkatnya adalah bahwa tidak ada saluran bawaan yang menawarkan jaminan transaksi pengiriman telemetri ke back end.
ServerTelemetryChannel lebih maju dibandingkan dengan InMemoryChannel untuk pengiriman yang dapat diandalkan, tetapi juga hanya melakukan upaya terbaik untuk mengirim telemetri. Telemetri masih dapat hilang dalam beberapa situasi, termasuk skenario umum ini:
- Item dalam memori hilang ketika aplikasi crash.
- Telemetri hilang selama periode masalah jaringan yang berkepanjangan. Telemetri disimpan ke disk lokal selama pemadaman jaringan atau ketika masalah terjadi dengan back end Application Insights. Namun, item yang lebih lama dari 48 jam akan dibuang.
- Lokasi diska asali untuk menyimpan telemetri di Windows adalah %LOCALAPPDATA% atau %TEMP%. Lokasi-lokasi ini biasanya terhubung langsung ke mesin. Jika aplikasi bermigrasi secara fisik dari satu lokasi ke lokasi lain, setiap telemetri yang disimpan di lokasi asli akan hilang.
- Di Azure Web Apps di Windows, lokasi storage disk default adalah D:\local\LocalAppData. Lokasi ini tidak bertahan. Ini dihapus pada saat aplikasi di-restart, peningkatan skala, dan operasi lainnya, yang menyebabkan kehilangan telemetri yang tersimpan di sana. Anda dapat mengambil alih default dan menentukan storage ke lokasi yang bertahan seperti D:\home. Namun, lokasi yang bertahan tersebut dilayani oleh storage jarak jauh sehingga bisa lambat.
Meskipun kemungkinan lebih kecil, saluran juga dapat menyebabkan duplikasi item telemetri. Perilaku ini terjadi ketika ServerTelemetryChannel mencoba ulang karena kegagalan jaringan atau waktu habis, yaitu ketika telemetri sudah dikirimkan ke sistem back end, tetapi respons hilang karena masalah jaringan atau terjadi waktu habis.
Apakah ServerTelemetryChannel bekerja pada sistem selain Windows?
Meskipun nama paket dan namespace-nya menyertakan "WindowsServer," saluran ini didukung pada sistem selain Windows, dengan pengecualian berikut. Pada sistem selain Windows, saluran tidak membuat folder storage lokal secara default. Anda harus membuat folder storage lokal dan mengonfigurasi saluran untuk menggunakannya. Setelah storage lokal dikonfigurasi, saluran berfungsi dengan cara yang sama pada semua sistem.
Nota
Dengan rilis 2.15.0-beta3 dan lebih besar, storage lokal sekarang secara otomatis dibuat untuk Linux, Mac, dan Windows. Untuk sistem non-Windows, SDK akan secara otomatis membuat folder storage lokal berdasarkan logika berikut:
-
${TMPDIR}: Jika${TMPDIR}variabel lingkungan diatur, lokasi ini digunakan. -
/var/tmp: Jika lokasi sebelumnya tidak ada, kami mencoba/var/tmp. -
/tmp: Jika kedua lokasi sebelumnya tidak ada, kami mencobatmp. - Jika tidak ada lokasi tersebut, storage lokal tidak dibuat dan konfigurasi manual masih diperlukan. Untuk detail implementasi lengkap, lihat ini GitHub repo.
Apakah SDK membuat storage lokal sementara? Apakah data dienkripsi pada storage?
SDK menyimpan item telemetri di penyimpanan lokal selama masalah jaringan atau saat pembatasan kecepatan. Data ini tidak dienkripsi secara lokal.
Untuk sistem Windows, SDK secara otomatis membuat folder lokal sementara di direktori %TEMP% atau %LOCALAPPDATA% dan membatasi access hanya untuk administrator dan pengguna saat ini.
Untuk sistem selain Windows, tidak ada storage lokal yang dibuat secara otomatis oleh SDK, sehingga tidak ada data yang disimpan secara lokal secara default.
Nota
Dengan rilis 2.15.0-beta3 dan lebih besar, storage lokal sekarang secara otomatis dibuat untuk Linux, Mac, dan Windows.
Anda dapat membuat direktori storage sendiri dan mengonfigurasi saluran untuk menggunakannya. Dalam hal ini, Anda bertanggung jawab untuk memastikan bahwa direktori tersebut diamankan. Baca selengkapnya tentang perlindungan dan privasi data .
Di mana saya bisa mendapatkan informasi selengkapnya tentang saluran telemetri?
Untuk informasi selengkapnya, lihat Saluran telemetri di Application Insights.
Cari
Berapa banyak data yang disimpan?
Lihat Ringkasan batas.
Bagaimana cara melihat data POST di permintaan server saya?
Kami tidak mencatat data POST secara otomatis, tetapi Anda dapat menggunakan TrackTrace atau panggilan log. Masukkan data POST ke dalam parameter pesan. Anda tidak dapat memfilter pesan dengan cara yang sama seperti memfilter properti, tetapi batas ukurannya lebih panjang.
Mengapa pencarian Fungsi Azure saya tidak mengembalikan hasil?
Azure Functions tidak mencatat string kueri URL.
Di mana saya bisa mendapatkan informasi selengkapnya tentang Pencarian?
Untuk informasi selengkapnya, lihat Pencarian dan Diagnostik.
Diagnostik Transaksi
Mengapa saya melihat satu komponen pada bagan dan komponen lain hanya ditampilkan sebagai dependensi eksternal tanpa detail apa pun?
Kemungkinan alasan:
- Apakah komponen lain diinstrumentasikan dengan Application Insights?
- Apakah komponen tersebut menggunakan SDK Application Insights stabil terbaru?
- Jika komponen ini adalah sumber daya Application Insights terpisah, validasi bahwa Anda memiliki access. Jika Anda memiliki akses dan komponen dilengkapi dengan SDK Application Insights terbaru, beri tahu kami melalui saluran umpan balik di sudut kanan atas.
Saya melihat terdapat baris duplikat untuk ketergantungan. Apakah perilaku ini diharapkan?
Saat ini, kami menampilkan panggilan dependensi keluar yang terpisah dari permintaan masuk. Biasanya, kedua panggilan terlihat identik dengan perbedaan hanya pada durasi akibat perjalanan bolak-balik jaringan. Ikon yang menonjol dan gaya berbeda dari bilah durasi membantu membedakan di antara bilah-bilah tersebut. Apakah presentasi data ini membingungkan? Berikan umpan balik Anda!
Bagaimana dengan perbedaan waktu pada berbagai instance komponen?
Jadwal waktu disesuaikan untuk ketidaksesuaian jam dalam bagan transaksi. Anda dapat melihat tanda waktu yang tepat di panel detail atau dengan menggunakan Analitik Log.
Mengapa pengalaman baru melewatkan sebagian besar kueri terkait item?
Perilaku ini dirancang. Semua item terkait, di semua komponen, sudah tersedia di sisi kiri di bagian atas dan bawah. Pengalaman baru ini memiliki dua item terkait yang tidak termasuk di sisi kiri: semua telemetri dari lima menit sebelum dan sesudah peristiwa ini serta timeline pengguna.
Apakah ada cara untuk melihat lebih sedikit peristiwa per transaksi saat saya menggunakan Application Insights JavaScript SDK?
Pengalaman diagnostik transaksi menunjukkan semua telemetri dalam satu operasi yang berbagi ID Operasional. Secara default, SDK Application Insights untuk JavaScript membuat operasi baru untuk setiap tampilan halaman unik. Dalam aplikasi satu halaman (SPA), hanya satu peristiwa tampilan halaman yang dihasilkan dan satu ID Operasi digunakan untuk semua telemetri yang dihasilkan. Akibatnya, banyak peristiwa mungkin berkorelasi dengan operasi yang sama.
Dalam skenario ini, Anda dapat menggunakan Pelacakan Rute Otomatis untuk membuat operasi baru secara otomatis untuk navigasi di SPA Anda. Anda harus mengaktifkan enableAutoRouteTracking sehingga tampilan halaman dihasilkan setiap kali rute URL diperbarui (tampilan halaman logis terjadi). Jika Anda ingin me-refresh ID Operasi secara manual, panggil appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId(). Memicu peristiwa PageView secara manual juga mengatur ulang ID Operasi.
Mengapa durasi detail transaksi tidak menambahkan hingga durasi permintaan teratas?
Waktu yang tidak dijelaskan dalam bagan Gantt adalah waktu yang tidak tercakup oleh dependensi terlacak. Masalah ini dapat terjadi karena panggilan eksternal tidak diinstrumentasikan, baik secara otomatis atau manual. Ini juga dapat terjadi karena waktu yang digunakan untuk pemrosesan daripada karena panggilan eksternal.
Jika semua panggilan diinstrumentasi, proses yang berjalan kemungkinan merupakan penyebab utama untuk waktu yang dihabiskan. Alat yang berguna untuk mendiagnosis prosesnya adalah .NET Profiler.
Bagaimana jika saya melihat pesan "Kesalahan mengambil data" saat menavigasi Application Insights di Azure portal?
Kesalahan ini menunjukkan bahwa browser tersebut tidak dapat memanggil API yang diperlukan atau API mengembalikan respon kegagalan. Untuk memecahkan masalah perilaku, buka jendela InPrivate browser dan nonaktifkan ekstensi browser apa pun yang berjalan, lalu identifikasi apakah Anda masih dapat mereproduksi perilaku portal. Jika kesalahan portal masih terjadi, coba uji dengan browser lain, atau komputer lain, selidiki DNS atau masalah terkait jaringan lainnya dari komputer klien tempat panggilan API gagal. Jika kesalahan portal berlanjut dan membutuhkan lebih banyak penyelidikan, kumpulkan jejak jaringan browser saat mereproduksi perilaku portal yang tidak terduga, lalu buka kasus dukungan dari portal Azure.
Di mana saya bisa mendapatkan informasi selengkapnya tentang Diagnostik Transaksi?
Untuk informasi selengkapnya, lihat Menyelidiki kegagalan, performa, dan transaksi dengan Application Insights.
Analisis penggunaan
Apakah peristiwa awal mewakili pertama kalinya peristiwa muncul dalam sesi atau kapan saja muncul dalam sesi?
Peristiwa awal pada visualisasi hanya mewakili saat pertama kali pengguna mengirim tampilan halaman atau peristiwa kustom tersebut selama sesi. Jika pengguna dapat mengirim peristiwa awal beberapa kali dalam sesi, maka kolom Langkah 1 hanya menunjukkan bagaimana pengguna bereaksi setelah instans pertama peristiwa awal, bukan semua instans.
Beberapa simpul dalam visualisasi saya memiliki tingkat yang terlalu tinggi. Bagaimana cara mendapatkan simpul yang lebih rinci?
Gunakan opsi Pisahkan menurut pada menu Edit:
Pilih acara yang ingin Anda uraikan di menu Peristiwa .
Pilih dimensi pada menu Dimensi . Misalnya, jika Anda memiliki peristiwa yang disebut Tombol Diklik, coba properti kustom yang disebut Nama Tombol.
Saya menentukan kelompok pengguna dari negara atau wilayah tertentu. Saat saya membandingkan kohor ini di alat Pengguna untuk mengatur filter di negara/wilayah tersebut, mengapa saya melihat hasil yang berbeda?
Kohor dan filter adalah berbeda. Misalkan Anda memiliki kohor pengguna dari Inggris Raya (didefinisikan seperti contoh sebelumnya), dan Anda membandingkan hasilnya dengan mengatur filter Country or region = United Kingdom:
Versi kohor menampilkan semua acara dari pengguna yang mengirim satu atau beberapa acara dari Britania Raya dalam rentang waktu saat ini. Jika Anda melakukan pemisahan menurut negara atau wilayah, kemungkinan Anda akan melihat banyak negara dan wilayah.
Versi filter hanya menampilkan peristiwa dari Inggris Raya. Jika Anda memisahkan berdasarkan negara atau wilayah, Anda hanya melihat Inggris Raya.
Bagaimana saya bisa melihat data pada tingkatan yang berbeda (harian, bulanan, atau mingguan)?
Anda dapat memilih filter Tingkat Kehalusan Tanggal untuk mengubah tingkat kehalusan. Filter tersedia di semua tab dimensi.
Bagaimana cara mengakses wawasan dari aplikasi saya yang tidak tersedia di buku kerja HEART?
Anda dapat menggali data yang mengisi buku kerja HEART jika visual tidak menjawab semua pertanyaan Anda. Untuk melakukan tugas ini, di bawah bagian Monitoring di Application Insights, pilih Logs, dan mengkueri tabel customEvents. Beberapa atribut Click Analytics terkandung dalam customDimensions bidang .
Contoh kueri diperlihatkan di sini:
customEvents
| where isnotnull(customDimensions.actionType)
| extend parentid=tostring(customDimensions.parenId),
pagename=tostring(customDimensions.pageName),
actiontype=tostring(customDimensions.actionType)
| project actiontype,parentid,pagename,
user_AuthenticatedId,user_Id,session_Id,itemType,timestamp
Untuk mempelajari selengkapnya tentang Log di Azure Monitor, lihat ringkasan log Azure Monitor.
Bisakah saya mengedit visual di buku kerja?
Ya. Untuk mempelajari cara mengedit templat buku kerja, lihat templat Azure Buku Kerja.
Di mana saya bisa mendapatkan informasi selengkapnya tentang analisis penggunaan?
Untuk informasi selengkapnya, lihat Analisis penggunaan dengan Application Insights.
Aplikasi Layanan Pekerja
Paket mana yang harus saya gunakan?
| skenario aplikasi .NET Core | Paket |
|---|---|
| Tanpa HostedServices | WorkerService |
| Dengan HostedServices | AspNetCore (bukan WorkerService) |
| Dengan HostedServices, hanya memantau HostedServices | WorkerService (skenario langka) |
Dapatkah HostedServices di dalam aplikasi .NET Core yang menggunakan paket AspNetCore memiliki TelemetryClient yang disuntikkan ke dalamnya?
Ya, konfigurasi dibagikan dengan aplikasi web lainnya.
Bagaimana cara melacak telemetri yang tidak dikumpulkan secara otomatis?
Peroleh instans TelemetryClient dengan menggunakan injeksi konstruktor dan panggil metode TrackXXX() yang diperlukan padanya. Kami tidak menyarankan untuk membuat instans TelemetryClient baru. Instans TelemetryClient tunggal sudah terdaftar di dalam kontainer DependencyInjection, yang menggunakan TelemetryConfiguration bersama dengan elemen telemetri lainnya. Membuat instans TelemetryClient baru hanya disarankan jika perlu konfigurasi yang terpisah dari telemetri lainnya.
Dapatkah saya menggunakan IDE Visual Studio untuk mengintegrasikan Application Insights ke proyek Layanan Pekerja?
Visual Studio onboarding IDE saat ini hanya didukung untuk aplikasi ASP.NET/ASP.NET Core. Dokumen ini diperbarui ketika Visual Studio merilis dukungan untuk penerapan aplikasi Layanan Pekerja.
Dapatkah saya mengaktifkan pemantauan Application Insights dengan menggunakan alat seperti Azure Monitor Agen Application Insights (sebelumnya Status Monitor v2)?
Tidak. Azure Monitor Application Insights Agent saat ini hanya mendukung .NET.
Apakah semua fitur didukung jika saya menjalankan aplikasi saya di Linux?
Ya. Dukungan fitur untuk SDK sama di semua platform, dengan pengecualian berikut:
Penghitung kinerja hanya didukung di Windows kecuali untuk Proses CPU/Memori yang ditampilkan dalam metrik langsung.
Meskipun
ServerTelemetryChanneldiaktifkan secara default, jika aplikasi berjalan di Linux atau macOS, saluran tidak secara otomatis membuat folder storage lokal untuk menyimpan telemetri sementara jika ada masalah jaringan. Karena keterbatasan ini, telemetri akan hilang saat ada masalah jaringan atau server sementara. Untuk mengatasi masalah ini, konfigurasikan folder lokal untuk saluran:using Microsoft.ApplicationInsights.Channel; using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel; public void ConfigureServices(IServiceCollection services) { // The following will configure the channel to use the given folder to temporarily // store telemetry items during network or Application Insights server issues. // User should ensure that the given folder already exists // and that the application has read/write permissions. services.AddSingleton(typeof(ITelemetryChannel), new ServerTelemetryChannel () {StorageFolder = "/tmp/myfolder"}); services.AddApplicationInsightsTelemetryWorkerService(); }
Di mana saya bisa mendapatkan informasi selengkapnya tentang aplikasi Layanan Pekerja?
Untuk informasi selengkapnya, lihat Application Insights untuk aplikasi Layanan Pekerja (aplikasi non-HTTP).