Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La strumentazione automatica, noto anche come monitoraggio del runtime, è il modo più semplice per abilitare Application Insights per il servizio app di Azure senza richiedere modifiche al codice o configurazioni avanzate. In base al proprio scenario specifico, valutare se è necessario un monitoraggio più avanzato tramite la strumentazione manuale.
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 saranno più garantiti aggiornamenti o supporto per la funzionalità. Eseguire la transizione alle stringhe di connessione per sfruttare le nuove funzionalità.
Abilitare Application Insights
Importante
Se vengono rilevati sia il monitoraggio automatico che la strumentazione manuale basata su SDK, vengono rispettate solo le impostazioni di strumentazione manuale. Questa disposizione impedisce l'invio di dati duplicati. Per altre informazioni, vedere Risoluzione dei problemi.
Nota
- Sono supportate solo le versioni LTS (Long Term Support) di .NET Core.
- Taglia distribuzioni autonomenon è supportato. Invece utilizzare strumentazione manuale.
Strumentazione automatica nel portale di Azure
Selezionare Application Insights nel menu di spostamento a sinistra del servizio app e quindi selezionare Abilita.
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, viene richiesto Applica impostazioni di monitoraggio. La selezione di Continua 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 il modo in cui Application Insights deve raccogliere i dati per ogni piattaforma per l'applicazione. Le opzioni di raccolta ASP.NET Core sono Consigliate o Disabilitate.
Aggiornare manualmente l'estensione/agente di monitoraggio
Eseguire l'aggiornamento dalle versioni 2.8.9 e successive
L'aggiornamento dalla versione 2.8.9 viene eseguito automaticamente, senza azioni aggiuntive. I nuovi bit di monitoraggio vengono recapitati in background al servizio app di destinazione e verranno ritirati al riavvio dell'applicazione.
Per verificare qual è 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 eseguire l'aggiornamento tramite uno dei due modi seguenti:
Eseguire l'aggiornamento abilitando tramite il portale di Azure: anche se è installata l'estensione Application Insights per servizio app, l'interfaccia utente visualizza solo il pulsante Abilita. Dietro le quinte, viene rimossa l'estensione del vecchio sito privato.
Aggiornare tramite PowerShell:
- Impostare le impostazioni dell'applicazione per abilitare l'estensione del sito preinstallata
ApplicationInsightsAgent
. Per altre informazioni, vedere Abilitare tramite PowerShell. - Rimuovere manualmente l'estensione del sito privato denominata Application Insights per Azure App Service.
- Impostare le impostazioni dell'applicazione per abilitare l'estensione del sito preinstallata
Se l'aggiornamento viene eseguito da una versione precedente alla 2.5.1, verificare che le ApplicationInsights
DLL vengano rimosse dalla cartella bin dell'applicazione. Per ulteriori informazioni, vedere Risoluzione dei problemi.
Configurare l'estensione/agente di monitoraggio
Attualmente non sono disponibili opzioni per configurare l'estensione di monitoraggio per ASP.NET Core.
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 sia presente l'impostazione dell'app APPINSIGHTS_JAVASCRIPT_ENABLED
.
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 seguenti:
Definizioni delle impostazioni dell'applicazione
Nome dell'impostazione dell'app | Definizione | Valore |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | Estensione principale, che controlla il monitoraggio del runtime. |
~2 per Windows o ~3 per Linux |
XDT_MicrosoftApplicationInsights_Mode | Per garantire prestazioni ottimali, in modalità predefinita sono abilitate solo le funzionalità essenziali. |
disabled o recommended . |
XDT_MicrosoftApplicationInsights_PreemptSdk | Solo per le app ASP.NET Core. Abilita Interop (interoperabilità) con Application Insights SDK. Carica l'estensione side-by-side con l'SDK e la usa per inviare i dati di telemetria (Disabilita l'SDK di Application Insights.) | 1 |
Impostazioni dell'applicazione del servizio App con Azure Resource Manager
Le impostazioni dell'applicazione per il servizio app di Azure possono essere gestite e configurate con i modelli di Azure Resource Manager. È possibile usare questo metodo quando si distribuiscono nuove risorse del servizio app con l'automazione di Resource Manager o si modificano le impostazioni delle risorse esistenti.
Struttura di base delle impostazioni dell'applicazione JSON per una risorsa del 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"
}
}
]
Automatizzare la creazione di una risorsa di Application Insights e il collegamento alla risorsa del 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.
Nel portale di Azure creare una nuova risorsa app Web con le informazioni desiderate. Abilitare Application Insights nella scheda Monitoraggio e protezione .
Passare a Rivedi e crea e quindi selezionare Scarica un modello per l'automazione. Questa opzione genera il modello di Resource Manager più recente con tutte le impostazioni necessarie configurate.
Nota
Il modello di esempio seguente è destinato a un'applicazione .NET 8 (LTS) in esecuzione in Windows. Usa i segnaposto my-monitored-web-app
per il nome dell'applicazione e aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
per l'ID sottoscrizione.
Non è consigliabile copiarlo e usarlo direttamente. Generare invece un modello personalizzato in base alle istruzioni precedenti.
Espandere per visualizzare il modello di esempio
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"subscriptionId": {
"type": "string"
},
"resourceGroupName": {
"type": "string"
},
"name": {
"type": "string"
},
"location": {
"type": "string"
},
"hostingPlanName": {
"type": "string"
},
"serverFarmResourceGroup": {
"type": "string"
},
"alwaysOn": {
"type": "bool"
},
"ftpsState": {
"type": "string"
},
"autoGeneratedDomainNameLabelScope": {
"type": "string"
},
"sku": {
"type": "string"
},
"skuCode": {
"type": "string"
},
"workerSize": {
"type": "string"
},
"workerSizeId": {
"type": "string"
},
"numberOfWorkers": {
"type": "string"
},
"currentStack": {
"type": "string"
},
"phpVersion": {
"type": "string"
},
"netFrameworkVersion": {
"type": "string"
}
},
"variables": {},
"resources": [
{
"apiVersion": "2022-03-01",
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"location": "[parameters('location')]",
"tags": null,
"dependsOn": [
"microsoft.insights/components/my-monitored-web-app",
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]"
],
"properties": {
"name": "[parameters('name')]",
"siteConfig": {
"appSettings": [
{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "[reference('microsoft.insights/components/my-monitored-web-app', '2015-05-01').ConnectionString]"
},
{
"name": "ApplicationInsightsAgent_EXTENSION_VERSION",
"value": "~2"
},
{
"name": "XDT_MicrosoftApplicationInsights_Mode",
"value": "default"
}
],
"metadata": [
{
"name": "CURRENT_STACK",
"value": "[parameters('currentStack')]"
}
],
"phpVersion": "[parameters('phpVersion')]",
"netFrameworkVersion": "[parameters('netFrameworkVersion')]",
"alwaysOn": "[parameters('alwaysOn')]",
"ftpsState": "[parameters('ftpsState')]"
},
"serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"clientAffinityEnabled": true,
"virtualNetworkSubnetId": null,
"httpsOnly": true,
"publicNetworkAccess": "Enabled",
"autoGeneratedDomainNameLabelScope": "[parameters('autoGeneratedDomainNameLabelScope')]"
},
"resources": [
{
"type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
"apiVersion": "2022-09-01",
"name": "[concat(parameters('name'), '/scm')]",
"properties": {
"allow": true
},
"dependsOn": [
"[resourceId('Microsoft.Web/Sites', parameters('name'))]"
]
},
{
"type": "Microsoft.Web/sites/basicPublishingCredentialsPolicies",
"apiVersion": "2022-09-01",
"name": "[concat(parameters('name'), '/ftp')]",
"properties": {
"allow": true
},
"dependsOn": [
"[resourceId('Microsoft.Web/Sites', parameters('name'))]"
]
}
]
},
{
"apiVersion": "2018-11-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('location')]",
"kind": "",
"tags": null,
"dependsOn": [],
"properties": {
"name": "[parameters('hostingPlanName')]",
"workerSize": "[parameters('workerSize')]",
"workerSizeId": "[parameters('workerSizeId')]",
"numberOfWorkers": "[parameters('numberOfWorkers')]",
"zoneRedundant": false
},
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
}
},
{
"apiVersion": "2020-02-02-preview",
"name": "my-monitored-web-app",
"type": "microsoft.insights/components",
"location": "centralus",
"tags": null,
"dependsOn": [
"newWorkspaceTemplate"
],
"properties": {
"ApplicationId": "[parameters('name')]",
"Request_Source": "IbizaWebAppExtensionCreate",
"Flow_Type": "Redfield",
"Application_Type": "web",
"WorkspaceResourceId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DefaultResourceGroup-CUS/providers/Microsoft.OperationalInsights/workspaces/DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-CUS"
}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "newWorkspaceTemplate",
"resourceGroup": "DefaultResourceGroup-CUS",
"subscriptionId": "[parameters('subscriptionId')]",
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"apiVersion": "2020-08-01",
"name": "DefaultWorkspace-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e-CUS",
"type": "Microsoft.OperationalInsights/workspaces",
"location": "centralus",
"properties": {}
}
]
}
}
}
]
}
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 my-monitored-web-app
nel gruppo di risorse my-resource-group
. Configura i dati da inviare alla stringa di InstrumentationKey=012345678-abcd-ef01-2345-6789abcd
connessione.
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
Per Windows impostare ApplicationInsightsAgent_EXTENSION_VERSION su ~2
.
Per Linux impostare ApplicationInsightsAgent_EXTENSION_VERSION su ~3
.
$app = Get-AzWebApp -ResourceGroupName "my-resource-group" -Name "my-monitored-web-app" -ErrorAction Stop
$newAppSettings = @{} # Case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # Preserve non-Application-Insights application settings.
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"; # Set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~3"; # Enable the ApplicationInsightsAgent.
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop
Risoluzione dei problemi
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 comandi PowerShell o curl. Vedere Risolvere i problemi relativi ai dati di telemetria dell'applicazione mancanti in Application Insights di Monitoraggio di Azure.
Nota
Quando si crea un'app Web con i runtime ASP.NET Core
nel servizio app, come sito Web iniziale viene distribuita una singola pagina HTML statica.
Non è consigliabile risolvere un problema con il modello predefinito. Eseguire il deployment di un'applicazione prima di risolvere un problema.
Dati di telemetria mancanti
Windows
Verificare che l'impostazione dell'app
ApplicationInsightsAgent_EXTENSION_VERSION
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 dello stato esista e abbia un aspetto simile a
Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json
.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 l'URL dell'applicazione/gli endpoint dell'applicazione, che consente di rendere disponibili le informazioni di runtime.
Verificare che IKeyExists sia
True
. Se èFalse
, aggiungereAPPINSIGHTS_INSTRUMENTATIONKEY
eAPPLICATIONINSIGHTS_CONNECTION_STRING
con il GUID ikey alle impostazioni dell'applicazione.Se l'applicazione fa riferimento a qualsiasi pacchetto 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 sarebbe se in precedenza hai integrato o hai tentato di integrare l'app con ASP.NET Core SDK. Per risolvere il problema, nella portale di Azure attivare Interoperabilità con Application Insights SDK.
Importante
Questa funzionalità è in anteprima.
I dati vengono inviati utilizzando un approccio senza codice, anche se il SDK di Application Insights era stato originariamente utilizzato o si era tentato di utilizzarlo.
Importante
Se l'applicazione usa Application Insights SDK per inviare dati di telemetria, questi saranno disabilitati. In altre parole, i dati di telemetria personalizzati (ad esempio, qualsiasi metodo
Track*()
) e le impostazioni personalizzate (ad esempio il campionamento) verranno disabilitate.
Linux
Verificare che l'impostazione dell'app
ApplicationInsightsAgent_EXTENSION_VERSION
sia impostata su un valore di~3
.Passare a
https://your site name.scm.azurewebsites.net/ApplicationInsights
.All'interno del sito confermare:
- La fonte dello stato esiste e appare come
Status source /var/log/applicationinsights/status_abcde1234567_89_0.json
. - Viene visualizzato il valore
Auto-Instrumentation enabled successfully
. Se non è presente un valore simile, significa che l'applicazione non è in esecuzione o non è supportata. Per assicurarsi che l'applicazione sia in esecuzione, provare a visitare manualmente l'URL dell'applicazione/gli endpoint dell'applicazione, che consente di rendere disponibili le informazioni di runtime. -
IKeyExists è
True
. Se èFalse
, aggiungereAPPINSIGHTS_INSTRUMENTATIONKEY
eAPPLICATIONINSIGHTS_CONNECTION_STRING
con il GUID ikey alle impostazioni dell'applicazione.
- La fonte dello stato esiste e appare come
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 nel servizio app, viene distribuita una singola pagina HTML statica come sito Web iniziale. La pagina Web statica carica anche una web part gestita da ASP.NET in IIS. Questo comportamento consente di testare il monitoraggio lato server senza codice, ma non supporta il monitoraggio lato client automatico.
Se vuoi testare il monitoraggio lato server e lato client senza codice per ASP.NET Core in un'app web di App Service, consigliamo di seguire le guide ufficiali per creare un'app web ASP.NET Core. Successivamente, usare le istruzioni nell'articolo corrente per abilitare il monitoraggio.
PHP e WordPress non sono supportati
I siti PHP e WordPress non sono supportati. Attualmente non è disponibile alcun SDK/agente supportato ufficialmente per il monitoraggio lato server di questi carichi di lavoro. Per tenere traccia delle transazioni lato client in un sito PHP o WordPress, aggiungere javaScript sul lato client alle pagine Web usando JavaScript SDK.
La tabella seguente fornisce una spiegazione del significato di questi valori, delle cause sottostanti e delle correzioni consigliate.
Valore del problema | Spiegazione | Correzione |
---|---|---|
AppAlreadyInstrumented:true |
Questo valore indica che l'estensione ha rilevato un aspetto dell'SDK già presente nell'applicazione e fa un passo indietro. Un riferimento a Microsoft.ApplicationInsights.AspNetCore o Microsoft.ApplicationInsights può causare questo valore. |
Rimuovere i riferimenti. Alcuni di questi riferimenti vengono aggiunti per impostazione predefinita da determinati modelli di Visual Studio. Le versioni precedenti di Visual Studio fanno riferimento a Microsoft.ApplicationInsights . |
AppAlreadyInstrumented:true |
Anche la presenza di Microsoft.ApplicationsInsights DLL nella cartella dell'app da una distribuzione precedente può causare questo valore. |
Pulire la cartella dell'app per assicurarsi che queste DLL vengano rimosse. Controllare sia la directory bin dell'app locale che la directory wwwroot nel servizio app. (Per controllare la directory wwwroot dell'app web di App Service, 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 dell'app APPINSIGHTS_INSTRUMENTATIONKEY . Le possibili cause includono la rimozione accidentale dei valori o l'aver dimenticato di impostare i valori nello script di automazione. |
Assicurarsi che l'impostazione sia presente nelle impostazioni per l'applicazione del servizio app. |
Passaggi successivi
- Esaminare le domande frequenti (FAQ): Monitoraggio nel servizio app di Azure per applicazioni .NET, Node.js, Python e Java.
- Abilitare .NET Profiler per le app del servizio app Azure nell'app live.
- 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.
- Configurare i test di disponibilità per l'applicazione.