Toepassingsbewaking voor Azure-app Service en Node.js
Voor het controleren van uw Node.js-webtoepassingen die worden uitgevoerd op Azure-app Services, zijn geen wijzigingen in de code vereist. Dit artikel begeleidt u bij het inschakelen van Azure Monitor Application Insights-bewaking en biedt voorlopige richtlijnen voor het automatiseren van het proces voor grootschalige implementaties.
Application Insights inschakelen
De eenvoudigste manier om toepassingsbewaking in te schakelen voor Node.js toepassingen die worden uitgevoerd op Azure-app Services, is via Azure Portal. Als u toepassingsbewaking inschakelt in Azure Portal, wordt uw toepassing automatisch geïnstruteerd met Application Insights en zijn er geen codewijzigingen vereist.
Notitie
U kunt de automatisch gekoppelde agent configureren met behulp van de omgevingsvariabele APPLICATIONINSIGHTS_CONFIGURATION_CONTENT op de blade App Service Environment-variabele. Zie Node.js Configuration voor meer informatie over de configuratieopties die kunnen worden doorgegeven via deze omgevingsvariabele.
Notitie
Als zowel automatische instrumentatie als handmatige SDK-instrumentatie worden gedetecteerd, worden alleen de handmatige instrumentatie-instellingen gehonoreerd. Dit is om te voorkomen dat dubbele gegevens worden verzonden. Zie de sectie probleemoplossing in dit artikel voor meer informatie.
Automatische instrumentatie via Azure Portal
Zie Ondersteunde omgevingen, talen en resourceproviders voor een volledige lijst met ondersteunde auto-instrumentatiescenario's.
U kunt bewaking inschakelen voor uw Node.js-apps die in Azure-app Service worden uitgevoerd met slechts één klik. Er is geen codewijziging vereist. Application Insights voor Node.js is geïntegreerd met Azure-app Service op Linux: zowel op code gebaseerde als aangepaste containers, en met App Service in Windows voor apps op basis van code. De integratie is beschikbaar als openbare preview. De integratie voegt Node.js SDK toe, die zich in algemene beschikbaarheid bevindt.
Selecteer Application Insights in het Configuratiescherm van Azure voor uw app-service en selecteer vervolgens Inschakelen.
Kies ervoor om een nieuwe resource te maken of selecteer een bestaande Application Insights-resource voor deze toepassing.
Notitie
Wanneer u OK selecteert om de nieuwe resource te maken, wordt u gevraagd om bewakingsinstellingen toe te passen. Als u Doorgaan selecteert, wordt uw nieuwe Application Insights-resource aan uw app-service gekoppeld. Hierdoor wordt ook de app-service opnieuw opgestart.
Nadat u hebt opgegeven welke resource u wilt gebruiken, bent u klaar om te gaan.
Configuratie
De Node.js-agent kan worden geconfigureerd met behulp van JSON. Stel de APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
omgevingsvariabele in op de JSON-tekenreeks of stel de APPLICATIONINSIGHTS_CONFIGURATION_FILE
omgevingsvariabele in op het bestandspad met de JSON.
"samplingPercentage": 80,
"enableAutoCollectExternalLoggers": true,
"enableAutoCollectExceptions": true,
"enableAutoCollectHeartbeat": true,
"enableSendLiveMetrics": true,
...
De volledige set configuraties is beschikbaar. U hoeft alleen een geldig json-bestand te gebruiken.
Bewaking aan clientzijde inschakelen
Als u bewaking aan de clientzijde voor uw Node.js-toepassing wilt inschakelen, moet u de JavaScript SDK aan de clientzijde handmatig toevoegen aan uw toepassing.
Bewaking automatiseren
Als u telemetrieverzameling met Application Insights wilt inschakelen, moeten alleen de volgende toepassingsinstellingen worden ingesteld:
Definities van toepassingsinstellingen
Naam van de app-instelling | Definitie | Weergegeven als |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Belangrijkste extensie, waarmee runtime-bewaking wordt gecontroleerd. | ~2 in Windows of ~3 in Linux. |
XDT_MicrosoftApplicationInsights_NodeJS | Vlag om te bepalen of Node.js agent is opgenomen. | 0 of 1 (alleen van toepassing in Windows). |
Notitie
Profiler en foutopsporingsprogramma voor momentopnamen zijn niet beschikbaar voor Node.js toepassingen
App Service-toepassingsinstellingen met Azure Resource Manager
Toepassingsinstellingen voor Azure-app Service kunnen worden beheerd en geconfigureerd met Azure Resource Manager-sjablonen. U kunt deze methode gebruiken wanneer u nieuwe App Service-resources implementeert met Resource Manager-automatisering of de instellingen van bestaande resources wijzigt.
De basisstructuur van de JSON voor toepassingsinstellingen voor een App Service-resource:
"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"
}
}
]
Voor een voorbeeld van een Resource Manager-sjabloon met toepassingsinstellingen die zijn geconfigureerd voor Application Insights, kan deze sjabloon handig zijn. Zie de sectie die begint op regel 238.
Het maken van een Application Insights-resource automatiseren en een koppeling maken naar uw zojuist gemaakte App Service-resource
Als u een Resource Manager-sjabloon wilt maken met de standaardinstellingen voor Application Insights, begint u het proces alsof u een nieuwe web-app wilt maken waarvoor Application Insights is ingeschakeld.
Maak een nieuwe App Service-resource met de gewenste web-app-informatie. Schakel Application Insights in op het tabblad Bewaking .
Selecteer Controleren + maken. Selecteer vervolgens Een sjabloon voor automatisering downloaden.
Met deze optie wordt de meest recente Resource Manager-sjabloon gegenereerd met alle vereiste instellingen geconfigureerd.
Vervang in het volgende voorbeeld alle exemplaren van AppMonitoredSite
uw sitenaam:
Notitie
Als u Windows gebruikt, stelt u deze optie in ApplicationInsightsAgent_EXTENSION_VERSION
op ~2
. Als u Linux gebruikt, stelt u deze optie in ApplicationInsightsAgent_EXTENSION_VERSION
op ~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"
}
Inschakelen via PowerShell
Als u de toepassingscontrole via PowerShell wilt inschakelen, moeten alleen de onderliggende toepassingsinstellingen worden gewijzigd. In het volgende voorbeeld wordt toepassingsbewaking ingeschakeld voor een website die in de resourcegroep AppMonitoredRG
wordt aangeroepenAppMonitoredSite
. Hiermee worden gegevens geconfigureerd die naar de 012345678-abcd-ef01-2345-6789abcd
instrumentatiesleutel moeten worden verzonden.
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Notitie
Als u Windows gebruikt, stelt u ApplicationInsightsAgent_EXTENSION_VERSION in op ~2
. Als u Linux gebruikt, stelt u ApplicationInsightsAgent_EXTENSION_VERSION in op ~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
Probleemoplossing
Hieronder vindt u onze stapsgewijze handleiding voor probleemoplossing voor bewaking op basis van extensies/agents voor Node.js toepassingen die worden uitgevoerd op Azure-app Services.
ApplicationInsightsAgent_EXTENSION_VERSION
Controleer of de app-instelling is ingesteld op een waarde van ~2.Blader naar
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.Bevestig dat het
Application Insights Extension Status
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Als deze niet wordt uitgevoerd, volgt u de instructies voor het inschakelen van Application Insights-bewaking.
Navigeer naar D:\local\Temp\status.json en open status.json.
Bevestig dat
SDKPresent
deze is ingesteld op onwaar,AgentInitializedSuccessfully
op waar enIKey
of er een geldige iKey is.Hieronder ziet u een voorbeeld van het JSON-bestand:
"AppType":"node.js", "MachineName":"c89d3a6d0357", "PID":"47", "AgentInitializedSuccessfully":true, "SDKPresent":false, "IKey":"00000000-0000-0000-0000-000000000000", "SdkVersion":"1.8.10"
Als
SDKPresent
dit waar is, geeft dit aan dat de extensie heeft gedetecteerd dat een bepaald aspect van de SDK al aanwezig is in de toepassing en wordt teruggezet.
Wat is het verschil tussen metrische standaardgegevens van Application Insights versus Azure-app Service-metrische gegevens?
Application Insights verzamelt telemetrie voor de aanvragen die deze naar de toepassing hebben verzonden. Als de fout optreedt in WebApps/WebServer en de aanvraag de gebruikerstoepassing niet heeft bereikt, heeft Application Insights er geen telemetrie over.
De duur voor serverresponsetime
berekening door Application Insights komt niet noodzakelijkerwijs overeen met de reactietijd van de server die door Web Apps wordt waargenomen. Dit gedrag komt doordat Application Insights alleen de duur telt wanneer de aanvraag daadwerkelijk de gebruikerstoepassing bereikt. Als de aanvraag is vastgelopen of in de wachtrij is geplaatst in WebServer, wordt de wachttijd opgenomen in de metrische gegevens van Web Apps, maar niet in de metrische gegevens van Application Insights.
Connectiviteit testen tussen uw toepassingshost en de opnameservice
Application Insights SDK's en agents verzenden telemetrie om opgenomen te worden als REST-aanroepen naar onze opname-eindpunten. U kunt de connectiviteit vanaf uw webserver of toepassingshostcomputer testen op de service-eindpunten voor opname met behulp van onbewerkte REST-clients uit PowerShell- of curl-opdrachten. Zie Problemen met ontbrekende toepassingstelemetrie oplossen in Azure Monitor Application Insights.
Opmerkingen bij de release
Raadpleeg de releaseopmerkingen voor de meest recente updates en bugfixes.
Volgende stappen
- Azure Functions bewaken met Application Insights.
- Schakel diagnostische Azure-gegevens in om te verzenden naar Application Insights.
- Controleer metrische gegevens voor servicestatus om ervoor te zorgen dat de service beschikbaar is en reageert.
- Ontvang waarschuwingsmeldingen wanneer er operationele gebeurtenissen plaatsvinden of metrische gegevens een drempelwaarde overschrijden.
- Gebruik Application Insights voor JavaScript-apps en -webpagina's om clienttelemetrie op te halen uit de browsers die een webpagina bezoeken.
- Overzicht van beschikbaarheid