Aracılığıyla paylaş


.NET, Node.js, Python ve Java uygulamaları için Azure Uygulaması Hizmeti'nde uygulama izlemeyi etkinleştirme

Çalışma zamanı izleme olarak da adlandırılan otomatik yetkisiz erişim, kod değişikliği veya gelişmiş yapılandırma gerektirmeden Azure Uygulaması Hizmeti için Application Insights'ı etkinleştirmenin en kolay yoludur. Belirli senaryonuza bağlı olarak, el ile izleme aracılığıyla daha gelişmiş izleme gerekip gerekmediğini değerlendirin.

Not

31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizesi geçiş.

Application Insights’ı Etkinleştir

Önemli

Hem otomatik yetkisiz erişim izleme hem de el ile SDK tabanlı izleme algılanırsa, yalnızca el ile izleme ayarları kabul edilir. Bu düzenleme yinelenen verilerin gönderilmesini engeller. Daha fazla bilgi edinmek için bkz . Sorun giderme.

Not

Azure portalında otomatik yetkisiz erişim

  1. Uygulama hizmetinizin sol gezinti menüsünde Application Insights'ı ve ardından Etkinleştir'i seçin.

     Etkinleştir'in seçili olduğu Application Insights sekmesini gösteren ekran görüntüsü.

  2. Bu uygulama için yeni bir kaynak oluşturun veya mevcut bir Application Insights kaynağını seçin.

    Not

    Yeni bir kaynak oluşturmak için Tamam'ı seçtiğinizde, İzleme ayarlarını uygula seçeneğini belirlemeniz istenir. Devam'ı seçtiğinizde yeni Application Insights kaynağınız app service'inize bağlanır. Ardından uygulama hizmetiniz yeniden başlatılır.

    Kaynağınızı değiştirin açılan listesini gösteren ekran görüntüsü.

  3. Hangi kaynağın kullanılacağını belirttikten sonra Application Insights'ın uygulamanız için platform başına veri toplamasını nasıl istediğinizi seçebilirsiniz. ASP.NET Çekirdek koleksiyonu seçenekleri Önerilen veya Devre Dışı'dır.

     Uygulama bölümünüzü izleme işlemini gösteren ekran görüntüsü.

İzleme uzantısını/aracısını el ile yükseltme

2.8.9 ve sonraki sürümlerden yükseltme

Sürüm 2.8.9'dan yükseltme, ek işlem yapılmadan otomatik olarak gerçekleşir. Yeni izleme bitleri arka planda hedef uygulama hizmetine teslim edilir ve uygulama yeniden başlatıldığında alınır.

Uzantının hangi sürümünü çalıştırdığınızı denetlemek için adresine https://yoursitename.scm.azurewebsites.net/ApplicationInsightsgidin.

Çalıştırdığınız uzantının sürümünü denetlemek için URL yolunu gösteren ekran görüntüsü.

1.0.0 - 2.6.5 sürümlerinden yükseltme

Sürüm 2.8.9'dan başlayarak, önceden yüklenmiş site uzantısı kullanılır. Önceki bir sürümü kullanıyorsanız, iki yoldan biriyle güncelleştirebilirsiniz:

  • Azure portalı aracılığıyla etkinleştirerek yükseltme: App Service için Application Insights uzantısı yüklü olsa bile, kullanıcı arabiriminde yalnızca Etkinleştir düğmesi gösterilir. Arka planda eski özel site uzantısı kaldırılır.

  • PowerShell aracılığıyla yükseltme:

    1. Önceden yüklenmiş site uzantısını ApplicationInsightsAgentetkinleştirmek için uygulama ayarlarını yapın. Daha fazla bilgi için bkz . PowerShell aracılığıyla etkinleştirme.
    2. Azure Uygulaması Hizmeti için Application Insights uzantısı adlı özel site uzantısını el ile kaldırın.

Yükseltme 2.5.1'den önceki bir sürümden yapılırsa, DLL'lerin uygulama bölmesi klasöründen kaldırılıp kaldırılmadığını ApplicationInsights denetleyin. Daha fazla bilgi için bkz. Sorun giderme.

İzleme uzantısını/aracısını yapılandırma

Şu anda ASP.NET Core için izleme uzantısını yapılandırma seçenekleri sunmıyoruz.

İstemci Tarafı İzlemeyi Etkinleştirme

İstemci tarafı izleme, uygulama ayarının APPINSIGHTS_JAVASCRIPT_ENABLED mevcut olup olmamasına bakılmaksızın Önerilen koleksiyona sahip ASP.NET Core uygulamaları için varsayılan olarak etkinleştirilir.

