Azure Uygulaması Hizmeti ve Java için Uygulama İzleme

Azure Uygulaması Hizmetlerinde çalışan Java web uygulamalarınızı izlemek için kodda herhangi bir değişiklik yapılması gerekmez. Bu makale, Azure İzleyici Uygulaması Analizler izlemesini etkinleştirme konusunda size yol gösterir ve büyük ölçekli dağıtımlar için süreci otomatikleştirmeye yönelik ön yönergeler sağlar.

Not

Spring Boot Yerel Görüntü uygulamalarıyla, aşağıda açıklanan Application Analizler Java aracısı çözümü yerine Spring Boot yerel görüntüsü Java uygulamasında Azure İzleyici OpenTelemetry Distro / Uygulama Analizler kullanın.

Application Insights’ı Etkinleştir

Azure Uygulaması Hizmetlerinde çalıştırılan Java uygulamaları için uygulama izlemeyi etkinleştirmenin önerilen yolu Azure portalı üzerindendir. Azure portalında uygulama izlemeyi açmak, uygulamanızı Uygulama Analizler ile otomatik olarak izler ve herhangi bir kod değişikliği gerektirmez. Ek yapılandırmalar uygulayabilir ve ardından özel senaryonuza göre gerekirse kendi özel telemetrinizi ekleyebilirsiniz.

Azure portalı aracılığıyla otomatik yetkisiz erişim

Azure Uygulaması Hizmeti'nde çalışan Java uygulamalarınız için izlemeyi tek bir seçimle açabilirsiniz; kod değişikliği gerekmez. Tümleştirme, Java 3.x Analizler Application ekler ve telemetri verilerini otomatik olarak toplar.

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

  1. Uygulama hizmetinizin Azure denetim masasında Uygulama Analizler'ni ve ardından Etkinleştir'i seçin.

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

  2. Yeni bir kaynak oluşturmayı seçin veya bu uygulama için mevcut bir Uygulama Analizler kaynağı seçin.

    Not

    Yeni kaynağı oluşturmak için Tamam'ı seçtiğinizde İzleme ayarlarını uygula'yı seçmeniz istenir. Devam'ı seçtiğinizde yeni Uygulama Analizler kaynağınız uygulama hizmetinize bağlanır ve bu işlem uygulama hizmetinizin yeniden başlatılmasını da tetikler.

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

  3. Bu son adım isteğe bağlıdır. Hangi kaynağın kullanılacağını belirttikten sonra Java aracısını yapılandırabilirsiniz. Java aracısını yapılandırmazsanız varsayılan yapılandırmalar uygulanır.

    Tüm yapılandırmalar kullanılabilir durumdadır, yalnızca geçerli bir json dosyası yapıştırmanız yeterlidir. bağlantı dizesi ve önizlemedeki tüm yapılandırmaları hariç tutun; genel kullanıma sunuldukları için şu anda önizleme aşamasında olan öğeleri ekleyebilirsiniz.

    Azure portalı aracılığıyla yapılandırmaları değiştirdiğinizde, APPLICATIONINSIGHTS_CONFIGURATION_FILE ortam değişkeni otomatik olarak doldurulur ve App Service ayarları panelinde görüntülenir. Bu değişken, Java uygulamanız için Azure portalı yapılandırma metin kutusuna yapıştırdığınız json içeriğinin tamamını içerir.

    Uygulamanızı izleme ekran görüntüsü.

İstemci Tarafı İzlemeyi Etkinleştirme

Java uygulamanız için istemci tarafı izlemeyi etkinleştirmek için istemci tarafı JavaScript SDK'sını uygulamanıza el ile eklemeniz gerekir.

İzlemeyi otomatikleştirme

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

