Monitoraggio delle applicazioni per il servizio app Azure e Node.js
Il monitoraggio delle applicazioni Web Node.js in esecuzione in app Azure Services non richiede alcuna modifica al codice. Questo articolo illustra come abilitare il monitoraggio di Application Insights di Monitoraggio di Azure e fornisce indicazioni preliminari per automatizzare il processo per distribuzioni su larga scala.
Abilita Application Insights
Il modo più semplice per abilitare il monitoraggio delle applicazioni per le applicazioni Node.js in esecuzione in app Azure Services è tramite portale di Azure. L'attivazione del monitoraggio delle applicazioni in portale di Azure instrumenterà automaticamente l'applicazione con Application Insights e non richiede alcuna modifica del codice.
Nota
È possibile configurare l'agente collegato automaticamente usando la variabile di ambiente APPLICATIONINSIGHTS_CONFIGURATION_CONTENT nel pannello della variabile ambiente del servizio app. Per informazioni dettagliate sulle opzioni di configurazione che è possibile passare tramite questa variabile di ambiente, vedere Node.js Configurazione.
Nota
Se vengono rilevati sia la strumentazione automatica che la strumentazione manuale basata su SDK, vengono rispettate solo le impostazioni di strumentazione manuale. Ciò impedisce l'invio di dati duplicati. Per altre informazioni, vedere la sezione relativa alla risoluzione dei problemi in questo articolo.
Strumentazione automatica tramite portale di Azure
Per un elenco completo degli scenari di strumentazione automatica supportati, vedere Ambienti, lingue e provider di risorse supportati.
È possibile attivare il monitoraggio per le app Node.js in esecuzione nel servizio app Azure con un solo clic, senza modificare il codice necessario. Application Insights per Node.js è integrato con il servizio app Azure in Linux, sia basato sul codice che con contenitori personalizzati e con servizio app in Windows per le app basate su codice. L'integrazione è disponibile in anteprima pubblica. L'integrazione aggiunge Node.js SDK, disponibile a livello generale.
Selezionare Application Insights nel pannello di controllo di Azure per il servizio app e quindi selezionare Abilita.
Scegliere di creare una nuova risorsa o selezionare una risorsa di Application Insights esistente per questa applicazione.
Nota
Quando si seleziona OK per creare la nuova risorsa, verrà richiesto di applicare le impostazioni di monitoraggio. Selezionando Continua si collegherà la nuova risorsa di Application Insights al servizio app; ciò consente anche di attivare un riavvio del servizio app.
Dopo aver specificato la risorsa da usare, è tutto impostato per andare.
Impostazione
L'agente Node.js può essere configurato tramite JSON. Impostare la APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
variabile di ambiente sulla stringa JSON o impostare la APPLICATIONINSIGHTS_CONFIGURATION_FILE
variabile di ambiente sul percorso del file contenente il codice JSON.
"samplingPercentage": 80,
"enableAutoCollectExternalLoggers": true,
"enableAutoCollectExceptions": true,
"enableAutoCollectHeartbeat": true,
"enableSendLiveMetrics": true,
...
Il set completo di configurazioni è disponibile, è sufficiente usare un file JSON valido.
Abilitare il monitoraggio lato client
Per abilitare il monitoraggio lato client per l'applicazione Node.js, è necessario aggiungere manualmente JavaScript SDK sul lato client all'applicazione.
Automatizzare il monitoraggio
Per abilitare la raccolta di dati di telemetria con Application Insights, è necessario impostare solo le impostazioni dell'applicazione seguenti:
Definizioni delle impostazioni dell'applicazione
Nome impostazione app | Definizione | Valore |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Estensione principale, che controlla il monitoraggio del runtime. | ~2 in Windows o ~3 in Linux. |
XDT_MicrosoftApplicationInsights_NodeJS | Flag per controllare se è incluso Node.js agente. | 0 o 1 (applicabile solo in Windows). |
Nota
Profiler e debugger snapshot non sono disponibili per le applicazioni Node.js
servizio app impostazioni dell'applicazione con Azure Resource Manager
Le impostazioni dell'applicazione per app Azure Servizio possono essere gestite e configurate con i modelli di Azure Resource Manager. È possibile usare questo metodo quando si distribuiscono nuove risorse servizio app con l'automazione di Resource Manager o si modificano le impostazioni delle risorse esistenti.
Struttura di base del codice JSON delle impostazioni dell'applicazione per una risorsa servizio app:
"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"
}
}
]
Per un esempio di modello di Resource Manager con le impostazioni dell'applicazione configurate per Application Insights, questo modello può essere utile. In particolare, vedere la sezione che inizia alla riga 238.
Automatizzare la creazione di una risorsa di Application Insights e il collegamento alla risorsa servizio app appena creata
Per creare un modello di Resource Manager con le impostazioni predefinite di Application Insights, iniziare il processo come se si intendesse creare una nuova app Web con Application Insights abilitato.
Creare una nuova risorsa servizio app con le informazioni desiderate sull'app Web. Abilitare Application Insights nella scheda Monitoraggio .
Selezionare Rivedi e crea. Selezionare quindi Scarica un modello per l'automazione.
Questa opzione genera il modello di Resource Manager più recente con tutte le impostazioni necessarie configurate.
Nell'esempio seguente sostituire tutte le istanze di con il nome del AppMonitoredSite
sito:
Nota
Se si usa Windows, impostare su ApplicationInsightsAgent_EXTENSION_VERSION
~2
. Se si usa Linux, impostare su 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"
}
Abilitare tramite PowerShell
Per abilitare il monitoraggio delle applicazioni tramite PowerShell, è necessario modificare solo le impostazioni dell'applicazione sottostanti. L'esempio seguente abilita il monitoraggio delle applicazioni per un sito Web denominato AppMonitoredSite
nel gruppo AppMonitoredRG
di risorse . Configura i dati da inviare alla chiave di 012345678-abcd-ef01-2345-6789abcd
strumentazione.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Nota
Se si usa Windows, impostare ApplicationInsightsAgent_EXTENSION_VERSION su ~2
. Se si usa Linux, impostare ApplicationInsightsAgent_EXTENSION_VERSION su ~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
Risoluzione dei problemi
Di seguito è riportata la guida dettagliata alla risoluzione dei problemi per il monitoraggio basato su estensione/agente per le applicazioni basate su Node.js in esecuzione nei servizi di app Azure.
Verificare che
ApplicationInsightsAgent_EXTENSION_VERSION
l'impostazione dell'app sia impostata su un valore "~2".Passa a
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.Verificare che sia
Application Insights Extension Status
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Se non è in esecuzione, seguire le istruzioni per abilitare il monitoraggio di Application Insights.
Passare a D:\local\Temp\status.json e aprire status.json.
Verificare che
SDKPresent
sia impostato su false,AgentInitializedSuccessfully
su true eIKey
per avere un iKey valido.Di seguito è riportato un esempio del file JSON:
"AppType":"node.js", "MachineName":"c89d3a6d0357", "PID":"47", "AgentInitializedSuccessfully":true, "SDKPresent":false, "IKey":"00000000-0000-0000-0000-000000000000", "SdkVersion":"1.8.10"
Se
SDKPresent
è true, l'estensione ha rilevato che alcuni aspetti dell'SDK sono già presenti nell'applicazione e eseguiranno il back-off.
Qual è la differenza tra le metriche standard di Application Insights e le metriche del servizio app Azure?
Application Insights raccoglie i dati di telemetria per le richieste inviate all'applicazione. Se l'errore si verifica in WebApps/WebServer e la richiesta non ha raggiunto l'applicazione utente, Application Insights non dispone di dati di telemetria su di esso.
La durata per serverresponsetime
calcolata da Application Insights non corrisponde necessariamente al tempo di risposta del server osservato da App Web. Questo comportamento è dovuto al fatto che Application Insights conta solo la durata quando la richiesta raggiunge effettivamente l'applicazione utente. Se la richiesta è bloccata o in coda in WebServer, il tempo di attesa viene incluso nelle metriche di App Web ma non nelle metriche di Application Insights.
Testare la connettività tra l'host dell'applicazione e il servizio di inserimento
Gli SDK e gli agenti di Application Insights inviano dati di telemetria per essere inseriti come chiamate REST agli endpoint di inserimento. È possibile testare la connettività dal server Web o dal computer host dell'applicazione agli endpoint del servizio di inserimento usando client REST non elaborati da PowerShell o comandi curl. Vedere Risolvere i problemi di telemetria delle applicazioni mancanti in Application Insights di Monitoraggio di Azure.
Note sulla versione
Per gli aggiornamenti e le correzioni di bug più recenti, vedere le note sulla versione.
Passaggi successivi
- Monitorare Funzioni di Azure con Application Insights.
- Abilitare l'invio dei dati di diagnostica di Azure ad Application Insights.
- Monitorare le metriche di integrità del servizio per assicurarsi che il servizio sia disponibile e reattivo.
- Ricevere notifiche di avviso ogni volta che si verificano eventi operativi o le metriche superano una soglia.
- Usare Analisi dell'utilizzo per applicazioni Web con Application Insights per ottenere i dati di telemetria dei client dai browser che visitano una pagina Web.
- Panoramica della disponibilità
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per