Aracılığıyla paylaş


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 makale, Azure İzleyici Application Insights izlemesini etkinleştirme konusunda size yol gösterir. 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 Application Insights'ı 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 Application Insights'ı seçin. 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ü.

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

Application Insights 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 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

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

    • 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 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 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 portalda Application Insights SDK ile Birlikte Çalışma'yı açın. Application Insights'ta verileri 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ü.

      Application Insights 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 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.

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.

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.

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.

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