Registrazione a livello di applicazione e servizioApplication and service level logging

La strumentazione del codice è la base di molti altri aspetti di monitoraggio dei servizi.Instrumenting the code is the basis for most other aspects of monitoring your services. La strumentazione è l'unico modo per rilevare eventuali problemi e individuare le correzioni necessarie.Instrumentation is the only way you can know that something is wrong, and to diagnose what needs to be fixed. Anche se è tecnicamente possibile connettere un debugger a un servizio di produzione, questa non è una procedura comune.Although technically it's possible to connect a debugger to a production service, it's not a common practice. I dati dettagliati di strumentazione sono quindi importanti.So, having detailed instrumentation data is important.

Alcuni prodotti instrumentano automaticamente il codice.Some products automatically instrument your code. Benché queste soluzioni siano efficaci, è quasi sempre necessaria una strumentazione manuale.Although these solutions can work well, manual instrumentation is almost always required. Alla fine, è necessario disporre di informazioni sufficienti per eseguire un debug accurato dell'applicazione.In the end, you must have enough information to forensically debug the application. Questo documento illustra diversi approcci alla strumentazione del codice e indicano quando è consigliabile scegliere un approccio rispetto a un altro.This document describes different approaches to instrumenting your code, and when to choose one approach over another.

Per esempi su come usare questi suggerimenti, vedere Aggiungere la registrazione all'applicazione di Service Fabric.For examples on how to use these suggestions, see Add logging to your Service Fabric application.

EventSourceEventSource

Quando si crea una soluzione di Azure Service Fabric da un modello in Visual Studio, viene generata una classe derivata da EventSource (ServiceEventSource o ActorEventSource).When you create a Service Fabric solution from a template in Visual Studio, an EventSource-derived class (ServiceEventSource or ActorEventSource) is generated. Viene creato un modello in cui è possibile aggiungere eventi per l'applicazione o il servizio.A template is created, in which you can add events for your application or service. Il nome di EventSource deve essere univoco e deve essere rinominato dalla stringa del modello predefinito MyCompany-<soluzione>-<progetto>.The EventSource name must be unique, and should be renamed from the default template string MyCompany-<solution>-<project>. Se esistono più definizioni di EventSource con lo stesso nome, potranno verificarsi errori di runtime.Having multiple EventSource definitions that use the same name causes an issue at run time. Ogni evento definito deve avere un identificatore univoco.Each defined event must have a unique identifier. Se un identificatore non è univoco, si verificherà un errore di runtime.If an identifier is not unique, a runtime failure occurs. Alcune organizzazioni preassegnano intervalli di valori per gli identificatori, in modo da evitare conflitti tra team di sviluppo separati.Some organizations preassign ranges of values for identifiers to avoid conflicts between separate development teams. Per altre informazioni, vedere il blog di Vance o la documentazione di MSDN.For more information, see Vance's blog or the MSDN documentation.

Registrazione di ASP.NET CoreASP.NET Core logging

È importante pianificare con attenzione la strumentazione del codice.It's important to carefully plan how you will instrument your code. Il piano di strumentazione corretto può consentire di evitare la potenziale destabilizzazione della codebase e la conseguente necessità di ripetere la strumentazione del codice.The right instrumentation plan can help you avoid potentially destabilizing your code base, and then needing to reinstrument the code. Per ridurre il rischio, è possibile scegliere una libreria di strumentazione come Microsoft.Extensions.Logging, inclusa in Microsoft ASP.NET Core.To reduce risk, you can choose an instrumentation library like Microsoft.Extensions.Logging, which is part of Microsoft ASP.NET Core. ASP.NET Core ha un'interfaccia ILogger che può essere usata con il provider preferito, riducendo al minimo l'effetto sul codice esistente.ASP.NET Core has an ILogger interface that you can use with the provider of your choice, while minimizing the effect on existing code. È possibile usare il codice in ASP.NET Core in Windows e Linux e in .NET Framework completo, in modo da standardizzare la strumentazione del codice.You can use the code in ASP.NET Core on Windows and Linux, and in the full .NET Framework, so your instrumentation code is standardized.

Application Insights SDKApplication Insights SDK

Application Insights offre un'integrazione avanzata predefinita con Service Fabric.Application Insights has a rich integration with Service Fabric out of the box. Gli utenti possono aggiungere i pacchetti nuget di intelligenza artificiale per Service Fabric e ricevere dati e log creati e raccolti visualizzabili nel portale di Azure.Users can add the AI Service Fabric nuget packages and receive data and logs created and collected viewable in the Azure portal. Inoltre, gli utenti sono invitati ad aggiungere i propri dati di telemetria per diagnosticare ed eseguire il debug delle applicazioni e rilevare i servizi e le parti dell'applicazione usate con maggior frequenza.Additionally, users are encouraged to add their own telemetry in order to diagnose and debug their applications and track which services and parts of their application are used the most. La classe TelemetryClient nell'SDK offre diversi modi per rilevare la telemetria nelle applicazioni.The TelemetryClient class in the SDK provides many ways to track telemetry in your applications. Consultare un esempio su come instrumentare e aggiungere Application Insights all'applicazione in questa esercitazione per il monitoraggio e la diagnosi di un'applicazione .NETCheck out an example of how to instrument and add application insights to your application in our tutorial for monitoring and diagnosing a .NET application

Passaggi successiviNext steps

Dopo aver scelto il provider di accesso per instrumentare le applicazioni e i servizi, è necessario aggregare i log e gli eventi prima di inviarli a una piattaforma.Once you have chosen your logging provider to instrument your applications and services, your logs and events need to be aggregated before they can be sent to any analysis platform. Per comprendere meglio alcune delle opzioni consigliate, vedere gli articoli relativi a Application Insights, EventFlow e WAD.Read about Application Insights, EventFlow, and WAD to better understand some of the recommended options.