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.
Questo articolo descrive come abilitare e configurare Application Insights per un'applicazione ASP.NET Core.
Attenzione
Si consiglia di utilizzare la Distribuzione OpenTelemetry di Azure Monitor per le nuove applicazioni o per i clienti, al fine di supportare Azure Monitor Application Insights. La distribuzione OpenTelemetry di Azure Monitor offre funzionalità ed esperienze simili a quelle di Application Insights SDK. È possibile eseguire la migrazione da Application Insights SDK usando le guide alla migrazione per .NET, Node.js e Python, ma stiamo ancora lavorando per aggiungere altre funzionalità per la compatibilità con le versioni precedenti.
Application Insights può raccogliere i dati di telemetria seguenti dall'applicazione ASP.NET Core:
- Richieste
- Dipendenze
- Eccezioni
- Contatori delle prestazioni
- Battiti cardiaci
- Log
Viene usata un'applicazione MVC di esempio. Se si utilizza il Servizio Worker, usare le istruzioni in Application Insights per le applicazioni del Servizio Worker.
È disponibile un 'offerta .NET basata su OpenTelemetry. Per altre informazioni, vedere Panoramica di OpenTelemetry.
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à.
Nota
Se si vuole usare il provider ILogger autonomo, usare Microsoft.Extensions.Logging.ApplicationInsight.
Scenari supportati
Application Insights SDK per ASP.NET Core può monitorare le applicazioni indipendentemente da dove o come vengono eseguite. Se l'applicazione è in esecuzione e ha connettività di rete ad Azure, è possibile raccogliere i dati di telemetria. Il monitoraggio di Application Insights è supportato ovunque sia supportato .NET Core e comprende gli scenari seguenti:
- Sistema operativo: Windows, Linux o Mac
- Metodo di hosting: interno o esterno al processo
- Metodo di distribuzione: dipendente dal framework o autonomo
- Server Web: IIS (Internet Information Server) o Kestrel
- Piattaforma di hosting: la funzionalità Web Apps del Servizio app di Azure, Macchine virtuali di Azure, Docker e Azure Kubernetes Service (AKS)
- Versione di .NET: tutte le versioni di .NET supportate ufficialmente non in fase di anteprima
- IDE: Visual Studio, Visual Studio Code o riga di comando
Prerequisiti
- Un'applicazione ASP.NET Core funzionante. Se è necessario creare un'applicazione ASP.NET Core, seguire questa esercitazione di ASP.NET Core.
- Un riferimento a una versione supportata del pacchetto NuGet Application Insights.
- Una stringa di connessione valida di Application Insights. Questa stringa è necessaria per inviare dati di telemetria ad Application Insights. Se è necessario creare una nuova risorsa di Application Insights per ottenere una stringa di connessione, vedere Creare una risorsa di Application Insights.
Abilitare i dati di telemetria lato server di Application Insights (Visual Studio)
Per Visual Studio per Mac, usare le linee guida manuali. Solo la versione di Windows di Visual Studio supporta questa procedura.
Aprire il progetto in Visual Studio.
Vai a Progetto>Aggiungi Application Insights Telemetry.
Selezionare Azure Application Insights>Avanti.
Scegliere la sottoscrizione e l'istanza di Application Insights. In alternativa, è possibile creare una nuova istanza con Crea nuovo. Selezionare Avanti.
Aggiungere o confermare la stringa di connessione di Application Insights. Deve essere prepopolata in base alla selezione nel passaggio precedente. Selezionare Fine.
Dopo aver aggiunto Application Insights al progetto, verificare di usare la versione stabile più recente dell'SDK. Passare a Progetto>Gestisci pacchetti NuGet>Microsoft.ApplicationInsights.AspNetCore. Se necessario, selezionare Aggiorna.
Abilitare i dati di telemetria lato server di Application Insights (senza usare Visual Studio)
Installare il pacchetto NuGet Application Insights SDK per ASP.NET Core.
È consigliabile usare sempre la versione stabile più recente. Le note sulla versione complete per l'SDK sono disponibili nel repository GitHub open source.
L'esempio di codice seguente illustra le modifiche da aggiungere al file .csproj del progetto.
<ItemGroup> <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.21.0" /> </ItemGroup>
Aggiungere
AddApplicationInsightsTelemetry()
alla classe program.cs .Aggiungere
builder.Services.AddApplicationInsightsTelemetry();
dopo il metodo , come nell'esempioWebApplication.CreateBuilder()
seguente:// This method gets called by the runtime. Use this method to add services to the container. var builder = WebApplication.CreateBuilder(args); // The following line enables Application Insights telemetry collection. builder.Services.AddApplicationInsightsTelemetry(); // This code adds other services for your application. builder.Services.AddMvc(); var app = builder.Build();
Aggiungi la stringa di connessione, che può essere fatto in tre modi:
(Scelta consigliata) Impostare la stringa di connessione nella configurazione.
Impostare il stringa di connessione in appsettings.json e assicurarsi che il file di configurazione venga copiato nella cartella radice dell'applicazione durante la pubblicazione.
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "ApplicationInsights": { "ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000" } }
Impostare la stringa di connessione nella
APPLICATIONINSIGHTS_CONNECTION_STRING
variabile di ambiente oApplicationInsights:ConnectionString
nel file di configurazione JSON.Ad esempio:
SET ApplicationInsights:ConnectionString = <Copy connection string from Application Insights Resource Overview>
SET APPLICATIONINSIGHTS_CONNECTION_STRING = <Copy connection string from Application Insights Resource Overview>
- In genere, la variabile
APPLICATIONINSIGHTS_CONNECTION_STRING
viene usata in App Web. Può essere usata anche in tutte le posizioni in cui è supportato questo SDK.
Nota
Una stringa di connessione specificata nel codice prevale sulla variabile di ambiente
APPLICATIONINSIGHTS_CONNECTION_STRING
, che prevale su altre opzioni.Impostare la stringa di connessione nel codice.
Specificare una stringa di connessione come parte dell'argomento
ApplicationInsightsServiceOptions
aAddApplicationInsightsTelemetry
nella classe program.cs.
Segreti utente e altri provider di configurazione
Se si vuole archiviare la stringa di connessione in segreti utente di ASP.NET Core o recuperarla da un altro provider di configurazione, è possibile usare l'overload con un parametro Microsoft.Extensions.Configuration.IConfiguration
. Un parametro di esempio è services.AddApplicationInsightsTelemetry(Configuration);
.
Nella versione Microsoft.ApplicationInsights.AspNetCore
di e versioni successive, chiamando services.AddApplicationInsightsTelemetry()
la stringa di connessione viene letta automaticamente da Microsoft.Extensions.Configuration.IConfiguration
dell'applicazione. Non è necessario specificare in modo esplicito IConfiguration
.
Se IConfiguration
la configurazione è stata caricata da più provider, services.AddApplicationInsightsTelemetry
assegna la priorità alla configurazione da appsettings.json, indipendentemente dall'ordine in cui vengono aggiunti i provider. Utilizzare il services.AddApplicationInsightsTelemetry(IConfiguration)
metodo per leggere la configurazione da IConfiguration
senza questo trattamento preferenziale per appsettings.json.
Eseguire l'applicazione
Eseguire l'applicazione ed effettuare richieste. I dati di telemetria dovrebbero ora fluire in Application Insights. Application Insights SDK raccoglie automaticamente le richieste Web in ingresso all'applicazione, insieme ai dati di telemetria seguenti.
Metriche in tempo reale
È possibile usare le metriche attive per verificare rapidamente se il monitoraggio delle applicazioni con Application Insights è configurato correttamente. La visualizzazione dei dati di telemetria nel portale di Azure può richiedere alcuni minuti, ma il riquadro delle metriche attive mostra l'utilizzo della CPU del processo in esecuzione quasi in tempo reale. Può anche visualizzare altri dati di telemetria, ad esempio richieste, dipendenze e tracce.
Abilitare le metriche attive usando il codice per qualsiasi applicazione .NET
Nota
Le metriche attive sono abilitate per impostazione predefinita quando si esegue l'onboarding seguendo le istruzioni consigliate per le applicazioni .NET.
Per configurare manualmente le metriche in tempo reale:
Installare il pacchetto NuGet Microsoft.ApplicationInsights.PerfCounterCollector.
Il codice dell'app console di esempio seguente mostra la configurazione delle metriche attive:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
// Create a TelemetryConfiguration instance.
TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
config.ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000";
QuickPulseTelemetryProcessor quickPulseProcessor = null;
config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
.Use((next) =>
{
quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
return quickPulseProcessor;
})
.Build();
var quickPulseModule = new QuickPulseTelemetryModule();
// Secure the control channel.
// This is optional, but recommended.
quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
quickPulseModule.Initialize(config);
quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);
// Create a TelemetryClient instance. It is important
// to use the same TelemetryConfiguration here as the one
// used to set up live metrics.
TelemetryClient client = new TelemetryClient(config);
// This sample runs indefinitely. Replace with actual application logic.
while (true)
{
// Send dependency and request telemetry.
// These will be shown in live metrics.
// CPU/Memory Performance counter is also shown
// automatically without any additional steps.
client.TrackDependency("My dependency", "target", "http://sample",
DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
client.TrackRequest("My Request", DateTimeOffset.Now,
TimeSpan.FromMilliseconds(230), "200", true);
Task.Delay(1000).Wait();
}
L'esempio precedente riguarda un'app console, ma lo stesso codice può essere usato in qualsiasi applicazione .NET. Se sono abilitati altri moduli di telemetria per la raccolta automatica dei dati di telemetria, è importante assicurarsi che la stessa configurazione usata per l'inizializzazione di tali moduli venga usata per il modulo delle metriche attive.
Log ILogger
La configurazione predefinita raccoglie log ILogger
Warning
e log di maggiore gravità. Per altre informazioni, vedere Come si personalizza la raccolta dei log ILogger?.
Dipendenze
La raccolta delle dipendenze è abilitata per impostazione predefinita. L'articolo Rilevamento della dipendenza in Application Insights illustra le dipendenze raccolte automaticamente e contiene anche le istruzioni per eseguire il rilevamento manuale.
Contatori delle prestazioni
Il supporto dei contatori delle prestazioni nelle applicazioni ASP.NET Core è limitato:
- Le versioni dell'SDK 2.4.1 e successive raccolgono i contatori delle prestazioni se l'applicazione è in esecuzione in App Web (Windows).
- Le versioni di SDK 2.7.1 e successive raccolgono contatori delle prestazioni se l'applicazione è in esecuzione in Windows e ha come destinazione
netstandard2.0
o versioni successive. - Per le applicazioni destinate a .NET Framework, tutte le versioni dell'SDK supportano i contatori delle prestazioni.
- Le versioni dell'SDK 2.8.0 e successive supportano il contatore di CPU/memoria in Linux. Linux non supporta nessun altro contatore. Per ottenere i contatori di sistema in Linux e in altri ambienti non Windows, usare EventCounter.
EventCounter
Per impostazione predefinita, EventCounterCollectionModule
è abilitata. Per informazioni su come configurare l'elenco dei contatori da raccogliere, vedere Introduzione a EventCounter.
Arricchire i dati tramite HTTP
HttpContext.Features.Get<RequestTelemetry>().Properties["myProp"] = someData
Abilitare la telemetria lato client per le applicazioni Web
I passaggi precedenti sono sufficienti per iniziare a raccogliere i dati di telemetria lato server. Se l'applicazione include componenti sul lato client, seguire i passaggi successivi per iniziare a raccogliere dati di telemetria sull'utilizzo usando l'inserimento di script del caricatore SDK JavaScript (Web) in base alla configurazione.
In _ViewImports.cshtml, aggiungere iniezione:
@inject Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet JavaScriptSnippet
In _Layout.cshtml inserire
HtmlHelper
alla fine della<head>
sezione, ma prima di qualsiasi altro script. Per segnalare dati di telemetria JavaScript personalizzati dalla pagina, inserirli dopo questo frammento di codice:@Html.Raw(JavaScriptSnippet.FullScript) </head>
In alternativa all'uso di FullScript
, è disponibile ScriptBody
a partire da Application Insights SDK per ASP.NET Core versione 2.14. Usare ScriptBody
se è necessario controllare il tag <script>
per impostare criteri di sicurezza del contenuto:
<script> // apply custom changes to this script tag.
@Html.Raw(JavaScriptSnippet.ScriptBody)
</script>
I nomi di file con estensione cshtml a cui si fa riferimento in precedenza provengono da un modello di applicazione MVC predefinito. In definitiva, se si vuole abilitare correttamente il monitoraggio lato client per l'applicazione, lo script del caricatore dell'SDK JavaScript (Web) deve essere visualizzato nella <head>
sezione di ogni pagina dell'applicazione da monitorare. Aggiungere lo script del caricatore SDK (Web) a _Layout.cshtml in un modello di applicazione per abilitare il monitoraggio lato client.
Se il progetto non include _Layout.cshtml, è comunque possibile aggiungere il monitoraggio lato client aggiungendo lo script del caricatore sdk JavaScript (Web) a un file equivalente che controlla tutte <head>
le pagine all'interno dell'app. In alternativa, è possibile aggiungere lo script del caricatore SDK JavaScript (Web) a più pagine, ma non è consigliabile.
Nota
L'inserimento di JavaScript offre un'esperienza di configurazione predefinita. Se sono necessari interventi di configurazione oltre l'impostazione della stringa di connessione, è necessario rimuovere l'inserimento automatico come descritto e aggiungere manualmente JavaScript SDK.
Configurare Application Insights SDK
È possibile personalizzare Application Insights SDK per ASP.NET Core per modificare la configurazione predefinita. Gli utenti di Application Insights ASP.NET SDK potrebbero avere familiarità con la modifica della configurazione usando ApplicationInsights.config o modificando TelemetryConfiguration.Active
. Per ASP.NET Core, apportare quasi tutte le modifiche di configurazione nel ConfigureServices()
metodo della classe Startup.cs , a meno che non venga indicato diversamente. Nelle sezioni seguenti sono disponibili altre informazioni.
Nota
Nelle applicazioni ASP.NET Core la modifica della configurazione modificando TelemetryConfiguration.Active
non è supportata.
Usare ApplicationInsightsServiceOptions
È possibile modificare alcune impostazioni comuni passando ApplicationInsightsServiceOptions
a AddApplicationInsightsTelemetry
, come in questo esempio:
var builder = WebApplication.CreateBuilder(args);
var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
// Disables adaptive sampling.
aiOptions.EnableAdaptiveSampling = false;
// Disables live metrics (also known as QuickPulse).
aiOptions.EnableQuickPulseMetricStream = false;
builder.Services.AddApplicationInsightsTelemetry(aiOptions);
var app = builder.Build();
Questa tabella include l'elenco completo delle impostazioni di ApplicationInsightsServiceOptions
:
Impostazione | Descrizione | Predefinito |
---|---|---|
EnablePerformanceCounterCollectionModule | Abilitare/disabilitare PerformanceCounterCollectionModule . |
Vero |
Modulo di abilitazione della telemetria di tracciamento delle richieste | Abilitare/disabilitare RequestTrackingTelemetryModule . |
Vero |
EnableEventCounterCollectionModule | Abilitare/disabilitare EventCounterCollectionModule . |
Vero |
EnableDependencyTrackingTelemetryModule | Abilitare/disabilitare DependencyTrackingTelemetryModule . |
Vero |
EnableAppServicesHeartbeatTelemetryModule | Abilitare/disabilitare AppServicesHeartbeatTelemetryModule . |
Vero |
EnableAzureInstanceMetadataTelemetryModule | Abilitare/disabilitare AzureInstanceMetadataTelemetryModule . |
Vero |
Abilita il flusso di metriche QuickPulse | Abilitare/disabilitare la funzionalità LiveMetrics. | Vero |
EnableAdaptiveSampling | Abilita/disabilita il campionamento adattivo. | Vero |
AbilitaBattitoCuore | Abilitare/disabilitare la funzionalità heartbeat. Invia periodicamente (impostazione predefinita 15 minuti) una metrica personalizzata denominata HeartbeatState con informazioni sul runtime, ad esempio la versione di .NET e le informazioni sull'ambiente di Azure, se applicabile. |
Vero |
AddAutoCollectedMetricExtractor | Abilitare/disabilitare AutoCollectedMetrics extractor . Questo processore di telemetria invia metriche preaggregate relative a richieste/dipendenze prima che venga eseguito il campionamento. |
Vero |
RequestCollectionOptions.TrackExceptions | Abilitare/disabilitare la segnalazione di rilevamento delle eccezioni non gestite dal modulo di raccolta delle richieste. | False in netstandard2.0 (perché le eccezioni vengono rilevate con ApplicationInsightsLoggerProvider ). True in caso contrario. |
EnableDiagnosticsTelemetryModule | Abilitare/disabilitare DiagnosticsTelemetryModule . Con la disabilitazione vengono ignorate le impostazioni seguenti: EnableHeartbeat , EnableAzureInstanceMetadataTelemetryModule e EnableAppServicesHeartbeatTelemetryModule . |
Vero |
Per l'elenco più recente, vedere le impostazioni configurabili in ApplicationInsightsServiceOptions
.
Raccomandazione di configurazione per Microsoft.ApplicationInsights.AspNetCore SDK 2.15.0 e versioni successive
In Microsoft.ApplicationInsights.AspNetCore SDK versione 2.15.0 e versioni successive configurare ogni impostazione disponibile in ApplicationInsightsServiceOptions
, inclusa ConnectionString
. Utilizzare l'istanza dell'applicazione IConfiguration
. Le impostazioni devono trovarsi nella sezione ApplicationInsights
, come illustrato nell'esempio seguente. La sezione seguente di appsettings.json configura la stringa di connessione e disabilita il campionamento adattivo e la raccolta dei contatori delle prestazioni.
{
"ApplicationInsights": {
"ConnectionString": "InstrumentationKey=00000000-0000-0000-0000-000000000000",
"EnableAdaptiveSampling": false,
"EnablePerformanceCounterCollectionModule": false
}
}
Se viene utilizzato builder.Services.AddApplicationInsightsTelemetry(aiOptions)
per ASP.NET Core 6.0 o services.AddApplicationInsightsTelemetry(aiOptions)
per ASP.NET Core 3.1 e versioni precedenti, viene eseguito l'override delle impostazioni da Microsoft.Extensions.Configuration.IConfiguration
.
Campionamento
Application Insights SDK per ASP.NET Core supporta sia il campionamento a frequenza fissa che il campionamento adattivo. Per impostazione predefinita, il campionamento adattivo è abilitato.
Per altre informazioni, vedere Configurare il campionamento adattivo per le applicazioni ASP.NET Core.
Aggiungere TelemetryInitializer
Per arricchire i dati di telemetria con altre informazioni, usare gli inizializzatori di telemetria.
Aggiungere qualsiasi nuovo TelemetryInitializer
al contenitore DependencyInjection
, come illustrato nel codice seguente. L'SDK preleva automaticamente qualsiasi TelemetryInitializer
aggiunto al contenitore DependencyInjection
.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
var app = builder.Build();
Nota
builder.Services.AddSingleton<ITelemetryInitializer, MyCustomTelemetryInitializer>();
funziona per inizializzatori semplici. Per gli altri, è necessario builder.Services.AddSingleton(new MyCustomTelemetryInitializer() { fieldName = "myfieldName" });
.
Rimuovere TelemetryInitializers
Per impostazione predefinita, gli inizializzatori di telemetria sono presenti. Per rimuovere tutti gli inizializzatori di telemetria o alcuni specifici, usare il codice di esempio seguente dopo la chiamata di AddApplicationInsightsTelemetry()
.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry();
// Remove a specific built-in telemetry initializer
var tiToRemove = builder.Services.FirstOrDefault<ServiceDescriptor>
(t => t.ImplementationType == typeof(AspNetCoreEnvironmentTelemetryInitializer));
if (tiToRemove != null)
{
builder.Services.Remove(tiToRemove);
}
// Remove all initializers
// This requires importing namespace by using Microsoft.Extensions.DependencyInjection.Extensions;
builder.Services.RemoveAll(typeof(ITelemetryInitializer));
var app = builder.Build();
Aggiungere processori di telemetria
È possibile aggiungere processori di telemetria personalizzati a TelemetryConfiguration
usando il metodo di estensione AddApplicationInsightsTelemetryProcessor
in IServiceCollection
. I processori di telemetria vengono usati in scenari di filtro avanzati. Usare l'esempio seguente:
var builder = WebApplication.CreateBuilder(args);
// ...
builder.Services.AddApplicationInsightsTelemetry();
builder.Services.AddApplicationInsightsTelemetryProcessor<MyFirstCustomTelemetryProcessor>();
// If you have more processors:
builder.Services.AddApplicationInsightsTelemetryProcessor<MySecondCustomTelemetryProcessor>();
var app = builder.Build();
Configurare o rimuovere i moduli di telemetria predefiniti
Application Insights raccoglie automaticamente i dati di telemetria relativi a carichi di lavoro specifici senza richiedere il rilevamento manuale da parte dell'utente.
Per impostazione predefinita, sono abilitati i seguenti moduli di raccolta automatica. Questi moduli sono responsabili della raccolta automatica dei dati di telemetria. È possibile disabilitarli o configurarli per modificarne il comportamento predefinito.
RequestTrackingTelemetryModule
: raccoglie RequestTelemetry dalle richieste Web in ingresso.DependencyTrackingTelemetryModule
: raccoglie DependencyTelemetry da chiamate HTTP e chiamate SQL in uscita.PerformanceCollectorModule
: raccoglie i contatori delle prestazioni di Windows.QuickPulseTelemetryModule
: raccoglie i dati di telemetria da visualizzare nel riquadro delle metriche attive.AppServicesHeartbeatTelemetryModule
: raccoglie i battiti cardiaci (che vengono inviati come metriche personalizzate) relativi all'ambiente di App Service in cui è ospitata l'applicazione.AzureInstanceMetadataTelemetryModule
: Raccoglie i battiti cardiaci (che vengono inviati come metriche personalizzate) sull'ambiente di VM di Azure in cui è ospitata l'applicazione.EventCounterCollectionModule
: raccoglie EventCounter. Questo modulo è una nuova funzionalità ed è disponibile nell'SDK versione 2.8.0 e successive.
Per configurare qualsiasi TelemetryModule
predefinito, usare il metodo di estensione ConfigureTelemetryModule<T>
in IServiceCollection
, come illustrato nell'esempio seguente:
using Microsoft.ApplicationInsights.DependencyCollector;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry();
// The following configures DependencyTrackingTelemetryModule.
// Similarly, any other default modules can be configured.
builder.Services.ConfigureTelemetryModule<DependencyTrackingTelemetryModule>((module, o) =>
{
module.EnableW3CHeadersInjection = true;
});
// The following removes all default counters from EventCounterCollectionModule, and adds a single one.
builder.Services.ConfigureTelemetryModule<EventCounterCollectionModule>((module, o) =>
{
module.Counters.Add(new EventCounterCollectionRequest("System.Runtime", "gen-0-size"));
});
// The following removes PerformanceCollectorModule to disable perf-counter collection.
// Similarly, any other default modules can be removed.
var performanceCounterService = builder.Services.FirstOrDefault<ServiceDescriptor>(t => t.ImplementationType == typeof(PerformanceCollectorModule));
if (performanceCounterService != null)
{
builder.Services.Remove(performanceCounterService);
}
var app = builder.Build();
Nelle versioni 2.12.2 e successive ApplicationInsightsServiceOptions
include un'opzione semplice per disabilitare qualsiasi modulo predefinito.
Configurare un canale di telemetria
Il canale di telemetria predefinito è ServerTelemetryChannel
. Nell'esempio seguente viene illustrato come eseguirne l'override.
using Microsoft.ApplicationInsights.Channel;
var builder = WebApplication.CreateBuilder(args);
// Use the following to replace the default channel with InMemoryChannel.
// This can also be applied to ServerTelemetryChannel.
builder.Services.AddSingleton(typeof(ITelemetryChannel), new InMemoryChannel() {MaxTelemetryBufferCapacity = 19898 });
builder.Services.AddApplicationInsightsTelemetry();
var app = builder.Build();
Nota
Per svuotare il buffer, vedere Svuotamento dei dati. Ad esempio, potrebbe essere necessario scaricare il buffer se si usa l'SDK in un'applicazione che si arresta.
Disabilitare la telemetria in modo dinamico
Per disabilitare la telemetria in modo condizionale e dinamico, è possibile risolvere l'istanza di TelemetryConfiguration
con un contenitore di inserimento delle dipendenze ASP.NET Core in qualsiasi punto del codice e impostarvi il flag DisableTelemetry
.
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddApplicationInsightsTelemetry();
// any custom configuration can be done here:
builder.Services.Configure<TelemetryConfiguration>(x => x.DisableTelemetry = true);
var app = builder.Build();
L'esempio di codice precedente impedisce l'invio di dati di telemetria ad Application Insights. Non impedisce ai moduli di raccolta automatica di raccogliere dati di telemetria. Per rimuovere un particolare modulo di raccolta automatica, vedere Rimuovere il modulo di telemetria.
Risoluzione dei problemi
Vedere l'articolo sulla risoluzione dei problemi dedicato.
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. Consulta Risolvere i problemi di dati di telemetria mancanti nelle applicazioni in Azure Monitor Application Insights.
SDK open source
Leggere e contribuire al codice.
Per gli aggiornamenti e le correzioni di bug più recenti, vedere le note sulla versione.
Note sulla versione
Per le versioni 2.12 e successive: SDK .NET (inclusi ASP.NET, ASP.NET Core e adattatori di registrazione)
Gli aggiornamenti del servizio riepilogano anche i principali miglioramenti di Application Insights.
Passaggi successivi
- Per esaminare le domande frequenti, vedere Application Insights for ASP.NET Core FAQ (Domande frequenti su Application Insights per ASP.NET Core)
- Verificare di eseguire una versione supportata di Application Insights SDK.
- Esplorare i flussi degli utenti per identificare in che modo gli utenti si spostano nell'app.
- Configurare una raccolta di snapshot per visualizzare lo stato del codice sorgente e delle variabili nel momento in cui viene generata un'eccezione.
- Usare l'API per inviare gli eventi e le metriche per una visualizzazione più dettagliata dell'utilizzo e delle prestazioni dell'app.
- Usare test di disponibilità per controllare costantemente l'app da ogni parte del mondo.
- Informazioni sull'inserimento delle dipendenze in ASP.NET Core.