Quali strumenti di diagnostica sono disponibili in .NET Core?
Articolo
Il software non sempre si comporta come previsto, ma .NET Core offre strumenti e API utili per diagnosticare questi problemi in modo rapido ed efficace.
Distribuzione AOT nativa è un modello di applicazione disponibile a partire da .NET 7. Per informazioni sul supporto di diagnostica .NET 8 per le app AOT native, vedere diagnostica AOT nativa.
Questo articolo consente di trovare i vari strumenti necessari.
Debugger
I debugger consentono di interagire con il programma. La sospensione, l'esecuzione incrementale, l'analisi e la ripresa forniscono informazioni approfondite sul comportamento del codice. Un debugger è una buona scelta per diagnosticare i problemi funzionali che possono essere facilmente riprodotti.
Unit test
Il testing unità è un componente chiave dell'integrazione continua e della distribuzione di software di alta qualità. Gli unit test sono progettati per offrire avvisi in anticipo in caso di problemi funzionali.
Strumentazione per l'osservabilità
.NET supporta tecniche di strumentazione standard del settore che usano metriche, log e tracce distribuite, comunemente note come i tre pilastri dell'osservabilità.
La strumentazione è il codice aggiunto a un progetto software per registrare le operazioni che sta eseguendo. Queste informazioni possono quindi essere raccolte in file, database o in memoria e analizzate per comprendere il funzionamento di un programma software. Viene spesso usato negli ambienti di produzione per monitorare i problemi e diagnosticarli. Il runtime .NET include la strumentazione predefinita che può essere abilitata facoltativamente e API che consentono di aggiungere strumentazione personalizzata specializzata per l'applicazione.
Registri
La registrazione è una tecnica in cui il codice viene instrumentato per produrre un log, un record di eventi interessanti che si sono verificati durante l'esecuzione del programma. Spesso un set di base di eventi di log è configurato per impostazione predefinita e la registrazione più estesa può essere abilitata su richiesta per diagnosticare problemi specifici. Il sovraccarico delle prestazioni è variabile a seconda della quantità di dati registrati.
Per la maggior parte dei casi, se si aggiunge la registrazione a un progetto esistente o si crea un nuovo progetto, l'infrastruttura ILogger è una scelta predefinita ottimale. ILogger supporta la registrazione strutturata veloce, la configurazione flessibile e una raccolta di sink comuni inclusa la console, che è ciò che viene visualizzato quando si esegue un'app ASP.NET. Inoltre, l'interfaccia ILogger può fungere anche da facciata su molte implementazioni di registrazione di terze parti che offrono funzionalità avanzate ed estendibilità.
Metrica
Le metriche sono misurazioni numeriche registrate nel tempo per monitorare le prestazioni e l'integrità dell'applicazione. Le metriche vengono spesso usate per generare avvisi quando vengono rilevati potenziali problemi. Le metriche hanno un sovraccarico delle prestazioni molto basso e molti servizi li configurano come dati di telemetria sempre attivi. Le eccezioni vengono spesso registrate come metriche e possono essere riepilogate per ridurre la cardinalità dei dati. Per altre informazioni, vedere Riepilogo delle eccezioni.
Tracce distribuite
La traccia distribuita è una forma specializzata di registrazione che consente di localizzare gli errori e i problemi di prestazioni all'interno delle applicazioni distribuite tra più computer o processi. Questa tecnica tiene traccia delle richieste tramite un'applicazione che correla il lavoro svolto da diversi componenti dell'applicazione e la separazione da altre operazioni che l'applicazione può eseguire per le richieste simultanee. È possibile tracciare ogni richiesta e il campionamento può essere usato facoltativamente per associare il sovraccarico delle prestazioni.
Raccogliere la strumentazione
Esistono diversi modi per far uscire i dati di strumentazione dall'applicazione, tra cui:
OpenTelemetry: standard multipiattaforma indipendente dal fornitore per la raccolta e l’esportazione dei dati di telemetria
Il monitoraggio delle risorse è il processo di osservazione e monitoraggio continuo dell'utilizzo, delle prestazioni e della disponibilità di varie risorse di calcolo all'interno di un sistema. Queste risorse possono includere componenti hardware, ad esempio CPU, memoria, archiviazione su disco e interfacce di rete, nonché componenti software (ad esempio applicazioni e servizi). Il monitoraggio delle risorse viene spesso usato per rilevare e diagnosticare i problemi di prestazioni e per assicurarsi che il sistema funzioni entro i parametri previsti.
Diagnostica specializzata
Se il debug o l'osservabilità non è sufficiente, .NET supporta meccanismi di diagnostica aggiuntivi, ad esempio EventSource, Dump, DiagnosticSource. Per altre informazioni, vedere l'articolo relativo alla diagnostica specializzata.
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
Usare Web App Down (App Web inattiva), il monitoraggio degli arresti anomali e Ask Genie per la risoluzione dei problemi. Usare questi strumenti per monitorare la disponibilità dell'applicazione e della piattaforma, identificare eccezioni non gestite, acquisire dump di memoria e stack di chiamate e trovare aree di analisi e diagnostica.
Progettare soluzioni end-to-end in Microsoft Azure per creare Funzioni di Azure, implementare e gestire app Web, sviluppare soluzioni che usano Archiviazione di Azure e altro ancora.