Eventi
17 mar, 23 - 21 mar, 23
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
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.
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.
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.
.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.
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à.
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.
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.
Esistono diversi modi per far uscire i dati di strumentazione dall'applicazione, tra cui:
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.
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.
.NET supporta diversi strumenti dell'interfaccia della riga di comando che possono essere usati per diagnosticare le applicazioni.
La libreria client di diagnostica consente di scrivere uno strumento di diagnostica personalizzato più adatto per lo scenario di diagnostica. Cercare informazioni nella guida di riferimento all'API Microsoft.Diagnostics.NETCore.Client.
L’Esercitazione: Eseguire il debug di una perdita di memoria illustra la ricerca di una perdita di memoria. Lo strumento dotnet-counters viene usato per confermare la perdita e lo strumento dotnet-dump viene usato per diagnosticare la perdita.
L’Esercitazione: Eseguire il debug di un utilizzo elevato della CPU illustra l'analisi dell'utilizzo elevato della CPU. Usa lo strumento dotnet-counters per confermare l'utilizzo elevato della CPU. Illustra quindi l'uso di Trace per l'utilità di analisi delle prestazioni (dotnet-trace
) o Linux perf
per raccogliere e visualizzare il profilo di utilizzo della CPU.
L’Esercitazione: Eseguire il debug di deadlock illustra come usare lo strumento dotnet-dump per analizzare i thread e i blocchi.
L’Esercitazione: Eseguire il debug della starvation di threadPool illustra come usare gli strumenti dotnet-counters e dotnet-stack per analizzare la starvation di ThreadPool.
L’Esercitazione: Eseguire il debug di uno StackOverflow illustra come eseguire il debug di un oggetto StackOverflowException in Linux.
Eseguire il debug dei dump di Linux illustra come raccogliere e analizzare i dump in Linux.
Esercitazione: Misurare le prestazioni usando EventCounters in .NET illustra come usare l'API EventCounter per misurare le prestazioni nell'app .NET.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
Eventi
17 mar, 23 - 21 mar, 23
Partecipa alla serie meetup per creare soluzioni di intelligenza artificiale scalabili basate su casi d'uso reali con altri sviluppatori ed esperti.
Iscriviti subitoFormazione
Modulo
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.
Certificazione
Microsoft Certified: Azure Developer Associate - Certifications
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.