Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Software gedraagt zich niet altijd zoals verwacht, maar .NET heeft hulpprogramma's en API's waarmee u deze problemen snel en effectief kunt diagnosticeren.
Systeemeigen AOT-implementatie is een toepassingsmodel dat beschikbaar is sinds .NET 7. Zie Systeemeigen AOT-diagnostische gegevens voor meer informatie over diagnostische ondersteuning voor .NET 8 voor systeemeigen AOT-apps.
In dit artikel vindt u de verschillende hulpprogramma's die u nodig hebt.
Debuggers
Met foutopsporingsprogramma's kunt u communiceren met uw programma. Het onderbreken, incrementeel uitvoeren, onderzoeken en hervatten geeft u inzicht in het gedrag van uw code. Een foutopsporingsprogramma is een goede keuze voor het diagnosticeren van functionele problemen die eenvoudig kunnen worden gereproduceerd.
Profilers
Met Profilers kunt u de prestaties van uw programma analyseren. U kunt gegevens verzamelen over geheugengebruik, CPU-gebruik en andere metrische gegevens om prestatieproblemen vast te stellen en te begrijpen.
Instrumentatie voor waarneembaarheid
.NET ondersteunt industriestandaard instrumentatietechnieken met behulp van metrische gegevens, logboeken en gedistribueerde traceringen, ook wel bekend als de drie pijlers van waarneembaarheid.
Instrumentatie is code die wordt toegevoegd aan een softwareproject om vast te leggen wat het doet. Deze informatie kan vervolgens worden verzameld in bestanden, databases of in het geheugen en geanalyseerd om te begrijpen hoe een softwareprogramma werkt. Dit wordt vaak gebruikt in productieomgevingen om te controleren op problemen en ze te diagnosticeren. De .NET-runtime heeft ingebouwde instrumentatie die optioneel kan worden ingeschakeld en API's waarmee u aangepaste instrumentatie kunt toevoegen die speciaal is voor uw toepassing.
Logs
Logboekregistratie is een techniek waarbij code wordt geïnstrueerd voor het produceren van een logboek, een record van interessante gebeurtenissen die plaatsvonden tijdens het uitvoeren van het programma. Vaak is een basislijnset met logboekgebeurtenissen standaard geconfigureerd en kan uitgebreidere logboekregistratie op aanvraag worden ingeschakeld om specifieke problemen vast te stellen. Prestatieoverhead is variabel, afhankelijk van hoeveel gegevens worden vastgelegd.
In de meeste gevallen is de ILogger-infrastructuur een goede standaardoptie, ongeacht of u logboekregistratie toevoegt aan een bestaand project of een nieuw project maakt.
ILogger ondersteunt snelle gestructureerde logboekregistratie, flexibele configuratie en een verzameling algemene sinks , waaronder de console, wat u ziet wanneer u een ASP.NET-app uitvoert. Daarnaast kan de ILogger interface ook fungeren als een gevel over veel implementaties van logboekregistratie van derden die uitgebreide functionaliteit en uitbreidbaarheid bieden.
Metrics
Metrische gegevens zijn numerieke metingen die in de loop van de tijd zijn vastgelegd om de prestaties en status van toepassingen te bewaken. Metrische gegevens worden vaak gebruikt om waarschuwingen te genereren wanneer potentiële problemen worden gedetecteerd. Metrische gegevens hebben een zeer lage overhead voor prestaties en veel services configureren ze als always-on telemetrie. Uitzonderingen worden vaak vastgelegd als metrische gegevens en kunnen worden samengevat om de kardinaliteit van de gegevens te verminderen. Zie Uitzonderingssamenvatting voor meer informatie.
Gedistribueerde traceringen
Gedistribueerde tracering is een speciale vorm van logboekregistratie waarmee u fouten en prestatieproblemen kunt lokaliseren binnen toepassingen die zijn gedistribueerd over meerdere computers of processen. Met deze techniek worden aanvragen bijgehouden via een toepassing die samen werk correleert dat wordt uitgevoerd door verschillende toepassingsonderdelen en het scheiden van ander werk dat de toepassing kan uitvoeren voor gelijktijdige aanvragen. Het is mogelijk om elke aanvraag te traceren en steekproeven kunnen eventueel worden gebruikt om de prestatieoverhead te binden.
Instrumentatie verzamelen
Er zijn meerdere manieren waarop de instrumentatiegegevens kunnen worden verzonden vanuit de toepassing, waaronder:
- OpenTelemetry - een platformoverschrijdende, leverancierneutrale standaard voor het verzamelen en exporteren van telemetrie
- .NET CLI-hulpprogramma's zoals dotnet-tellers
- dotnet-monitor - een agent voor het verzamelen van traceringen en telemetrie
- Bibliotheken of app-code van derden kunnen de informatie van de System.Diagnostics.Metrics, ILogger<TCategoryName>en System.Diagnostics.Activity API's lezen.
Gespecialiseerde diagnostische gegevens
Als foutopsporing of waarneembaarheid niet voldoende is, ondersteunt .NET aanvullende diagnostische mechanismen, zoals EventSource, Dumps, DiagnosticSource. Zie het artikel over gespecialiseerde diagnostische gegevens voor meer informatie.
Diagnostische hulpprogramma's
.NET ondersteunt een aantal CLI-hulpprogramma's die kunnen worden gebruikt om uw toepassingen te diagnosticeren.
Zelfstudies voor diagnostische gegevens van .NET Core
Fouten opsporen in een geheugenlek
Zelfstudie: Fouten opsporen in een geheugenlek helpt bij het vinden van een geheugenlek. Het hulpprogramma dotnet-counters wordt gebruikt om het lek te bevestigen en het dotnet-dump-hulpprogramma wordt gebruikt om het lek te diagnosticeren.
Debuggen van hoog CPU-gebruik
Zelfstudie: Fouten opsporen in hoog CPU-gebruik helpt u bij het onderzoeken van een hoog CPU-gebruik. Het maakt gebruik van het hulpprogramma dotnet-counters om het hoge CPU-gebruik te bevestigen. Vervolgens wordt u begeleid bij het gebruik van Trace voor het hulpprogramma voor prestatieanalyse (dotnet-trace) of Linux perf om het CPU-gebruiksprofiel te verzamelen en weer te geven.
Impasse voor foutopsporing
Zelfstudie: Fouten opsporen in impasses laat zien hoe u het hulpprogramma dotnet-dump gebruikt om threads en vergrendelingen te onderzoeken.
Fouten opsporen in ThreadPool Starvation
Zelfstudie: Fouten opsporen in threadPool-starvation laat zien hoe u de dotnet-counters en dotnet-stack-hulpprogramma's gebruikt om ThreadPool-starvation te onderzoeken.
Fouten opsporen in een StackOverflow
Zelfstudie: Fouten opsporen in een StackOverflow laat zien hoe u fouten kunt opsporen in een StackOverflowException Linux-bestand.
Fouten opsporen in Linux-dumps
Fouten opsporen in Linux-dumps legt uit hoe u dumps op Linux verzamelt en analyseert.
Prestaties meten met EventCounters
Zelfstudie: Prestaties meten met EventCounters in .NET laat zien hoe u de API gebruikt om de EventCounter prestaties in uw .NET-app te meten.
Uw eigen diagnostisch hulpprogramma schrijven
Met de diagnostische clientbibliotheek kunt u uw eigen aangepaste diagnostisch hulpprogramma schrijven dat het meest geschikt is voor uw diagnostische scenario. Zie de naslaginformatie over microsoft.Diagnostics.NETCore.Client-API voor meer informatie.