Azure App Service ve ASP.NET Core için uygulama izleme

Azure Uygulaması Hizmetinde çalışan ASP.NET Temel tabanlı web uygulamalarınızda izlemeyi etkinleştirmek artık hiç olmadığı kadar kolay. Daha önce uygulamanızı el ile izlemeniz gerekiyordu. Artık en son uzantı/aracı varsayılan olarak App Service görüntüsünde yerleşiktir. Bu makalede Azure İzleyici Uygulaması Analizler izlemeyi etkinleştirme adımları adım adım izlenmektedir. Ayrıca, büyük ölçekli dağıtımlar için süreci otomatikleştirmeye yönelik ön rehberlik sağlar.

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ş.

Otomatik yetkisiz erişim izlemeyi etkinleştirme

Desteklenen otomatik dağıtım senaryolarının tam listesi için bkz . Desteklenen ortamlar, diller ve kaynak sağlayıcıları.

Önemli

Windows'ta otomatik yetkisiz erişim için yalnızca .NET Core Uzun Vadeli Desteği desteklenir.

Bağımsız dağıtımları kırpma desteklenmez. Bunun yerine kod aracılığıyla el ile izleme kullanın.

Not

Otomatik yetkisiz erişim, Ekim 2021'e kadar "kodsuz ekleme" olarak bilinirdi.

App Service kaynağınızla Uygulama Analizler ayarlamaya başlamak için aşağıdaki İzlemeyi etkinleştirme bölümüne bakın.

İzlemeyi etkinleştirme

  1. Uygulama hizmetinizin sol bölmesinde Uygulama Analizler'ni seçin. Ardından Etkinleştir'i seçin.

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

  2. Yeni bir kaynak oluşturun veya bu uygulama için mevcut bir Uygulama Analizler kaynağı 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 Uygulama Analizler kaynağınız uygulama hizmetinize 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, Uygulama Analizler'nin 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ü.

İ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

Telemetri koleksiyonunu Uygulama Analizler ile etkinleştirmek için yalnızca uygulama ayarlarının ayarlanması gerekir.

Uygulama Analizler ayarlarıyla 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_MicrosoftApplication Analizler_PreemptSdk Yalnızca ASP.NET Core uygulamaları için. Uygulama Analizler SDK'sı ile Birlikte Çalışabilirliği (birlikte çalışma) etkinleştirir. Uzantıyı SDK ile yan yana yükler ve telemetri göndermek için kullanır. (Uygulama Analizler 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"
          }
        }
      ]

Uygulama Analizler için yapılandırılmış uygulama ayarlarıyla resource manager şablonu örneği için bu şablon yararlı olabilir. Özellikle, 238. satırda başlayan bölüme bakın.

Varsayılan Uygulama Analizler ayarlarıyla bir Resource Manager şablonu oluşturmak için, Uygulama Analizler etkin olarak 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 Uygulama Analizler'ni 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, Uygulama Analizler Agent_EXTENSION_VERSION olarak ~2ayarlayın. Linux kullanıyorsanız, Application Analizler Agent_EXTENSION_VERSION değerini 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

Yükseltme izleme uzantısı/aracısı - .NET

İzleme uzantısını/aracısını yükseltmek için sonraki bölümlerdeki adımları izleyin.

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 bunlar 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:

  • Portal aracılığıyla etkinleştirerek yükseltme: App Service için Application Analizler 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 Uygulama Analizler 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 adımları.

Sorun 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.

Aşağıda, App Service'te çalışan ASP.NET Çekirdek tabanlı uygulamalar için uzantı/aracı tabanlı izleme için adım adım sorun giderme kılavuzumuz yer almaktadır.

  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ü.

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

      Çalışmıyorsa Uygulama Analizler 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 uygulama URL'sini/uygulama uç noktalarını el ile ziyaret etmeyi deneyin. Bu, çalışma zamanı bilgilerinin kullanılabilir duruma gelmesini sağlar.

    • 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 Analizler paketine başvuruyorsa, App Service tümleştirmesinin etkinleştirilmesi etkili olmayabilir ve veriler Application Analizler'da 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 portalda Uygulama Analizler SDK'sı ile Birlikte Çalışma'yı açın. Verileri Uygulama Analizler'nde görmeye başlayacaksınız.

      Ö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ü.

      Uygulama Analizler SDK'sı başlangıçta kullanılmış veya kullanılmaya çalışılsa bile veriler artık kodsuz bir yaklaşım kullanılarak gönderilecektir.

      Önemli

      Uygulama herhangi bir telemetri göndermek için Uygulama Analizler 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.

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. Ardından izlemeyi etkinleştirmek için geçerli makaledeki yönergeleri kullanın.

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

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

Uygulama Analizler tarafından hesaplanan süreserverresponsetime, Web Apps tarafından gözlemlenen sunucu yanıt süresiyle eşleşmez. Bu davranışın nedeni, Uygulama Analizler yalnızca isteğin kullanıcı uygulamasına ulaştığı süreyi saymadır. İstek WebServer'da takıldıysa veya kuyruğa alındıysa, bekleme süresi Web Apps ölçümlerine dahil edilir ancak Uygulama Analizler ölçümlerine eklenmez.

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

Uygulama Analizler 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 Uygulama Analizler eksik uygulama telemetri sorunlarını giderme.

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. Web sayfalarınıza istemci tarafı JavaScript ekleyerek php veya WordPress sitesindeki istemci tarafı işlemlerini el ile işaretlemek için JavaScript SDK'sını kullanın.

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 bazı yönlerinin uygulamada zaten mevcut olduğunu algıladığını ve geri çekileceğini gösterir. Bunun nedeni veya Microsoft.ApplicationInsightsöğesine yapılan bir başvuru Microsoft.ApplicationInsights.AspNetCore 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 Bu değer, önceki bir dağıtımdaki uygulama klasöründe DLL bulunmasından Microsoft.ApplicationsInsights da kaynaklanabilir. 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.

Sürüm notları

En son güncelleştirmeler ve hata düzeltmeleri için Sürüm notları'na bakın.

Sonraki adımlar