Kullanılabilir Uygulama Analizler ayarlarıyla App Service Uygulama Ayarlar 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'ta.
XDT_MicrosoftApplication Analizler_Java Java aracısının dahil olup olmadığını denetlemek için bayrak. 0 veya 1 (yalnızca Windows'ta geçerlidir).

Not

Java uygulamaları için profil oluşturucu ve anlık görüntü hata ayıklayıcısı kullanılamıyor

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

Sorun giderme

Azure Uygulaması Hizmetlerinde çalışan Java tabanlı uygulamalarda sorun gidermek için adım adım kılavuzumuzu kullanın.

  1. Uygulama ayarının Windows'ta ApplicationInsightsAgent_EXTENSION_VERSION "~2", Linux'ta "~3" değerine ayarlandığını denetleyin

  2. Aracının başarıyla başlatıldığını görmek için günlük dosyasını inceleyin: 'https://yoursitename.scm.azurewebsites.net/, kök dizinde SSH değişikliği altında günlük dosyası LogFiles/Application Analizler altında bulunur.

    Yukarıdaki sonuçlar sayfasının bağlantısının ekran görüntüsü.

  3. Java uygulamanız için uygulama izlemeyi etkinleştirdikten sonra canlı ölçümlere bakarak aracının çalıştığını doğrulayabilirsiniz. App Service'e dağıtmadan ve uygulamadan önce bile ortamdan bazı istekler görürsünüz. Telemetri kümesinin tamamının yalnızca uygulamanızı dağıtıp çalıştırdığınızda kullanılabildiğini unutmayın.

  4. Herhangi bir hata görmüyorsanız ve telemetri yoksa APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL ortam değişkenini 'debug' olarak ayarlayı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.

En son Application Analizler Java sürümünü el ile dağıtma

Uygulama Analizler Java sürümü, App Services güncelleştirmelerinin bir parçası olarak otomatik olarak güncelleştirilir.

Application Analizler Java'nın en son sürümünde düzeltilebilen bir sorunla karşılaşırsanız, bunu el ile güncelleştirebilirsiniz.

El ile güncelleştirmek için şu adımları izleyin:

  1. Java aracısı jar dosyasını App Service'e yükleme

    a. İlk olarak, buradaki yönergeleri izleyerek Azure CLI'nın en son sürümünü edinin.

    b. Ardından, buradaki yönergeleri izleyerek Application Analizler Java aracısının en son sürümünü edinin.

    c. Ardından, aşağıdaki komutu kullanarak Java aracısı jar dosyasını App Service'e dağıtın: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}. Alternatif olarak, aracıyı Maven eklentisi aracılığıyla dağıtmak için bu kılavuzu kullanabilirsiniz.

  2. Azure portalındaki Uygulama Analizler sekmesi aracılığıyla Uygulama Analizler devre dışı bırakın.

  3. Aracı jar dosyası karşıya yüklendikten sonra App Service yapılandırmaları'na gidin. Linux için Başlangıç Komutu kullanmanız gerekiyorsa lütfen jvm bağımsız değişkenlerini ekleyin:

    Başlangıç komutunun ekran görüntüsü.

    Başlangıç Komutu JavaSE veya CATALINA_OPTS Tomcat için uygun değildirJAVA_OPTS.

    Başlangıç Komutunu kullanmıyorsanız, JavaSE veya CATALINA_OPTS Tomcat için değeriyle -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jaryeni bir ortam değişkeni JAVA_OPTSoluşturun.

  4. Değişiklikleri uygulamak için uygulamayı yeniden başlatın.

Not

JavaSE veya CATALINA_OPTS Tomcat ortam değişkeni için ayarını JAVA_OPTS yaparsanız portalda Application Analizler'ı devre dışı bırakmanız gerekir. Alternatif olarak, portaldan Uygulama Analizler'yi etkinleştirmeyi tercih ediyorsanız App Service yapılandırma ayarlarındaki JavaSE veya CATALINA_OPTS Tomcat değişkenini ayarlamadığınızdan JAVA_OPTS emin olun.

Sürüm notları

En son güncelleştirmeler ve hata düzeltmeleri için sürüm notlarını inceleyin.

Sonraki adımlar