Azure Uygulaması Hizmeti ve Node.js için Uygulama İzleme
Azure Uygulaması Hizmetlerinde çalışan Node.js 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.
Application Insights’ı Etkinleştir
Azure Uygulaması Hizmetlerinde çalışan Node.js uygulamalar için uygulama izlemeyi etkinleştirmenin en kolay yolu Azure portalından geçmektir. Azure portalında uygulama izlemeyi açmak, uygulamanızı Uygulama Analizler ile otomatik olarak izler ve herhangi bir kod değişikliği gerektirmez.
Not
Otomatik olarak eklenen aracıyı, App Service Ortamı değişkeni dikey penceresindeki APPLICATIONINSIGHTS_CONFIGURATION_CONTENT ortam değişkenini kullanarak yapılandırabilirsiniz. Bu ortam değişkeni aracılığıyla geçirilebilen yapılandırma seçenekleri hakkında ayrıntılı bilgi için bkz . yapılandırma Node.js.
Not
Hem otomatik izleme hem de el ile SDK tabanlı izleme algılanırsa, yalnızca el ile izleme ayarları kabul edilir. Bu, yinelenen verilerin gönderilmesini önlemektir. Daha fazla bilgi için bu makaledeki sorun giderme bölümüne bakın.
Azure portalı aracılığıyla otomatik yetkisiz erişim
Desteklenen otomatik dağıtım senaryolarının tam listesi için bkz . Desteklenen ortamlar, diller ve kaynak sağlayıcıları.
Azure Uygulaması Hizmeti'nde çalışan Node.js uygulamalarınız için izlemeyi tek bir tıklamayla açabilirsiniz; kod değişikliği gerekmez. Node.js için uygulama Analizler, hem kod tabanlı hem de özel kapsayıcılar olan Linux'ta Azure Uygulaması Hizmeti ve kod tabanlı uygulamalar için Windows üzerinde App Service ile tümleştirilir. Tümleştirme genel önizleme aşamasındadır. Tümleştirme, GA'da bulunan Node.js SDK'yı ekler.
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.
Hangi kaynağı kullanacağınızı belirttikten sonra, kullanmaya hazırsınız demektir.
Yapılandırma
Node.js aracısı JSON kullanılarak yapılandırılabilir. Ortam değişkenini APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
JSON dizesine ayarlayın veya ortam değişkenini APPLICATIONINSIGHTS_CONFIGURATION_FILE
JSON içeren dosya yoluna ayarlayın.
"samplingPercentage": 80,
"enableAutoCollectExternalLoggers": true,
"enableAutoCollectExceptions": true,
"enableAutoCollectHeartbeat": true,
"enableSendLiveMetrics": true,
...
Tüm yapılandırmalar kullanılabilir durumdadır, yalnızca geçerli bir json dosyası kullanmanız yeterlidir.
İstemci Tarafı İzlemeyi Etkinleştirme
Node.js uygulamanızda 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_NodeJS | Node.js aracısının dahil olup olmadığını denetlemek için bayrak. | 0 veya 1 (yalnızca Windows'ta geçerlidir). |
Not
Profil oluşturucu ve anlık görüntü hata ayıklayıcısı Node.js uygulamalarda kullanılamaz
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
aşağıda, Azure Uygulaması Hizmetlerinde çalışan Node.js tabanlı uygulamalar için uzantı/aracı tabanlı izleme için adım adım sorun giderme kılavuzumuz yer almaktadır.
Uygulama ayarının
ApplicationInsightsAgent_EXTENSION_VERSION
"~2" değerine ayarlandığını denetleyin.https://yoursitename.scm.azurewebsites.net/ApplicationInsights
adresine göz atın.Application Insights Extension Status
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Çalışmıyorsa Uygulama Analizler izleme yönergelerini etkinleştirin.
D:\local\Temp\status.json adresine gidin ve status.json açın.
Bunun
SDKPresent
false,AgentInitializedSuccessfully
true veIKey
geçerli bir iKey değerine sahip olduğunu onaylayın.Aşağıda JSON dosyasının bir örneği verilmiştir:
"AppType":"node.js", "MachineName":"c89d3a6d0357", "PID":"47", "AgentInitializedSuccessfully":true, "SDKPresent":false, "IKey":"00000000-0000-0000-0000-000000000000", "SdkVersion":"1.8.10"
SDKPresent
True ise bu, uzantının SDK'nın bazı yönlerinin Uygulamada zaten mevcut olduğunu algıladığını ve geri çekileceğini gösterir.
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.
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ış