Bagikan melalui


Mengaktifkan pemantauan aplikasi di Azure App Service untuk aplikasi .NET, Node.js, Python, dan Java

Autoinstrumentasi, juga disebut sebagai pemantauan runtime , adalah cara term mudah untuk mengaktifkan Application Insights untuk Azure App Service tanpa memerlukan perubahan kode atau konfigurasi tingkat lanjut. Berdasarkan skenario spesifik Anda, evaluasi apakah Anda memerlukan pemantauan yang lebih canggih melalui instrumentasi manual.

Catatan

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

Mengaktifkan Application Insights

Penting

Jika pemantauan autoinstrumentasi dan instrumentasi berbasis SDK manual terdeteksi, hanya pengaturan instrumentasi manual yang dihormati. Pengaturan ini mencegah data duplikat dikirim. Untuk mempelajari selengkapnya, lihat Pemecahan Masalah.

Catatan

Autoinstrumentasi di portal Azure

  1. Pilih Application Insights di menu navigasi sebelah kiri layanan aplikasi Anda, lalu pilih Aktifkan.

     Cuplikan layar yang memperlihatkan tab Application Insights dengan Aktifkan dipilih.

  2. Buat sumber daya baru atau pilih sumber daya Application Insights yang ada untuk aplikasi ini.

    Catatan

    Saat Anda memilih OK untuk membuat sumber daya baru, Anda akan diminta untuk Menerapkan pengaturan pemantauan. Memilih Lanjutkan menautkan sumber daya Application Insights baru Anda ke layanan aplikasi Anda. Layanan aplikasi Anda kemudian dimulai ulang.

    Cuplikan layar yang memperlihatkan menu dropdown Ubah sumber daya Anda.

  3. Setelah menentukan sumber daya mana yang akan digunakan, Anda dapat memilih bagaimana Anda ingin Application Insights mengumpulkan data per platform untuk aplikasi Anda. ASP.NET Opsi pengumpulan inti Direkomendasikan atau Dinonaktifkan.

     Cuplikan layar yang memperlihatkan bagian melengkapi aplikasi Anda.

Meningkatkan ekstensi/agen pemantauan secara manual

Tingkatkan dari versi 2.8.9 dan yang lebih tinggi

Pemutakhiran dari versi 2.8.9 terjadi secara otomatis, tanpa tindakan tambahan. Bit pemantauan baru dikirimkan di latar belakang ke layanan aplikasi target, dan diambil pada mulai ulang aplikasi.

Untuk memeriksa versi ekstensi yang Anda jalankan, buka https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

Cuplikan layar yang memperlihatkan jalur URL untuk memeriksa versi ekstensi yang Anda jalankan.

Upgrade dari versi 1.0.0 - 2.6.5

Dimulai dengan versi 2.8.9, ekstensi situs yang telah diinstal sebelumnya digunakan. Jika Anda menggunakan versi yang lebih lama, Anda dapat memperbarui melalui salah satu dari dua cara:

Jika peningkatan dilakukan dari versi sebelum 2.5.1, periksa apakah ApplicationInsights DLL dihapus dari folder bin aplikasi. Untuk informasi selengkapnya, lihat Pemecahan masalah.

Mengonfigurasi ekstensi/agen pemantauan

Saat ini kami tidak menawarkan opsi untuk mengonfigurasi ekstensi pemantauan untuk ASP.NET Core.

Aktifkan pemantauan sisi klien

Pemantauan sisi klien diaktifkan secara default untuk aplikasi ASP.NET Core dengan Koleksi yang Direkomendasikan , terlepas dari apakah pengaturan APPINSIGHTS_JAVASCRIPT_ENABLED aplikasi ada.

Jika Anda ingin menonaktifkan pemantauan sisi klien:

  1. Pilih Pengaturan>Konfigurasi.

  2. Di bawah Pengaturan aplikasi, buat pengaturan Aplikasi baru dengan informasi berikut:

    • Nama: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Nilai: false
  3. Simpan pengaturan. Mulai ulang aplikasi.

Mengotomatiskan pemantauan

Untuk mengaktifkan koleksi telemetri dengan Application Insights, hanya pengaturan Aplikasi yang perlu diatur:

Cuplikan layar yang memperlihatkan pengaturan aplikasi App Service dengan pengaturan Application Insights.