İstemci tarafı izlemeyi devre dışı bırakmak istiyorsanız:

  1. Ayarlar>Yapılandırma'yı seçin.

  2. Uygulama ayarları'nın altında, aşağıdaki bilgileri içeren yeni bir uygulama ayarı oluşturun:

    • Ad: APPINSIGHTS_JAVASCRIPT_ENABLED
    • Değer: false
  3. Ayarları kaydedin . Uygulamanızı yeniden başlatın.

İzlemeyi otomatikleştirme

Application Insights ile telemetri koleksiyonunu etkinleştirmek için yalnızca aşağıdaki Uygulama ayarlarının ayarlanması gerekir:

Application Insights ayarlarını içeren App Service uygulama ayarlarını gösteren ekran görüntüsü.

Uygulama ayarları tanımları

Uygulama ayarı adı Tanım Değer
ApplicationInsightsAgent_EXTENSION_VERSION Çalışma zamanı izlemeyi denetleyen ana uzantı. ~2 Windows veya ~3 Linux için
XDT_MicrosoftApplicationInsights_Mode Varsayılan modda, en iyi performansı sağlamak için yalnızca temel özellikler etkinleştirilir. disabled veya recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk Yalnızca ASP.NET Core uygulamaları için. Application Insights SDK'sı ile Birlikte Çalışma (birlikte çalışma) sağlar. Uzantıyı SDK ile yan yana yükler ve telemetri göndermek için kullanır. (Application Insights SDK'sını devre dışı bırakır.) 1

Azure Resource Manager ile App Service uygulama ayarları

Azure Uygulaması Hizmeti için uygulama ayarları Azure Resource Manager şablonlarıyla yönetilebilir ve yapılandırılabilir. Resource Manager otomasyonu ile yeni App Service kaynaklarını dağıtırken veya mevcut kaynakların ayarlarını değiştirirken bu yöntemi kullanabilirsiniz.

App Service kaynağı için uygulama ayarları JSON'un temel yapısı:

      "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"
          }
        }
      ]

Varsayılan Application Insights ayarlarıyla bir Resource Manager şablonu oluşturmak için, Application Insights'ın etkin olduğu yeni bir web uygulaması oluşturacak gibi işlemi başlatın.

  1. İstediğiniz web uygulaması bilgileriyle yeni bir App Service kaynağı oluşturun. İzleme sekmesinde Application Insights'i etkinleştirin.

  2. Gözden geçir ve oluştur’u seçin. Ardından Otomasyon için şablon indir'i seçin.

    App Service web uygulaması oluşturma menüsünü gösteren ekran görüntüsü.

    Bu seçenek, tüm gerekli ayarların yapılandırıldığı en son Resource Manager şablonunu oluşturur.

    App Service web uygulaması şablonunu gösteren ekran görüntüsü.

Aşağıdaki örnekte, tüm örneklerini AppMonitoredSite site adınız ile değiştirin:

Not

Windows kullanıyorsanız olarak ayarlayın ApplicationInsightsAgent_EXTENSION_VERSION ~2. Linux kullanıyorsanız olarak ayarlayın ApplicationInsightsAgent_EXTENSION_VERSION ~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"
}

PowerShell aracılığıyla etkinleştirme

PowerShell aracılığıyla uygulama izlemeyi etkinleştirmek için yalnızca temel uygulama ayarlarının değiştirilmesi gerekir. Aşağıdaki örnek, kaynak grubunda AppMonitoredRGadlı AppMonitoredSite bir web sitesi için uygulama izlemeyi etkinleştirir. İzleme anahtarına gönderilecek 012345678-abcd-ef01-2345-6789abcd verileri yapılandırıyor.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Not

Windows kullanıyorsanız, ApplicationInsightsAgent_EXTENSION_VERSION olarak ~2ayarlayın. Linux kullanıyorsanız, ApplicationInsightsAgent_EXTENSION_VERSION olarak ~3ayarlayın.

$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

Sık sorulan sorular

Bu bölüm, sık sorulan soruların yanıtlarını sağlar.

Application Insights projemde neleri değiştiriyor?

