Funzionalità di diagnostica per i servizi Reliable con statoDiagnostic functionality for Stateful Reliable Services

La classe StatefulServiceBase dei servizi Reliable con stato in Azure Service Fabric genera eventi EventSource che possono essere usati per eseguire il debug del servizio, ottenere informazioni dettagliate sul funzionamento del runtime e ottenere assistenza per la risoluzione dei problemi.The Azure Service Fabric Stateful Reliable Services StatefulServiceBase class emits EventSource events that can be used to debug the service, provide insights into how the runtime is operating, and help with troubleshooting.

Eventi EventSourceEventSource events

Il nome EventSource per la classe StatefulServiceBase dei servizi Reliable con stato è "Microsoft-ServiceFabric-Services".The EventSource name for the Stateful Reliable Services StatefulServiceBase class is "Microsoft-ServiceFabric-Services." Gli eventi provenienti da questa origine eventi vengono visualizzati nella finestra Diagnostics Events (Eventi di diagnostica) quando si esegue il debug del servizio in Visual Studio.Events from this event source appear in the Diagnostics Events window when the service is being debugged in Visual Studio.

Esempi di strumenti e tecnologie che consentono di raccogliere e/o visualizzare eventi EventSource sono PerfView, Diagnostica di Azure e la libreria TraceEvent di Microsoft.Examples of tools and technologies that help in collecting and/or viewing EventSource events are PerfView, Azure Diagnostics, and the Microsoft TraceEvent Library.

EventsEvents

Nome eventoEvent name ID eventoEvent ID LevelLevel Descrizione eventoEvent description
StatefulRunAsyncInvocationStatefulRunAsyncInvocation 11 InformazioniInformational Emesso quando l'attività RunAsync del servizio viene avviataEmitted when the service RunAsync task is started
StatefulRunAsyncCancellationStatefulRunAsyncCancellation 22 InformazioniInformational Emesso quando l'attività RunAsync del servizio viene annullataEmitted when the service RunAsync task is canceled
StatefulRunAsyncCompletionStatefulRunAsyncCompletion 33 InformazioniInformational Emesso quando l'attività RunAsync del servizio viene completataEmitted when the service RunAsync task is finished
StatefulRunAsyncSlowCancellationStatefulRunAsyncSlowCancellation 44 AvvisoWarning Emesso quando l'annullamento dell'attività RunAsync del servizio richiede troppo tempoEmitted when the service RunAsync task takes too long to complete cancellation
StatefulRunAsyncFailureStatefulRunAsyncFailure 55 ErroreError Emesso quando l'attività RunAsync del servizio genera un'eccezioneEmitted when the service RunAsync task throws an exception

Interpretazione degli eventiInterpret events

Gli eventi StatefulRunAsyncInvocation, StatefulRunAsyncCompletion e StatefulRunAsyncCancellation consentono all'autore di un servizio di comprenderne il ciclo di vita e di definirne i tempi di avvio, annullamento e completamento.StatefulRunAsyncInvocation, StatefulRunAsyncCompletion, and StatefulRunAsyncCancellation events are useful to the service writer to understand the lifecycle of a service, as well as the timing for when a service starts, cancels, or finishes. Queste informazioni possono esseri utili durante il debug dei problemi di un servizio o per la comprensione del ciclo di vita di quest'ultimo.This information can be useful when debugging service issues or understanding the service lifecycle.

Gli sviluppatori devono prestare particolare attenzione agli eventi StatefulRunAsyncSlowCancellation e StatefulRunAsyncFailure in quanto indicano la presenza di problemi relativi al servizio.Service writers should pay close attention to StatefulRunAsyncSlowCancellation and StatefulRunAsyncFailure events because they indicate issues with the service.

L'evento StatefulRunAsyncFailure viene emesso ogni volta che l'attività RunAsync() del servizio genera un'eccezione.StatefulRunAsyncFailure is emitted whenever the service RunAsync() task throws an exception. Normalmente, la generazione di un'eccezione indica la presenza di un errore o di un bug nel servizio.Typically, an exception thrown indicates an error or bug in the service. Inoltre, l'eccezione causa un esito negativo del servizio, con conseguente spostamento a un altro nodo.Additionally, the exception causes the service to fail, so it is moved to a different node. L'operazione di spostamento del servizio può risultare costosa e causare un ritardo per le richieste in ingresso.This operation can be expensive and can delay incoming requests while the service is moved. Gli sviluppatori dovrebbero determinare la causa dell'eccezione e, se possibile, limitare il problema.Service writers should determine the cause of the exception and, if possible, mitigate it.

L'evento StatefulRunAsyncSlowCancellation viene emesso ogni volta che una richiesta di annullamento dell'attività RunAsync richiede più di quattro secondi.StatefulRunAsyncSlowCancellation is emitted whenever a cancellation request for the RunAsync task takes longer than four seconds. L'eccessiva durata di un'operazione di annullamento influisce sulla possibilità di riavviare rapidamente il servizio su un altro nodo.When a service takes too long to complete cancellation, it affects the ability of the service to be quickly restarted on another node. Questo scenario può avere un impatto negativo sulla disponibilità complessiva del servizio.This scenario might affect the overall availability of the service.

Passaggi successiviNext steps

Provider di EventSource in PerfViewEventSource providers in PerfView