Definisi pengaturan aplikasi

Nama pengaturan aplikasi Definisi Nilai
ApplicationInsightsAgent_EXTENSION_VERSION Ekstensi utama, yang mengontrol pemantauan runtime. ~2 untuk Windows atau ~3 untuk Linux
XDT_MicrosoftApplicationInsights_Mode Dalam mode default, hanya fitur penting yang diaktifkan untuk memastikan kinerja optimal. disabled atau recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk Hanya untuk ASP.NET Core. Mengaktifkan Interop (interopasi) dengan Application Insights SDK. Memuat ekstensi berdampingan dengan SDK dan menggunakannya untuk mengirim telemetri. (Menonaktifkan Application Insights SDK.) 1

Pengaturan aplikasi App Service dengan Azure Resource Manager

Pengaturan aplikasi untuk Azure App Service dapat dikelola dan dikonfigurasi dengan templat Azure Resource Manager. Anda dapat menggunakan metode ini saat menyebarkan sumber daya App Service baru dengan otomatisasi Resource Manager atau mengubah pengaturan sumber daya yang ada.

Struktur dasar pengaturan aplikasi JSON untuk sumber daya App Service:

      "resources": [
        {
          "name": "appsettings",
          "type": "config",
          "apiVersion": "2015-08-01",
          "dependsOn": [
            "[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
          ],
          "tags": {
            "displayName": "Application Insights Settings"
          },
          "properties": {
            "key1": "value1",
            "key2": "value2"
          }
        }
      ]

Untuk membuat templat Resource Manager dengan pengaturan Application Insights default, mulai proses seolah-olah Anda akan membuat aplikasi web baru dengan Application Insights diaktifkan.

  1. Buat sumber daya App Service baru dengan informasi aplikasi web yang Anda inginkan. Aktifkan Application Insights pada tab Pemantauan .

  2. Pilih Tinjau + buat. Lalu pilih Unduh templat untuk otomatisasi.

    Cuplikan layar yang memperlihatkan menu pembuatan aplikasi web App Service.

    Opsi ini menghasilkan templat Resource Manager terbaru dengan semua pengaturan yang diperlukan dikonfigurasi.

    Cuplikan layar yang memperlihatkan templat aplikasi web App Service.

Dalam sampel berikut, ganti semua instans AppMonitoredSite dengan nama situs Anda:

Catatan

Jika menggunakan Windows, atur ApplicationInsightsAgent_EXTENSION_VERSION ke ~2. Jika menggunakan Linux, atur ApplicationInsightsAgent_EXTENSION_VERSION ke ~3.

{
    "resources": [
        {
            "name": "[parameters('name')]",
            "type": "Microsoft.Web/sites",
            "properties": {
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
                            "value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
                        },
                        {
                            "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
                            "value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
                        },
                        {
                            "name": "ApplicationInsightsAgent_EXTENSION_VERSION",
                            "value": "~2"
                        }
                    ]
                },
                "name": "[parameters('name')]",
                "serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "hostingEnvironment": "[parameters('hostingEnvironment')]"
            },
            "dependsOn": [
                "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
                "microsoft.insights/components/AppMonitoredSite"
            ],
            "apiVersion": "2016-03-01",
            "location": "[parameters('location')]"
        },
        {
            "apiVersion": "2016-09-01",
            "name": "[parameters('hostingPlanName')]",
            "type": "Microsoft.Web/serverfarms",
            "location": "[parameters('location')]",
            "properties": {
                "name": "[parameters('hostingPlanName')]",
                "workerSizeId": "[parameters('workerSize')]",
                "numberOfWorkers": "1",
                "hostingEnvironment": "[parameters('hostingEnvironment')]"
            },
            "sku": {
                "Tier": "[parameters('sku')]",
                "Name": "[parameters('skuCode')]"
            }
        },
        {
            "apiVersion": "2015-05-01",
            "name": "AppMonitoredSite",
            "type": "microsoft.insights/components",
            "location": "West US 2",
            "properties": {
                "ApplicationId": "[parameters('name')]",
                "Request_Source": "IbizaWebAppExtensionCreate"
            }
        }
    ],
    "parameters": {
        "name": {
            "type": "string"
        },
        "hostingPlanName": {
            "type": "string"
        },
        "hostingEnvironment": {
            "type": "string"
        },
        "location": {
            "type": "string"
        },
        "sku": {
            "type": "string"
        },
        "skuCode": {
            "type": "string"
        },
        "workerSize": {
            "type": "string"
        },
        "serverFarmResourceGroup": {
            "type": "string"
        },
        "subscriptionId": {
            "type": "string"
        }
    },
    "$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0"
}

