Diagnostica e monitoraggio delle prestazioni per Reliable ActorsDiagnostics and performance monitoring for Reliable Actors

Il runtime di Reliable Actors rende disponibili eventi EventSource e contatori delle prestazioni,The Reliable Actors runtime emits EventSource events and performance counters. che forniscono informazioni utili per comprendere il funzionamento del runtime e per eseguire la risoluzione dei problemi e il monitoraggio delle prestazioni.These provide insights into how the runtime is operating and help with troubleshooting and performance monitoring.

Eventi EventSourceEventSource events

Il nome provider di EventSource per il runtime di Reliable Actors è "Microsoft-ServiceFabric-Actors".The EventSource provider name for the Reliable Actors runtime is "Microsoft-ServiceFabric-Actors". Gli eventi provenienti da questa origine vengono visualizzati nella finestra degli eventi di diagnostica quando l'applicazione attore viene sottoposta a debug in Visual Studio.Events from this event source appear in the Diagnostics Events window when the actor application is being debugged in Visual Studio.

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

Parole chiaveKeywords

Tutti gli eventi appartenenti a EventSource di Reliable Actors sono associati a una o più parole chiave.All events that belong to the Reliable Actors EventSource are associated with one or more keywords. Questo consente di filtrare gli eventi che vengono raccolti.This enables filtering of events that are collected. Sono definiti i bit delle parole chiave seguenti:The following keyword bits are defined.

BitBit DescrizioneDescription
0x10x1 Set di eventi importanti che riepilogano il funzionamento del runtime di Fabric Actors.Set of important events that summarize the operation of the Fabric Actors runtime.
0x20x2 Set di eventi che descrivono le chiamate ai metodi degli attori.Set of events that describe actor method calls. Per altre informazioni, vedere l' argomento introduttivo sugli attori.For more information, see the introductory topic on actors.
0x40x4 Set di eventi relativi allo stato dell'attore.Set of events related to actor state. Per altre informazioni, vedere l'argomento relativo alla gestione dello stato degli attori.For more information, see the topic on actor state management.
0x80x8 Set di eventi correlati alla concorrenza basata su turni nell'attore.Set of events related to turn-based concurrency in the actor. Per altre informazioni, vedere l'argomento relativo alla concorrenza.For more information, see the topic on concurrency.

Contatori delle prestazioniPerformance counters

Il runtime di Reliable Actors definisce le categorie di contatori delle prestazioni seguenti.The Reliable Actors runtime defines the following performance counter categories.

CategoriaCategory DescrizioneDescription
Service Fabric ActorService Fabric Actor Contatori specifici degli attori di Azure Service Fabric, ad esempio per il tempo necessario per salvare lo stato di un attoreCounters specific to Azure Service Fabric actors, e.g. time taken to save actor state
Service Fabric Actor MethodService Fabric Actor Method Contatori specifici dei metodi implementati dagli attori di Service Fabric, ad esempio per la frequenza con cui viene richiamato un metodo di un attoreCounters specific to methods implemented by Service Fabric actors, e.g. how often an actor method is invoked

Ognuna di queste categorie include uno o più contatori.Each of the above categories has one or more counters.

L'applicazione Performance Monitor di Windows , disponibile per impostazione predefinita nel sistema operativo Windows, può essere usata per raccogliere e visualizzare i dati dei contatori delle prestazioni.The Windows Performance Monitor application that is available by default in the Windows operating system can be used to collect and view performance counter data. Diagnostica di Azure rappresenta una valida alternativa per la raccolta di tali dati e il relativo caricamento nelle tabelle di Azure.Azure Diagnostics is another option for collecting performance counter data and uploading it to Azure tables.

Nomi delle istanze dei contatori delle prestazioniPerformance counter instance names

Un cluster con un numero elevato di servizi attore o di partizioni di servizi attore disporrà di un numero considerevole di istanze di contatori delle prestazioni degli attori.A cluster that has a large number of actor services or actor service partitions will have a large number of actor performance counter instances. I nomi delle istanze possono facilitare l'identificazione della partizione specifica e del metodo dell'attore (se applicabile) a cui l'istanza è associata.The performance counter instance names can help in identifying the specific partition and actor method (if applicable) that the performance counter instance is associated with.