Ayrıntılar projenin türüne bağlıdır. Aşağıdaki liste bir web uygulaması örneğidir.

  • Projenize dosya ekler:

    • ApplicationInsights.config
    • ai.js
  • NuGet paketlerini yükler:

    • Application Insights API'si: Çekirdek API
    • Web Uygulamaları için Application Insights API'si: Sunucudan telemetri göndermek için kullanılır
    • JavaScript Uygulamaları için Application Insights API'si: İstemciden telemetri göndermek için kullanılır
  • Paketlerde derlemeleri içerir:

    • Microsoft.ApplicationInsights
    • Microsoft.ApplicationInsights.Platform
  • Öğeleri şu öğelere ekler:

    • Web.config
    • packages.config
  • Kod parçacıklarını Application Insights kaynak kimliğiyle başlatmak için istemci ve sunucu koduna ekler. Örneğin, bir MVC uygulamasında kod, Views/Shared/_Layout.cshtml ana sayfasına eklenir. Yalnızca yeni projeler için, mevcut bir projeye Application Insights'ı el ile eklersiniz.

Application Insights ile Azure Uygulaması Hizmeti ölçümleri arasındaki standart ölçümler arasındaki fark nedir?

Application Insights, uygulamaya yapılan istekler için telemetri toplar. WebApps/WebServer'da hata oluşursa ve istek kullanıcı uygulamasına ulaşmadıysa, Application Insights'ın bu konuda telemetrisi yoktur.

Application Insights tarafından hesaplanan süre serverresponsetime , Web Apps tarafından gözlemlenen sunucu yanıt süresiyle eşleşmelidir. Bunun nedeni Application Insights'ın yalnızca isteğin kullanıcı uygulamasına ulaştığı süreyi saymadır. İstek WebServer'da takılır veya kuyruğa alınırsa, bekleme süresi Web Apps ölçümlerine dahil edilir ancak Application Insights ölçümlerine eklenmez.

Sorun giderme

Uygulama konağınızla alma hizmeti arasındaki bağlantıyı test etme

Application Insights SDK'ları ve aracıları, alma uç noktalarımıza REST çağrıları olarak alınabilmek için telemetri gönderir. PowerShell veya curl komutlarından ham REST istemcilerini kullanarak web sunucunuzdan veya uygulama konak makinenizden alma hizmeti uç noktalarına bağlantıyı test edebilirsiniz. Bkz . Azure İzleyici Application Insights'ta eksik uygulama telemetrisi sorunlarını giderme.

Not

App Service'te çalışma zamanlarıyla ASP.NET Core bir web uygulaması oluşturduğunuzda, başlangıç web sitesi olarak tek bir statik HTML sayfası dağıtır. Varsayılan şablonla ilgili bir sorunu gidermenizi önermeyiz. Bir sorunu gidermeden önce bir uygulama dağıtın.

Telemetri eksik

Windows

  1. Uygulama ayarının ApplicationInsightsAgent_EXTENSION_VERSION değerine ~2ayarlandığını denetleyin.

  2. https://yoursitename.scm.azurewebsites.net/ApplicationInsights adresine göz atın.

    Sonuçlar sayfasının üstündeki bağlantıyı gösteren ekran görüntüsü.

    • Application Insights Uzantısı Durumunun Pre-Installed Site Extension, version 2.8.x.xxxx, is running.

      Çalışmıyorsa Application Insights izlemeyi etkinleştirme bölümündeki yönergeleri izleyin.

    • Durum kaynağının mevcut olduğunu ve gibi Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.jsongöründüğünü onaylayın.

      Benzer bir değer yoksa, uygulamanın şu anda çalışmadığını veya desteklenmediğini gösterir. Uygulamanın çalıştığından emin olmak için, çalışma zamanı bilgilerinin kullanılabilir duruma gelmesini sağlayan uygulama URL'sini/uygulama uç noktalarını el ile ziyaret etmeyi deneyin.

    • IKeyExists öğesinin olduğunu Trueonaylayın. iseFalse, uygulama ayarlarınıza ikey GUID'nizle ve APPLICATIONINSIGHTS_CONNECTION_STRING ekleyinAPPINSIGHTS_INSTRUMENTATIONKEY.

    • Uygulamanız herhangi bir Application Insights paketine başvuruyorsa, App Service tümleştirmesinin etkinleştirilmesi etkili olmayabilir ve veriler Application Insights'ta görünmeyebilir. Uygulamanızı daha önce ASP.NET Core SDK ile izlemeniz veya izleme girişiminde bulunmuş olmanız buna bir örnek olabilir. Sorunu çözmek için Azure portalında Application Insights SDK ile Birlikte Çalışma'yı açın.

      Önemli

      Bu işlev önizleme aşamasındadır.

       Birlikte çalışma ayarının etkinleştirildiğini gösteren ekran görüntüsü.

      Application Insights SDK'sı başlangıçta kullanılmış veya kullanılmaya çalışılsa bile veriler kodsuz bir yaklaşım kullanılarak gönderilir.

      Önemli

      Uygulama herhangi bir telemetri göndermek için Application Insights SDK'sını kullandıysa, telemetri devre dışı bırakılır. Başka bir deyişle, özel telemetri (örneğin, herhangi bir Track*() yöntem) ve özel ayarlar (örnekleme gibi) devre dışı bırakılır.