Mengaktifkan melalui PowerShell

Untuk mengaktifkan pemantauan aplikasi melalui PowerShell, hanya pengaturan aplikasi yang mendasar yang harus diubah. Sampel berikut memungkinkan pemantauan aplikasi untuk situs web yang disebut AppMonitoredSite dalam grup AppMonitoredRGsumber daya . Ini mengonfigurasi data yang akan dikirim ke 012345678-abcd-ef01-2345-6789abcd kunci instrumentasi.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Catatan

Jika menggunakan Windows, atur ApplicationInsightsAgent_EXTENSION_VERSION ke ~2. Jika menggunakan Linux, atur ApplicationInsightsAgent_EXTENSION_VERSION ke ~3.

$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop

Tanya jawab umum

Bagian ini menyediakan jawaban atas pertanyaan umum.

Apa yang diubah oleh Application Insights dalam proyek saya?

Detailnya tergantung pada jenis proyek. Daftar berikut adalah contoh untuk aplikasi web.

  • Menambahkan file ke proyek Anda:

    • 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 rakitan 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 menambahkan Application Insights ke proyek yang sudah 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 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.

Pemecahan Masalah

Menguji konektivitas antara host aplikasi Anda dan layanan penyerapan

Application Insights SDK dan agen mengirim telemetri untuk diserap sebagai panggilan REST ke titik akhir penyerapan kami. Anda dapat menguji konektivitas dari server web atau komputer host aplikasi Anda ke titik akhir layanan penyerapan dengan menggunakan klien REST mentah dari PowerShell atau perintah curl. Lihat Memecahkan masalah telemetri aplikasi yang hilang di Azure Monitor Application Insights.

Catatan

Saat Anda membuat aplikasi web dengan ASP.NET Core runtime di App Service, aplikasi tersebut menyebarkan satu halaman HTML statis sebagai situs web pemula. Kami tidak menyarankan Anda memecahkan masalah dengan templat default. Sebarkan aplikasi sebelum Anda memecahkan masalah.

Telemetri hilang

Windows

  1. Periksa apakah ApplicationInsightsAgent_EXTENSION_VERSION pengaturan aplikasi diatur ke nilai ~2.

  2. Telusuri https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

    Cuplikan layar yang memperlihatkan tautan di atas halaman hasil.

    • Konfirmasikan bahwa Status Ekstensi Application Insights adalah Pre-Installed Site Extension, version 2.8.x.xxxx, is running.

      Jika tidak berjalan, ikuti instruksi di bagian Mengaktifkan pemantauan Application Insights.

    • Konfirmasikan bahwa sumber status ada dan terlihat seperti Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.

      Jika nilai serupa tidak ada, itu berarti aplikasi saat ini tidak berjalan atau tidak didukung. Untuk memastikan bahwa aplikasi berjalan, coba kunjungi url aplikasi/titik akhir aplikasi secara manual, yang memungkinkan informasi runtime tersedia.

    • Konfirmasikan bahwa IKeyExists adalah True. Jika False, tambahkan APPINSIGHTS_INSTRUMENTATIONKEY dan APPLICATIONINSIGHTS_CONNECTION_STRING dengan panduan kunci GUID ke pengaturan aplikasi Anda.

    • Jika aplikasi Anda mengacu pada paket Application Insights apa pun, mengaktifkan integrasi App Service mungkin tidak berlaku, dan data mungkin tidak muncul di Application Insights. Contohnya adalah jika Anda sebelumnya melengkapi, atau mencoba melengkapi, aplikasi Anda dengan ASP.NET Core SDK. Untuk memperbaiki masalah ini, di portal Azure, aktifkan Interop dengan Application Insights SDK.

      Penting

      Fungsionalitas ini dalam pratinjau.

       Cuplikan layar yang memperlihatkan pengaturan interop diaktifkan.

      Data dikirim menggunakan pendekatan tanpa kode, bahkan jika Application Insights SDK awalnya digunakan atau dicoba untuk digunakan.

      Penting

      Jika aplikasi menggunakan Application Insights SDK untuk mengirim telemetri apa pun, telemetri akan dinonaktifkan. Dengan kata lain, telemetri kustom (misalnya, metode apa pun Track*() ) dan pengaturan kustom (seperti pengambilan sampel) akan dinonaktifkan.