Categoria Service Fabric ActorService Fabric Actor category

Per la categoria Service Fabric Actor, i nomi delle istanze dei contatori sono nel formato seguente:For the category Service Fabric Actor, the counter instance names are in the following format:

ServiceFabricPartitionID_ActorsRuntimeInternalID

ServiceFabricPartitionID è la rappresentazione sotto forma di stringa dell'ID partizione di Service Fabric a cui è associata l'istanza del contatore delle prestazioni.ServiceFabricPartitionID is the string representation of the Service Fabric partition ID that the performance counter instance is associated with. L'ID partizione è un GUID e la relativa rappresentazione di stringa viene generata tramite il metodo Guid.ToString con l'identificatore di formato "D".The partition ID is a GUID, and its string representation is generated through the Guid.ToString method with format specifier "D".

ActorRuntimeInternalID è la rappresentazione sotto forma di stringa di un numero intero a 64 bit generato dal runtime di Fabric Actors per l'uso interno.ActorRuntimeInternalID is the string representation of a 64-bit integer that is generated by the Fabric Actors runtime for its internal use. Viene incluso nel nome dell'istanza del contatore delle prestazioni per assicurarne l'univocità ed evitare conflitti con altri nomi di istanze di contatori delle prestazioni.This is included in the performance counter instance name to ensure its uniqueness and avoid conflict with other performance counter instance names. Agli utenti non serve tentare di interpretare questa parte del nome dell'istanza del contatore delle prestazioni.Users should not try to interpret this portion of the performance counter instance name.

Di seguito è riportato un esempio di un nome di istanza per un contatore appartenente alla categoria Service Fabric Actor :The following is an example of a counter instance name for a counter that belongs to the Service Fabric Actor category:

2740af29-78aa-44bc-a20b-7e60fb783264_635650083799324046

Nell'esempio precedente 2740af29-78aa-44bc-a20b-7e60fb783264 è la rappresentazione di stringa dell'ID partizione di Service Fabric e 635650083799324046 è l'ID a 64 bit generato per l'uso interno del runtime.In the example above, 2740af29-78aa-44bc-a20b-7e60fb783264 is the string representation of the Service Fabric partition ID, and 635650083799324046 is the 64-bit ID that is generated for the runtime's internal use.

Categoria Service Fabric Actor MethodService Fabric Actor Method category

Per la categoria Service Fabric Actor Method, i nomi delle istanze dei contatori sono nel formato seguente:For the category Service Fabric Actor Method, the counter instance names are in the following format:

MethodName_ActorsRuntimeMethodId_ServiceFabricPartitionID_ActorsRuntimeInternalID

MethodName è il nome del metodo dell'attore a cui è associata l'istanza del contatore delle prestazioni.MethodName is the name of the actor method that the performance counter instance is associated with. Il formato del nome del metodo è determinato in base a una parte della logica del runtime di Fabric Actors che cerca di trovare un compromesso tra la leggibilità del nome e i vincoli relativi alla lunghezza massima dei nomi delle istanze dei contatori delle prestazioni in Windows.The format of the method name is determined based on some logic in the Fabric Actors runtime that balances the readability of the name with constraints on the maximum length of the performance counter instance names on Windows.

ActorsRuntimeMethodId è la rappresentazione sotto forma di stringa di un numero intero a 32 bit generato dal runtime di Fabric Actors per l'uso interno.ActorsRuntimeMethodId is the string representation of a 32-bit integer that is generated by the Fabric Actors runtime for its internal use. Viene incluso nel nome dell'istanza del contatore delle prestazioni per assicurarne l'univocità ed evitare conflitti con altri nomi di istanze di contatori delle prestazioni.This is included in the performance counter instance name to ensure its uniqueness and avoid conflict with other performance counter instance names. Agli utenti non serve tentare di interpretare questa parte del nome dell'istanza del contatore delle prestazioni.Users should not try to interpret this portion of the performance counter instance name.

