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ı.
Uygulama hizmetinizin Azure denetim masasında Uygulama Analizler'ni ve ardından Etkinleştir'i seçin.
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.
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.
İ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:
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.
Uygulama Analizler kaynağı oluşturmayı otomatikleştirme ve yeni oluşturduğunuz App Service kaynağına bağlanma
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.
İstediğiniz web uygulaması bilgileriyle yeni bir App Service kaynağı oluşturun. İzleme sekmesinde Uygulama Analizler'ni etkinleştirin.
Gözden geçir ve oluştur’u seçin. Ardından Otomasyon için şablon indir'i seçin.
Bu seçenek, tüm gerekli ayarların yapılandırıldığı en son Resource Manager şablonunu oluşturur.
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 AppMonitoredRG
adlı 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 ~2
ayarlayın. Linux kullanıyorsanız, Application Analizler Agent_EXTENSION_VERSION değerini olarak ~3
ayarlayı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.
Uygulama ayarının Windows'ta
ApplicationInsightsAgent_EXTENSION_VERSION
"~2", Linux'ta "~3" değerine ayarlandığını denetleyinAracı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.
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.
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:
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.Azure portalındaki Uygulama Analizler sekmesi aracılığıyla Uygulama Analizler devre dışı bırakın.
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ıç 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}.jar
yeni bir ortam değişkeniJAVA_OPTS
oluşturun.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
- Uygulama Analizler ile Azure İşlevleri izleyin.
- Application Insights’a gönderilmek üzere Azure tanılamayı etkinleştirin.
- Hizmetinizin kullanılabilir ve yanıt verir durumda oluğundan emin olmak için hizmet durumu ölçümlerini izleyin.
- İşletimsel olaylar gerçekleştiğinde ya da ölçümler bir eşiği aştığında uyarı bildirimleri alın.
- Bir web sayfasını ziyaret eden tarayıcılardan istemci telemetrisi toplamak istiyorsanız JavaScript uygulamaları ve web sayfaları için Application Insights’ı kullanın.
- Kullanılabilirliğe genel bakış