Linux

  1. Periksa apakah ApplicationInsightsAgent_EXTENSION_VERSION pengaturan aplikasi diatur ke nilai ~3.

  2. Telusuri https://your site name.scm.azurewebsites.net/ApplicationInsights.

  3. Dalam situs ini, konfirmasikan:

    • Sumber status ada dan terlihat seperti Status source /var/log/applicationinsights/status_abcde1234567_89_0.json.
    • Nilai Auto-Instrumentation enabled successfully ditampilkan. Jika nilai serupa tidak ada, itu berarti aplikasi tidak berjalan atau tidak didukung. Untuk memastikan bahwa aplikasi berjalan, coba kunjungi url aplikasi/titik akhir aplikasi secara manual, yang memungkinkan informasi runtime tersedia.
    • IKeyExists adalah True. Jika False, tambahkan APPINSIGHTS_INSTRUMENTATIONKEY dan APPLICATIONINSIGHTS_CONNECTION_STRING dengan panduan kunci GUID ke pengaturan aplikasi Anda.

    Cuplikan layar yang memperlihatkan halaman web status autoinstrumentasi.

Situs web default yang diterapkan dengan aplikasi web tidak mendukung pemantauan sisi klien otomatis

Saat Anda membuat aplikasi web dengan runtime ASP.NET Core di App Service, aplikasi ini menyebarkan satu halaman HTML statis sebagai situs web pemula. Halaman web statis juga memuat ASP. Bagian web yang dikelola NET di IIS. Perilaku ini memungkinkan pengujian pemantauan sisi server tanpa kode tetapi tidak mendukung pemantauan sisi klien otomatis.

Jika Anda ingin menguji server tanpa kode dan pemantauan sisi klien untuk ASP.NET Core di aplikasi web App Service, sebaiknya ikuti panduan resmi untuk membuat aplikasi web ASP.NET Core. Setelah itu, gunakan instruksi dalam artikel saat ini untuk mengaktifkan pemantauan.

Situs PHP dan WordPress tidak didukung

Situs PHP dan WordPress tidak didukung. Saat ini tidak ada SDK/agen yang didukung secara resmi untuk pemantauan beban kerja dari sisi server. Untuk melacak transaksi sisi klien di situs PHP atau WordPress, tambahkan JavaScript sisi klien ke halaman web Anda menggunakan JavaScript SDK.

Tabel berikut ini memberikan penjelasan tentang apa arti nilai-nilai ini, penyebab mendasarnya, dan perbaikan yang direkomendasikan.

Nilai masalah Penjelasan Perbaikan
AppAlreadyInstrumented:true Nilai ini menunjukkan bahwa ekstensi mendeteksi beberapa aspek SDK yang sudah ada di aplikasi dan mundur. Referensi ke Microsoft.ApplicationInsights.AspNetCore atau Microsoft.ApplicationInsights dapat menyebabkan nilai ini. Hapus referensi. Beberapa referensi ini ditambahkan secara default dari templat Visual Studio tertentu. Versi lama referensi Microsoft.ApplicationInsightsVisual Studio .
AppAlreadyInstrumented:true Kehadiran Microsoft.ApplicationsInsights DLL di folder aplikasi dari penyebaran sebelumnya juga dapat menyebabkan nilai ini. Bersihkan folder aplikasi untuk memastikan bahwa DLL ini dihapus. Periksa direktori bin aplikasi lokal Anda dan direktori wwwroot di App Service. (Untuk memeriksa direktori wwwroot aplikasi web App Service Anda, pilih Konsol Debug Advanced Tools (Kudu) >CMD>home\site\wwwroot).>
IKeyExists:false Nilai ini menunjukkan bahwa kunci instrumentasi tidak ada di pengaturan APPINSIGHTS_INSTRUMENTATIONKEYaplikasi . Kemungkinan penyebabnya termasuk menghapus nilai secara tidak sengaja atau lupa mengatur nilai dalam skrip otomatisasi. Pastikan pengaturan ada di pengaturan App Service.