ServiceFabricPartitionID è la rappresentazione sotto forma di stringa dell'ID partizione di Service Fabric a cui è associata l'istanza del contatore delle prestazioni.ServiceFabricPartitionID is the string representation of the Service Fabric partition ID that the performance counter instance is associated with. L'ID partizione è un GUID e la relativa rappresentazione di stringa viene generata tramite il metodo Guid.ToString con l'identificatore di formato "D".The partition ID is a GUID, and its string representation is generated through the Guid.ToString method with format specifier "D".

ActorRuntimeInternalID è la rappresentazione sotto forma di stringa di un numero intero a 64 bit generato dal runtime di Fabric Actors per l'uso interno.ActorRuntimeInternalID is the string representation of a 64-bit integer that is generated by the Fabric Actors runtime for its internal use. Viene incluso nel nome dell'istanza del contatore delle prestazioni per assicurarne l'univocità ed evitare conflitti con altri nomi di istanze di contatori delle prestazioni.This is included in the performance counter instance name to ensure its uniqueness and avoid conflict with other performance counter instance names. Agli utenti non serve tentare di interpretare questa parte del nome dell'istanza del contatore delle prestazioni.Users should not try to interpret this portion of the performance counter instance name.

Di seguito è riportato un esempio di un nome di istanza per un contatore appartenente alla categoria Service Fabric Actor Method :The following is an example of a counter instance name for a counter that belongs to the Service Fabric Actor Method category:

ivoicemailboxactor.leavemessageasync_2_89383d32-e57e-4a9b-a6ad-57c6792aa521_635650083804480486

Nell'esempio precedente ivoicemailboxactor.leavemessageasync è il nome del metodo, 2 è l'ID a 32 bit generato per l'uso interno del runtime, 89383d32-e57e-4a9b-a6ad-57c6792aa521 è la rappresentazione di stringa dell'ID partizione di Service Fabric e 635650083804480486 è l'ID a 64 bit generato per l'uso interno del runtime.In the example above, ivoicemailboxactor.leavemessageasync is the method name, 2 is the 32-bit ID generated for the runtime's internal use, 89383d32-e57e-4a9b-a6ad-57c6792aa521 is the string representation of the Service Fabric partition ID, and 635650083804480486 is the 64-bit ID generated for the runtime's internal use.

Elenco degli eventi e dei contatori delle prestazioniList of events and performance counters

Eventi dei metodi degli attori e relativi contatori delle prestazioniActor method events and performance counters

Il runtime di Reliable Actors rende disponibili gli eventi seguenti relativi ai metodi degli attori.The Reliable Actors runtime emits the following events related to actor methods.

Nome eventoEvent name ID eventoEvent ID LevelLevel Parole chiaveKeyword DescrizioneDescription
ActorMethodStartActorMethodStart 77 DettagliatoVerbose 0x20x2 Il runtime di Actors sta per richiamare un metodo di un attore.Actors runtime is about to invoke an actor method.
ActorMethodStopActorMethodStop 88 DettagliatoVerbose 0x20x2 È terminata l'esecuzione di un metodo di un attore,An actor method has finished executing. ovvero la chiamata asincrona del runtime al metodo ha restituito il controllo e l'attività restituita dal metodo stesso è stata completata.That is, the runtime's asynchronous call to the actor method has returned, and the task returned by the actor method has finished.
ActorMethodThrewExceptionActorMethodThrewException 99 AvvisoWarning 0x30x3 È stata generata un'eccezione durante l'esecuzione di un metodo di un attore durante la chiamata asincrona del runtime al metodo o durante l'esecuzione dell'attività restituita dal metodo stesso.An exception was thrown during the execution of an actor method, either during the runtime's asynchronous call to the actor method or during the execution of the task returned by the actor method. Questo evento indica un problema relativo al codice dell'attore che deve essere analizzato.This event indicates some sort of failure in the actor code that needs investigation.

Il runtime di Reliable Actors pubblica i contatori delle prestazioni seguenti relativi all'esecuzione dei metodi degli attori.The Reliable Actors runtime publishes the following performance counters related to the execution of actor methods.