Linux

  1. Uygulama ayarının ApplicationInsightsAgent_EXTENSION_VERSION değerine ~3ayarlandığını denetleyin.

  2. https://your site name.scm.azurewebsites.net/ApplicationInsights adresine göz atın.

  3. Bu site içinde şunları onaylayın:

    • Durum kaynağı var ve gibi Status source /var/log/applicationinsights/status_abcde1234567_89_0.jsongörünüyor.
    • Değer Auto-Instrumentation enabled successfully görüntülenir. Benzer bir değer yoksa, uygulamanın çalışmadığını veya desteklenmediğini gösterir. Uygulamanın çalıştığından emin olmak için, çalışma zamanı bilgilerinin kullanılabilir duruma gelmesini sağlayan uygulama URL'sini/uygulama uç noktalarını el ile ziyaret etmeyi deneyin.
    • IKeyExists şudur: True. iseFalse, uygulama ayarlarınıza ikey GUID'nizle ve APPLICATIONINSIGHTS_CONNECTION_STRING ekleyinAPPINSIGHTS_INSTRUMENTATIONKEY.

    Otomatik yetkisiz erişim durumu web sayfasını gösteren ekran görüntüsü.

Web uygulamalarıyla dağıtılan varsayılan web sitesi otomatik istemci tarafı izlemeyi desteklemez

App Service'te ASP.NET Core çalışma zamanları ile bir web uygulaması oluşturduğunuzda, başlangıç web sitesi olarak tek bir statik HTML sayfası dağıtır. Statik web sayfası da bir ASP yükler. IIS'de NET tarafından yönetilen web bölümü. Bu davranış, kodsuz sunucu tarafı izlemenin test edilmesine olanak tanır ancak otomatik istemci tarafı izlemeyi desteklemez.

Bir App Service web uygulamasında ASP.NET Core için kodsuz sunucu ve istemci tarafı izlemeyi test etmek istiyorsanız, ASP.NET Core web uygulaması oluşturmak için resmi kılavuzları izlemenizi öneririz. Daha sonra, izlemeyi etkinleştirmek için geçerli makaledeki yönergeleri kullanın.

PHP ve WordPress desteklenmez

PHP ve WordPress siteleri desteklenmez. Şu anda bu iş yüklerinin sunucu tarafı izlemesi için resmi olarak desteklenen bir SDK/aracı yoktur. PHP veya WordPress sitesindeki istemci tarafı işlemlerini izlemek için JavaScript SDK'sını kullanarak istemci tarafı JavaScript'i web sayfalarınıza ekleyin.

Aşağıdaki tabloda, bu değerlerin ne anlama gelenleri, bunların temel nedenleri ve önerilen düzeltmeler hakkında bir açıklama sağlanmaktadır.

Sorun değeri Açıklama Düzelt
AppAlreadyInstrumented:true Bu değer, uzantının sdk'nın uygulamada zaten mevcut olan bazı yönlerini algılayıp geri döndüğünü gösterir. veya başvurusu bu değere Microsoft.ApplicationInsights.AspNetCore Microsoft.ApplicationInsights neden olabilir. Başvuruları kaldırın. Bu başvurulardan bazıları varsayılan olarak belirli Visual Studio şablonlarından eklenir. Visual Studio'nun eski sürümleri başvurusu Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true Önceki bir dağıtımdaki uygulama klasöründe DLL bulunması Microsoft.ApplicationsInsights da bu değere neden olabilir. Bu DLL'lerin kaldırıldığından emin olmak için uygulama klasörünü temizleyin. Hem yerel uygulamanızın bin dizinini hem de App Service'te wwwroot dizinini denetleyin. (App Service web uygulamanızın wwwroot dizinini denetlemek için Gelişmiş Araçlar (Kudu) >Hata ayıklama konsolu>CMD>home\site\wwwroot).
IKeyExists:false Bu değer, izleme anahtarının uygulama ayarında APPINSIGHTS_INSTRUMENTATIONKEYbulunmadığını gösterir. Olası nedenler arasında değerleri yanlışlıkla kaldırma veya otomasyon betiğindeki değerleri ayarlamayı unutma sayılabilir. Ayarın App Service uygulama ayarlarında mevcut olduğundan emin olun.