Alkalmazásfigyelés Azure-alkalmazás szolgáltatáshoz és Node.js
A Azure-alkalmazás-szolgáltatásokon futó Node.js webalkalmazások monitorozása nem igényel módosításokat a kódon. Ez a cikk végigvezeti az Azure Monitor-alkalmazás Elemzések monitorozásának engedélyezésén, és előzetes útmutatást nyújt a nagy léptékű üzemelő példányok folyamatának automatizálásához.
Az Application Insights engedélyezése
A Azure-alkalmazás-szolgáltatásokon futó Node.js alkalmazások alkalmazásfigyelésének legegyszerűbb módja az Azure Portalon keresztül történik. Ha bekapcsolja az alkalmazásfigyelést az Azure Portalon, automatikusan rendszerezi az alkalmazást az Alkalmazás Elemzések, és nem igényel kódmódosítást.
Feljegyzés
Az automatikusan csatolt ügynök konfigurálható az App Service Környezeti változó panel APPLICATIONINSIGHTS_CONFIGURATION_CONTENT környezeti változójának használatával. A környezeti változón keresztül átadható konfigurációs beállításokról további információt Node.js Konfiguráció című témakörben talál.
Feljegyzés
Ha az automatikus rendszerállapot és a manuális SDK-alapú rendszerállapot is észlelhető, csak a manuális rendszerállapot-beállítások teljesülnek. Ennek célja, hogy megakadályozza a duplikált adatok küldését. További információkért tekintse meg a cikk hibaelhárítási szakaszát .
Autoinstrumentáció az Azure Portalon
A támogatott autoinstrumentációs forgatókönyvek teljes listájáért tekintse meg a támogatott környezeteket, nyelveket és erőforrás-szolgáltatókat.
A Azure-alkalmazás Szolgáltatásban futó Node.js-alkalmazások monitorozását egyetlen kattintással kapcsolhatja be, és nincs szükség kódmódosításra. A Node.js alkalmazás Elemzések integrálva van a Linuxon futó Azure-alkalmazás Szolgáltatással – kódalapú és egyéni tárolókkal, valamint a Windows App Service szolgáltatással kódalapú alkalmazásokhoz. Az integráció nyilvános előzetes verzióban érhető el. Az integráció hozzáadja Node.js SDK-t, amely a GA-ban található.
Válassza az Alkalmazás Elemzések lehetőséget az App Service Azure vezérlőpultjában, majd válassza az Engedélyezés lehetőséget.
Válasszon új erőforrást, vagy válasszon egy meglévő alkalmazás-Elemzések erőforrást ehhez az alkalmazáshoz.
Feljegyzés
Amikor az OK gombot választja az új erőforrás létrehozásához, a rendszer kérni fogja a figyelési beállítások alkalmazását. A Folytatás lehetőség választásával összekapcsolhatja az új alkalmazás-Elemzések erőforrást az app service-hez, és ezzel elindítja az app service újraindítását is.
Miután megadta, hogy melyik erőforrást szeretné használni, mindegyiknek el kell mennie.
Konfiguráció
A Node.js ügynök JSON használatával konfigurálható. Állítsa a környezeti változót APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
a JSON-sztringre, vagy állítsa a APPLICATIONINSIGHTS_CONFIGURATION_FILE
környezeti változót a JSON-t tartalmazó fájl elérési útjára.
"samplingPercentage": 80,
"enableAutoCollectExternalLoggers": true,
"enableAutoCollectExceptions": true,
"enableAutoCollectHeartbeat": true,
"enableSendLiveMetrics": true,
...
A konfigurációk teljes készlete elérhető, csak érvényes JSON-fájlt kell használnia.
Ügyféloldali monitorozás engedélyezése
A Node.js alkalmazás ügyféloldali figyelésének engedélyezéséhez manuálisan kell hozzáadnia az ügyféloldali JavaScript SDK-t az alkalmazáshoz.
Monitorozás automatizálása
Ahhoz, hogy az Alkalmazás Elemzések telemetriagyűjtést engedélyezhessen, csak a következő alkalmazásbeállításokat kell megadni:
Alkalmazásbeállítások definíciói
Alkalmazásbeállítás neve | Definíció | Érték |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Fő bővítmény, amely vezérli a futtatókörnyezet monitorozását. | ~2 Windows vagy ~3 Linux rendszeren. |
XDT_MicrosoftApplication Elemzések_NodeJS | Jelző, amely azt szabályozza, hogy Node.js ügynök szerepel-e a jelölőben. | 0 vagy 1 (csak Windows rendszeren alkalmazható). |
Feljegyzés
Profilkészítő és pillanatkép-hibakereső nem érhető el Node.js alkalmazásokhoz
App Service-alkalmazásbeállítások az Azure Resource Managerrel
A Azure-alkalmazás szolgáltatás alkalmazásbeállításai azure Resource Manager-sablonokkal kezelhetők és konfigurálhatók. Ezt a módszert akkor használhatja, ha új App Service-erőforrásokat helyez üzembe a Resource Manager automatizálásával, vagy módosítja a meglévő erőforrások beállításait.
Az App Service-erőforrás JSON-alkalmazásbeállításainak alapstruktúrája:
"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"
}
}
]
Az Alkalmazás Elemzések konfigurált alkalmazásbeállításokat tartalmazó Resource Manager-sablon esetében ez a sablon hasznos lehet. Pontosabban lásd a 238- as sorban kezdődő szakaszt.
Alkalmazás-Elemzések erőforrás létrehozásának automatizálása és az újonnan létrehozott App Service-erőforrásra mutató hivatkozás
Ha egy Resource Manager-sablont szeretne létrehozni az alapértelmezett alkalmazás Elemzések beállításokkal, kezdje el úgy a folyamatot, mintha egy új webalkalmazást szeretne létrehozni, amelyen engedélyezve van az Alkalmazás Elemzések.
Hozzon létre egy új App Service-erőforrást a kívánt webalkalmazás-adatokkal. Az Alkalmazás Elemzések engedélyezése a Figyelés lapon.
Válassza az Áttekintés + létrehozás lehetőséget. Ezután válassza a Sablon letöltése automatizáláshoz lehetőséget.
Ez a beállítás létrehozza a legújabb Resource Manager-sablont az összes szükséges beállítás konfigurálva.
Az alábbi példában cserélje le az összes példányt AppMonitoredSite
a webhely nevére:
Feljegyzés
Ha Windowst használ, állítsa a következőre ApplicationInsightsAgent_EXTENSION_VERSION
~2
: . Linux használata esetén állítsa a következőre 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"
}
Engedélyezés a PowerShell-lel
Az alkalmazásfigyelés PowerShellen keresztüli engedélyezéséhez csak a mögöttes alkalmazásbeállításokat kell módosítani. Az alábbi minta lehetővé teszi az alkalmazásfigyelést az erőforráscsoportban AppMonitoredRG
hívott AppMonitoredSite
webhelyeken. Úgy konfigurálja az adatokat, hogy azokat a 012345678-abcd-ef01-2345-6789abcd
rendszerállapot-kulcsra küldhesse.
Feljegyzés
Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Az első lépésekhez tekintse meg az Azure PowerShell telepítését ismertető szakaszt. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.
Feljegyzés
Windows használata esetén állítsa az Application Elemzések Agent_EXTENSION_VERSION értéket a következőre~2
: . Linux használata esetén állítsa az Application Elemzések Agent_EXTENSION_VERSION értéket a következőre~3
: .
$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
Hibaelhárítás
Az alábbiakban részletes hibaelhárítási útmutatót talál a Azure-alkalmazás-szolgáltatásokon futó Node.js-alapú alkalmazások bővítmény-/ügynökalapú monitorozásához.
Ellenőrizze, hogy
ApplicationInsightsAgent_EXTENSION_VERSION
az alkalmazás beállítása "~2" értékre van-e állítva.Nyissa meg a következő címet:
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.Győződjön meg arról, hogy a
Application Insights Extension Status
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Ha nem fut, kövesse az alkalmazás engedélyezésére vonatkozó Elemzések figyelési utasításokat.
Lépjen a D:\local\Temp\status.json elemre, és nyissa meg a status.json.
Győződjön meg arról, hogy
SDKPresent
a beállítás értéke hamis,AgentInitializedSuccessfully
igaz, ésIKey
érvényes iKey értékre van állítva.Az alábbiakban egy példa látható a JSON-fájlra:
"AppType":"node.js", "MachineName":"c89d3a6d0357", "PID":"47", "AgentInitializedSuccessfully":true, "SDKPresent":false, "IKey":"00000000-0000-0000-0000-000000000000", "SdkVersion":"1.8.10"
Ha
SDKPresent
igaz, ez azt jelzi, hogy a bővítmény azt észlelte, hogy az SDK bizonyos aspektusa már megtalálható az alkalmazásban, és vissza fog kapcsolni.
Mi a különbség az alkalmazás Elemzések és Azure-alkalmazás szolgáltatásmetrikái között?
Az alkalmazás Elemzések telemetriát gyűjt az alkalmazásnak küldött kérésekhez. Ha a hiba a WebApps/WebServer szolgáltatásban jelentkezik, és a kérés nem érte el a felhasználói alkalmazást, az alkalmazás Elemzések nem rendelkezik telemetriai adatokkal.
Az alkalmazás Elemzések által kiszámított időtartam serverresponsetime
nem feltétlenül egyezik meg a Web Apps által megfigyelt kiszolgálói válaszidővel. Ennek a viselkedésnek az az oka, hogy az alkalmazás Elemzések csak azt az időtartamot számolja meg, amikor a kérés ténylegesen eléri a felhasználói alkalmazást. Ha a kérés elakadt vagy várólistára került a WebServerben, a várakozási idő a Web Apps-metrikák részét képezi, az Alkalmazás Elemzések metrikákban azonban nem.
Az alkalmazásgazda és a betöltési szolgáltatás közötti kapcsolat tesztelése
Az alkalmazás Elemzések SDK-k és ügynökök telemetriát küldenek, hogy REST-hívásként betöltse a betöltési végpontokat. A webkiszolgálóról vagy az alkalmazásgazdagépről a betöltési szolgáltatás végpontjaihoz való kapcsolódást a PowerShellből vagy curl parancsokból származó nyers REST-ügyfelek használatával tesztelheti. Tekintse meg az Azure Monitor-alkalmazás Elemzések hiányzó alkalmazástelemetria hibaelhárítását.
Kibocsátási megjegyzések
A legújabb frissítések és hibajavításokért tekintse meg a kibocsátási megjegyzéseket.
Következő lépések
- Az Azure Functions monitorozása az Alkalmazás Elemzések.
- Engedélyezze az Azure Diagnostics Application Insightsba való küldését.
- Figyelje a szolgáltatások állapotával kapcsolatos mérőszámokat, így meggyőződhet róla, hogy szolgáltatása elérhető és válaszkész.
- Riasztási értesítéseket kaphat, ha működési események történnek vagy a mérőszámok átlépnek egy küszöbértéket.
- Az Application Insights JavaScript-alkalmazásokhoz és weblapokhoz való használatával ügyféltelemetriát kaphat azoktól a böngészőktől, amelyek ellátogatnak egy weblapra.
- Rendelkezésre állás áttekintése