Monitoraggio delle applicazioni per Servizio app di Azure e ASP.NET Core
L'abilitazione del monitoraggio sulle applicazioni Web basate su ASP.NET Core in esecuzione in Servizio app di Azure è ora più semplice che mai. In precedenza, era necessario instrumentare manualmente l'app. A questo punto, l'estensione o l'agente più recente è integrato nell'immagine servizio app per impostazione predefinita. Questo articolo illustra come abilitare il monitoraggio di Application Insights per Monitoraggio di Azure. Fornisce inoltre indicazioni preliminari per automatizzare il processo per le distribuzioni su larga scala.
Nota
Il 31 marzo 2025, il supporto per l'inserimento delle chiavi di strumentazione terminerà. L'inserimento delle chiavi di strumentazione continuerà a funzionare, ma non fornirà più aggiornamenti o supporto per la funzionalità. Transizione alle stringhe di connessione per sfruttare le nuove funzionalità.
Abilitare il monitoraggio automatico delle operazioni di strumentazione
Per un elenco completo degli scenari di strumentazione automatica supportati, vedere Ambienti, lingue e provider di risorse supportati.
Importante
Solo il supporto a lungo termine di .NET Core è supportato per la strumentazione automatica in Windows.
Le distribuzioni autonome di trimnon sono supportate. Usare invece la strumentazione manuale tramite codice.
Nota
La strumentazione automatica viene usata per essere nota come "collegamento senza codice" prima di ottobre 2021.
Vedere la sezione Abilitare il monitoraggio seguente per iniziare a configurare Application Insights con la risorsa servizio app.
Abilitare il monitoraggio
Selezionare Application Insights nel riquadro sinistro per il servizio app. Selezionare quindi Abilita.
Creare una nuova risorsa o selezionare una risorsa di Application Insights esistente per questa applicazione.
Nota
Quando si seleziona OK per creare una nuova risorsa, viene richiesto di applicare le impostazioni di monitoraggio. Selezionando Continua si collega la nuova risorsa di Application Insights al servizio app. Il servizio app viene quindi riavviato.
Dopo aver specificato la risorsa da usare, è possibile scegliere come si vuole che Application Insights raccolga i dati per ogni piattaforma per l'applicazione. ASP.NET Core opzioni di raccolta sono consigliate o disabilitate.
Abilitare il monitoraggio lato client
Il monitoraggio lato client è abilitato per impostazione predefinita per le app ASP.NET Core con raccolta consigliata, indipendentemente dal fatto che l'impostazione APPINSIGHTS_JAVASCRIPT_ENABLED
dell'app sia presente.
Se si vuole disabilitare il monitoraggio lato client:
Selezionare Impostazioni>Configurazione.
In Impostazioni applicazione creare un'impostazione Nuova applicazione con le informazioni seguenti:
- Nome:
APPINSIGHTS_JAVASCRIPT_ENABLED
- Valore:
false
- Nome:
Fare clic su Save (Salva) per salvare le impostazioni. Riavviare l'app.
Automatizzare il monitoraggio
Per abilitare la raccolta di dati di telemetria con Application Insights, è necessario impostare solo le impostazioni dell'applicazione.
Definizioni delle impostazioni dell'applicazione
Nome impostazione app | Definizione | Valore |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Estensione principale, che controlla il monitoraggio del runtime. | ~3 |
XDT_MicrosoftApplicationInsights_Mode | Nella modalità predefinita sono abilitate solo le funzionalità essenziali per garantire prestazioni ottimali. | disabled o recommended . |
XDT_MicrosoftApplicationInsights_PreemptSdk | Solo per ASP.NET Core app. Abilita l'interoperabilità (interoperabilità) con Application Insights SDK. Carica l'estensione affiancata all'SDK e la usa per inviare i dati di telemetria. Disabilita Application Insights SDK. | 1 |
servizio app impostazioni dell'applicazione con Azure Resource Manager
Le impostazioni dell'applicazione per Servizio app di Azure possono essere gestite e configurate con i modelli di Resource Manager di Azure. È possibile usare questo metodo quando si distribuiscono nuove risorse servizio app con automazione Resource Manager o si modificano le impostazioni delle risorse esistenti.
Struttura di base delle impostazioni dell'applicazione JSON 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 tutte le impostazioni predefinite di Application Insights configurate, 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:
{
"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.
$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
Aggiornare l'estensione/agente di monitoraggio - .NET
Per aggiornare l'estensione/agente di monitoraggio, seguire la procedura descritta nelle sezioni successive.
Eseguire l'aggiornamento dalla versione 2.8.9 e successive
L'aggiornamento dalla versione 2.8.9 viene eseguito automaticamente, senza alcuna azione aggiuntiva. I nuovi bit di monitoraggio vengono recapitati in background al servizio app di destinazione e al riavvio dell'applicazione verranno prelevati.
Per verificare la versione dell'estensione in esecuzione, passare a https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.
Eseguire l'aggiornamento dalle versioni 1.0.0 - 2.6.5
A partire dalla versione 2.8.9, viene usata l'estensione del sito preinstallata. Se si usa una versione precedente, è possibile aggiornare tramite uno dei due modi seguenti:
Eseguire l'aggiornamento abilitando tramite il portale: anche se si dispone dell'estensione application Insights per servizio app installata, l'interfaccia utente mostra solo il pulsante Abilita. Dietro le quinte, l'estensione del sito privato precedente verrà rimossa.
Eseguire l'aggiornamento tramite PowerShell:
- Impostare le impostazioni dell'applicazione per abilitare l'estensione
ApplicationInsightsAgent
del sito preinstallata. Per altre informazioni, vedere Abilitare tramite PowerShell. - Rimuovere manualmente l'estensione del sito privato denominata Estensione Application Insights per Servizio app di Azure.
- Impostare le impostazioni dell'applicazione per abilitare l'estensione
Se l'aggiornamento viene eseguito da una versione precedente alla versione 2.5.1, verificare che le ApplicationInsights
DLL vengano rimosse dalla cartella bin dell'applicazione. Per altre informazioni, vedere Passaggi per la risoluzione dei problemi.
Risoluzione dei problemi
Nota
Quando si crea un'app Web con i ASP.NET Core
runtime in servizio app, viene distribuita una singola pagina HTML statica come sito Web iniziale. Non è consigliabile risolvere un problema con il modello predefinito. Distribuire un'applicazione prima di risolvere un problema.
Di seguito è disponibile la guida dettagliata per la risoluzione dei problemi per il monitoraggio basato su estensione/agente per le applicazioni basate su ASP.NET Core in esecuzione in servizio app.
Verificare che l'impostazione
ApplicationInsightsAgent_EXTENSION_VERSION
dell'app sia impostata su un valore di~2
.Passare a
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.Verificare che lo stato dell'estensione di Application Insights sia
Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
Se non è in esecuzione, seguire le istruzioni nella sezione Abilitare il monitoraggio di Application Insights.
Verificare che l'origine di stato esista e sia simile
Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json
a .Se non è presente un valore simile, significa che l'applicazione non è attualmente in esecuzione o non è supportata. Per assicurarsi che l'applicazione sia in esecuzione, provare a visitare manualmente gli endpoint dell'URL dell'applicazione o dell'applicazione, che consentiranno alle informazioni di runtime di diventare disponibili.
Verificare che IKeyExists sia
True
. Se èFalse
, aggiungereAPPINSIGHTS_INSTRUMENTATIONKEY
eAPPLICATIONINSIGHTS_CONNECTION_STRING
con il GUID di ikey alle impostazioni dell'applicazione.Se l'applicazione fa riferimento a eventuali pacchetti di Application Insights, l'abilitazione dell'integrazione servizio app potrebbe non essere effettiva e i dati potrebbero non essere visualizzati in Application Insights. Un esempio potrebbe essere se è stato instrumentato in precedenza o si è tentato di instrumentare l'app con l'SDK di ASP.NET Core. Per risolvere il problema, nel portale attivare Interoperabilità con Application Insights SDK. Verranno visualizzati i dati in Application Insights.
Importante
Questa funzionalità è in anteprima.
I dati verranno ora inviati usando un approccio senza codice, anche se Application Insights SDK è stato usato originariamente o tentato di essere usato.
Importante
Se l'applicazione ha usato Application Insights SDK per inviare dati di telemetria, i dati di telemetria verranno disabilitati. In altre parole, i dati di telemetria personalizzati (ad esempio, i
Track*()
metodi) e le impostazioni personalizzate (ad esempio il campionamento) verranno disabilitate.
Il sito Web predefinito distribuito con le app Web non supporta il monitoraggio lato client automatico
Quando si crea un'app Web con i runtime di ASP.NET Core in servizio app, viene distribuita una singola pagina HTML statica come sito Web iniziale. La pagina Web statica carica anche una web part gestita ASP.NET in IIS. Questo comportamento consente di testare il monitoraggio lato server senza codice, ma non supporta il monitoraggio lato client automatico.
Per testare il server senza codice e il monitoraggio lato client per ASP.NET Core in un'app Web servizio app, è consigliabile seguire le guide ufficiali per la creazione di un'app Web ASP.NET Core. Usare quindi le istruzioni nell'articolo corrente per abilitare il monitoraggio.
Qual è la differenza tra le metriche standard di Application Insights e le metriche Servizio app di Azure?
Application Insights raccoglie i dati di telemetria per le richieste effettuate 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.
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 accodata in WebServer, il tempo di attesa è 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 l'inserimento 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 relativi ai dati di telemetria delle applicazioni mancanti in Application Insights di Monitoraggio di Azure.
PHP e WordPress non sono supportati
I siti PHP e WordPress non sono supportati. Attualmente non è supportato ufficialmente SDK/agent per il monitoraggio lato server di questi carichi di lavoro. Per instrumentare manualmente le transazioni sul lato client in un sito PHP o WordPress aggiungendo JavaScript sul lato client alle pagine Web, usare JavaScript SDK.
La tabella seguente fornisce una spiegazione di quali valori significano, le cause sottostanti e le correzioni consigliate.
Valore del problema | Spiegazione | Correzione |
---|---|---|
AppAlreadyInstrumented:true |
Questo valore indica che l'estensione ha rilevato che alcuni aspetti dell'SDK sono già presenti nell'applicazione e torneranno indietro. Può essere a causa di un riferimento a Microsoft.ApplicationInsights.AspNetCore o Microsoft.ApplicationInsights . |
Rimuovere i riferimenti. Alcuni di questi riferimenti vengono aggiunti per impostazione predefinita da determinati modelli di Visual Studio. Versioni precedenti di Visual Studio reference Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Questo valore può anche essere causato dalla presenza di DLL nella cartella dell'app Microsoft.ApplicationsInsights da una distribuzione precedente. |
Pulire la cartella dell'app per assicurarsi che queste DLL vengano rimosse. Controllare sia la directory bin dell'app locale che la directory wwwroot nella servizio app. Per controllare la directory wwwroot dell'app Web servizio app, selezionare Strumenti avanzati (Kudu) >Console di debug>CMD>home\site\wwwroot. |
IKeyExists:false |
Questo valore indica che la chiave di strumentazione non è presente nell'impostazione APPINSIGHTS_INSTRUMENTATIONKEY dell'app . Le possibili cause includono la rimozione accidentale dei valori o la dimenticanza di impostare i valori nello script di automazione. |
Assicurarsi che l'impostazione sia presente nelle impostazioni dell'applicazione servizio app. |
Note sulla versione
Per gli aggiornamenti e le correzioni di bug più recenti, vedere le note sulla versione.
Passaggi successivi
- Eseguire Profiler nell'app live.
- 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 Application Insights per le app JavaScript e le pagine Web per ottenere i dati di telemetria client dai browser che visitano una pagina Web.
- Disponibilità