Nome categoriaCategory name Nome contatoreCounter name DescrizioneDescription
Service Fabric Actor MethodService Fabric Actor Method Invocations/SecInvocations/Sec Numero di volte in cui il metodo del servizio attore viene richiamato al secondoNumber of times that the actor service method is invoked per second
Service Fabric Actor MethodService Fabric Actor Method Average milliseconds per invocationAverage milliseconds per invocation Tempo necessario per eseguire il metodo del servizio attore in millisecondiTime taken to execute the actor service method in milliseconds
Service Fabric Actor MethodService Fabric Actor Method Exceptions thrown/SecExceptions thrown/Sec Numero di volte in cui il metodo del servizio attore ha generato un'eccezione al secondoNumber of times that the actor service method threw an exception per second

Eventi di concorrenza e relativi contatori delle prestazioniConcurrency events and performance counters

Il runtime di Reliable Actors emette gli eventi seguenti relativi alla concorrenza.The Reliable Actors runtime emits the following events related to concurrency.

Nome eventoEvent name ID eventoEvent ID LevelLevel Parole chiaveKeyword DescrizioneDescription
ActorMethodCallsWaitingForLockActorMethodCallsWaitingForLock 1212 DettagliatoVerbose 0x80x8 Questo evento viene scritto all'inizio di ogni nuovo turno in un attore.This event is written at the start of each new turn in an actor. Include il numero di chiamate dell'attore in sospeso, in attesa di acquisire il blocco per attore che applica la concorrenza basata su turni.It contains the number of pending actor calls that are waiting to acquire the per-actor lock that enforces turn-based concurrency.

Il runtime di Reliable Actors pubblica i contatori delle prestazioni seguenti relativi alla concorrenza.The Reliable Actors runtime publishes the following performance counters related to concurrency.

Nome categoriaCategory name Nome contatoreCounter name DescrizioneDescription
Service Fabric ActorService Fabric Actor # of actor calls waiting for actor lock# of actor calls waiting for actor lock Numero di chiamate dell'attore in sospeso, in attesa di acquisire il blocco per attore che applica la concorrenza basata su turni.Number of pending actor calls waiting to acquire the per-actor lock that enforces turn-based concurrency
Service Fabric ActorService Fabric Actor Average milliseconds per lock waitAverage milliseconds per lock wait Tempo richiesto (in millisecondi) per acquisire il blocco per attore che applica la concorrenza basata su turni.Time taken (in milliseconds) to acquire the per-actor lock that enforces turn-based concurrency
Service Fabric ActorService Fabric Actor Average milliseconds actor lock heldAverage milliseconds actor lock held Tempo (in millisecondi) per il quale il blocco per attore è attivatoTime (in milliseconds) for which the per-actor lock is held

Eventi di gestione dello stato degli attori e relativi contatori delle prestazioniActor state management events and performance counters

Il runtime di Reliable Actors emette gli eventi seguenti relativi alla gestione dello stato degli attori.The Reliable Actors runtime emits the following events related to actor state management.

Nome eventoEvent name ID eventoEvent ID LevelLevel Parole chiaveKeyword DescrizioneDescription
ActorSaveStateStartActorSaveStateStart 1010 DettagliatoVerbose 0x40x4 Il runtime di Actors sta per salvare lo stato di un attore.Actors runtime is about to save the actor state.
ActorSaveStateStopActorSaveStateStop 1111 DettagliatoVerbose 0x40x4 Il runtime di Actors ha finito di salvare lo stato di un attore.Actors runtime has finished saving the actor state.

Il runtime di Reliable Actors pubblica i contatori delle prestazioni seguenti relativi alla gestione dello stato degli attori.The Reliable Actors runtime publishes the following performance counters related to actor state management.

Nome categoriaCategory name Nome contatoreCounter name DescrizioneDescription
Service Fabric ActorService Fabric Actor Average milliseconds per save state operationAverage milliseconds per save state operation Tempo necessario per salvare lo stato dell'attore in millisecondiTime taken to save actor state in milliseconds
Service Fabric ActorService Fabric Actor Average milliseconds per load state operationAverage milliseconds per load state operation Tempo richiesto per caricare lo stato dell'attore in millisecondiTime taken to load actor state in milliseconds

Il runtime di Reliable Actors rende disponibili gli eventi seguenti relativi alle repliche di attori.The Reliable Actors runtime emits the following events related to actor replicas.

