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

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

    Képernyőkép az Alkalmazás Elemzések lapról, amelyen az engedélyezés van kiválasztva.

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

    Képernyőkép az erőforrás legördülő listájának módosításáról.

  3. Miután megadta, hogy melyik erőforrást szeretné használni, mindegyiknek el kell mennie.

    Képernyőkép az alkalmazás eszközéről.

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:

Képernyőkép az App Service-alkalmazás Gépház az elérhető alkalmazás Elemzések beállításaival.

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.

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.

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

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

    Képernyőkép az App Service webalkalmazás-létrehozási menüjéről.

    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.

    Képernyőkép egy App Service-webalkalmazás-sablonról.

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 AppMonitoredRGhí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.

  1. Ellenőrizze, hogy ApplicationInsightsAgent_EXTENSION_VERSION az alkalmazás beállítása "~2" értékre van-e állítva.

  2. Nyissa meg a következő címet: https://yoursitename.scm.azurewebsites.net/ApplicationInsights.

    Képernyőkép a fenti találati oldalról.

    • Győződjön meg arról, hogy a Application Insights Extension StatusPre-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, és IKey é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