Nome eventoEvent name ID eventoEvent ID LevelLevel Parole chiaveKeyword DescrizioneDescription
ReplicaChangeRoleToPrimaryReplicaChangeRoleToPrimary 11 InformazioniInformational 0x10x1 Il ruolo della replica dell'attore è cambiato e la replica è diventata primaria.Actor replica changed role to Primary. Ciò significa che gli attori per questa partizione verranno creati all'interno della replica.This implies that the actors for this partition will be created inside this replica.
ReplicaChangeRoleFromPrimaryReplicaChangeRoleFromPrimary 22 InformazioniInformational 0x10x1 Il ruolo della replica dell'attore è cambiato e la replica non è più primaria.Actor replica changed role to non-Primary. Ciò significa che gli attori per questa partizione non verranno più creati all'interno della replica.This implies that the actors for this partition will no longer be created inside this replica. Non verranno recapitate nuove richieste agli attori già creati all'interno della replica.No new requests will be delivered to actors already created within this replica. Gli attori verranno distrutti dopo il completamento di qualsiasi richiesta in corso.The actors will be destroyed after any in-progress requests are completed.

Eventi di attivazione e disattivazione degli attori e contatori delle prestazioniActor activation and deactivation events and performance counters

Il runtime di Reliable Actors emette gli eventi seguenti relativi all' attivazione e disattivazione degli attori.The Reliable Actors runtime emits the following events related to actor activation and deactivation.

Nome eventoEvent name ID eventoEvent ID LevelLevel Parole chiaveKeyword DescrizioneDescription
ActorActivatedActorActivated 55 InformazioniInformational 0x10x1 Un attore è stato attivato.An actor has been activated.
ActorDeactivatedActorDeactivated 66 InformazioniInformational 0x10x1 Un attore è stato disattivato.An actor has been deactivated.

Il runtime di Reliable Actors pubblica i contatori delle prestazioni seguenti relativi all’attivazione e alla disattivazione degli attori.The Reliable Actors runtime publishes the following performance counters related to actor activation and deactivation.

Nome categoriaCategory name Nome contatoreCounter name DescrizioneDescription
Service Fabric ActorService Fabric Actor Average OnActivateAsync millisecondsAverage OnActivateAsync milliseconds Tempo necessario per eseguire il metodo OnActivateAsync in millisecondiTime taken to execute OnActivateAsync method in milliseconds

Contatori delle prestazioni di elaborazione delle richieste degli attoriActor request processing performance counters

Quando un client richiama un metodo tramite un oggetto proxy di attore, viene generato un messaggio di richiesta inviato in rete al servizio attore.When a client invokes a method via an actor proxy object, it results in a request message being sent over the network to the actor service. Il servizio elabora il messaggio di richiesta e invia una risposta al client.The service processes the request message and sends a response back to the client. Il runtime di Reliable Actors pubblica i contatori delle prestazioni seguenti relativi all’elaborazione delle richieste degli attori.The Reliable Actors runtime publishes the following performance counters related to actor request processing.

Nome categoriaCategory name Nome contatoreCounter name DescrizioneDescription
Service Fabric ActorService Fabric Actor # of outstanding requests# of outstanding requests Numero di richieste elaborate nel servizioNumber of requests being processed in the service
Service Fabric ActorService Fabric Actor Average milliseconds per requestAverage milliseconds per request Tempo richiesto (in millisecondi) dal servizio per elaborare una richiestaTime taken (in milliseconds) by the service to process a request
Service Fabric ActorService Fabric Actor Average milliseconds for request deserializationAverage milliseconds for request deserialization Tempo richiesto (in millisecondi) per deserializzare il messaggio di richiesta dell’attore quando viene ricevuto nel servizioTime taken (in milliseconds) to deserialize actor request message when it is received at the service
Service Fabric ActorService Fabric Actor Average milliseconds for response serializationAverage milliseconds for response serialization Tempo richiesto (in millisecondi) per serializzare il messaggio di risposta dell’attore nel servizio prima dell’invio della risposta al clientTime taken (in milliseconds) to serialize the actor response message at the service before the response is sent to the client

Passaggi successiviNext steps