Diagnóstico e monitorização do desempenho dos Reliable Actors

O tempo de execução do Reliable Actors emite eventos EventSource e contadores de desempenho. Eles fornecem informações sobre como o tempo de execução está operando e ajudam na solução de problemas e no monitoramento de desempenho.

Eventos EventSource

O nome do provedor EventSource para o tempo de execução do Reliable Actors é "Microsoft-ServiceFabric-Actors". Os eventos dessa fonte de eventos aparecem na janela Eventos de diagnóstico quando o aplicativo ator está sendo depurado no Visual Studio.

Exemplos de ferramentas e tecnologias que ajudam na coleta e/ou exibição de eventos EventSource são PerfView, Diagnóstico do Azure, Log Semântico e a Biblioteca Microsoft TraceEvent.

Palavras-chave

Todos os eventos que pertencem ao Reliable Actors EventSource estão associados a uma ou mais palavras-chave. Isso permite a filtragem de eventos coletados. Os seguintes bits de palavra-chave são definidos.

Pouco Description
0x1 Conjunto de eventos importantes que resumem a operação do tempo de execução dos Atores de Malha.
0x2 Conjunto de eventos que descrevem chamadas de método de ator. Para obter mais informações, consulte o tópico introdutório sobre atores.
0x4 Conjunto de eventos relacionados ao estado do ator. Para obter mais informações, consulte o tópico sobre gerenciamento de estado do ator.
0x8 Conjunto de eventos relacionados à simultaneidade baseada em turnos no ator. Para obter mais informações, consulte o tópico sobre simultaneidade.

Contadores de desempenho

O tempo de execução de Reliable Actors define as seguintes categorias de contadores de desempenho.

Categoria Description
Ator do Service Fabric Contadores específicos para atores do Azure Service Fabric, por exemplo, tempo necessário para salvar o estado do ator
Método Service Fabric Ator Contadores específicos para métodos implementados por atores do Service Fabric, por exemplo, com que frequência um método de ator é invocado

Cada uma das categorias acima tem um ou mais contadores.

O aplicativo Monitor de Desempenho do Windows que está disponível por padrão no sistema operacional Windows pode ser usado para coletar e exibir dados do contador de desempenho. O Diagnóstico do Azure é outra opção para coletar dados do contador de desempenho e carregá-los nas tabelas do Azure.

Nomes de instâncias do contador de desempenho

Um cluster que tenha um grande número de serviços de ator ou partições de serviço de ator terá um grande número de instâncias de contador de desempenho de ator. Os nomes das instâncias do contador de desempenho podem ajudar a identificar a partição específica e o método do ator (se aplicável) ao qual a instância do contador de desempenho está associada.

Categoria Ator do Service Fabric

Para a categoria Service Fabric Actor, os nomes das instâncias do contador estão no seguinte formato:

ServiceFabricPartitionID_ActorsRuntimeInternalID

ServiceFabricPartitionID é a representação de cadeia de caracteres da ID de partição do Service Fabric à qual a instância do contador de desempenho está associada. O ID da partição é um GUID, e sua representação de cadeia de caracteres é gerada através do método com especificador de Guid.ToString formato "D".

ActorRuntimeInternalID é a representação de cadeia de caracteres de um inteiro de 64 bits que é gerado pelo tempo de execução do Fabric Actors para seu uso interno. Isso é incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflitos com outros nomes de instância do contador de desempenho. Os usuários não devem tentar interpretar essa parte do nome da instância do contador de desempenho.

Segue-se um exemplo de um nome de instância de contador para um contador que pertence à Service Fabric Actor categoria:

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

No exemplo acima, 2740af29-78aa-44bc-a20b-7e60fb783264 é a representação de cadeia de caracteres da ID de partição do Service Fabric e 635650083799324046 é a ID de 64 bits gerada para uso interno do tempo de execução.

Categoria Método do Ator do Service Fabric

Para a categoria Service Fabric Actor Method, os nomes das instâncias do contador estão no seguinte formato:

MethodName_ActorsRuntimeMethodId_ServiceFabricPartitionID_ActorsRuntimeInternalID

MethodName é o nome do método ator ao qual a instância do contador de desempenho está associada. O formato do nome do método é determinado com base em alguma lógica no tempo de execução dos Atores de Malha que equilibra a legibilidade do nome com restrições no comprimento máximo dos nomes de instância do contador de desempenho no Windows.

ActorsRuntimeMethodId é a representação de cadeia de caracteres de um inteiro de 32 bits que é gerado pelo tempo de execução do Fabric Actors para seu uso interno. Isso é incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflitos com outros nomes de instância do contador de desempenho. Os usuários não devem tentar interpretar essa parte do nome da instância do contador de desempenho.

ServiceFabricPartitionID é a representação de cadeia de caracteres da ID de partição do Service Fabric à qual a instância do contador de desempenho está associada. O ID da partição é um GUID, e sua representação de cadeia de caracteres é gerada através do método com especificador de Guid.ToString formato "D".

ActorRuntimeInternalID é a representação de cadeia de caracteres de um inteiro de 64 bits que é gerado pelo tempo de execução do Fabric Actors para seu uso interno. Isso é incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflitos com outros nomes de instância do contador de desempenho. Os usuários não devem tentar interpretar essa parte do nome da instância do contador de desempenho.

Segue-se um exemplo de um nome de instância de contador para um contador que pertence à Service Fabric Actor Method categoria:

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

No exemplo acima, é o nome do método, 2ivoicemailboxactor.leavemessageasync é a ID de 32 bits gerada para uso interno do tempo de execução, 89383d32-e57e-4a9b-a6ad-57c6792aa521 é a representação de cadeia de caracteres da ID de partição do Service Fabric e 635650083804480486 é a ID de 64 bits gerada para uso interno do tempo de execução.

Lista de eventos e contadores de desempenho

Eventos do método do ator e contadores de desempenho

O tempo de execução do Reliable Actors emite os seguintes eventos relacionados aos métodos do ator.

Nome do evento ID do Evento Level Palavra-chave Description
ActorMethodStart 7 Verboso 0x2 O tempo de execução dos atores está prestes a invocar um método de ator.
ActorMethodStop 8 Verboso 0x2 Um método de ator terminou de ser executado. Ou seja, a chamada assíncrona do tempo de execução para o método ator retornou e a tarefa retornada pelo método ator foi concluída.
ActorMethodThrewException 9 Aviso 0x3 Uma exceção foi lançada durante a execução de um método ator, seja durante a chamada assíncrona do tempo de execução para o método ator ou durante a execução da tarefa retornada pelo método ator. Esse evento indica algum tipo de falha no código do ator que precisa ser investigado.

O tempo de execução do Reliable Actors publica os seguintes contadores de desempenho relacionados à execução de métodos de ator.

Nome da categoria Nome do contador Description
Método Service Fabric Ator Invocações/seg Número de vezes que o método de serviço do ator é invocado por segundo
Método Service Fabric Ator Média de milissegundos por invocação Tempo necessário para executar o método de serviço do ator em milissegundos
Método Service Fabric Ator Exceções lançadas/seg Número de vezes que o método de serviço do ator lançou uma exceção por segundo

Eventos de simultaneidade e contadores de desempenho

O tempo de execução dos Reliable Actors emite os seguintes eventos relacionados à simultaneidade.

Nome do evento ID do Evento Level Palavra-chave Description
ActorMethodCallsWaitingForLock 12 Verboso 0x8 Este evento é escrito no início de cada novo turno em um ator. Ele contém o número de chamadas de ator pendentes que estão aguardando para adquirir o bloqueio por ator que impõe a simultaneidade baseada em turnos.

O tempo de execução do Reliable Actors publica os seguintes contadores de desempenho relacionados à simultaneidade.

Nome da categoria Nome do contador Description
Ator do Service Fabric # de chamadas de ator à espera de bloqueio de ator Número de chamadas de ator pendentes aguardando para adquirir o bloqueio por ator que impõe simultaneidade baseada em turnos
Ator do Service Fabric Média de milissegundos por espera de bloqueio Tempo necessário (em milissegundos) para adquirir o bloqueio por ator que impõe a simultaneidade baseada em turnos
Ator do Service Fabric Bloqueio médio do ator em milissegundos mantido Tempo (em milissegundos) durante o qual o bloqueio por ator é mantido

Eventos de gestão do estado do ator e contadores de desempenho

O tempo de execução do Reliable Actors emite os seguintes eventos relacionados ao gerenciamento do estado do ator.

Nome do evento ID do Evento Level Palavra-chave Description
ActorSaveStateStart 10 Verboso 0x4 O tempo de execução dos atores está prestes a salvar o estado do ator.
ActorSaveStateStop 11 Verboso 0x4 O tempo de execução dos atores terminou de salvar o estado do ator.

O tempo de execução do Reliable Actors publica os seguintes contadores de desempenho relacionados ao gerenciamento do estado do ator.

Nome da categoria Nome do contador Description
Ator do Service Fabric Média de milissegundos por operação de estado de salvamento Tempo necessário para salvar o estado do ator em milissegundos
Ator do Service Fabric Média de milissegundos por operação de estado de carga Tempo necessário para carregar o estado do ator em milissegundos

O tempo de execução do Reliable Actors emite os seguintes eventos relacionados às réplicas de atores.

Nome do evento ID do Evento Level Palavra-chave Description
ReplicaChangeRoleToPrimary 1 Informativo 0x1 Réplica do ator mudou de papel para Primária. Isso implica que os atores para esta partição serão criados dentro desta réplica.
ReplicaChangeRoleFromPrimary 2 Informativo 0x1 A réplica do ator mudou de função para não primária. Isso implica que os atores para essa partição não serão mais criados dentro dessa réplica. Nenhuma nova solicitação será entregue aos atores já criados nesta réplica. Os atores serão destruídos após a conclusão de quaisquer solicitações em andamento.

Eventos de ativação e desativação do ator e contadores de desempenho

O tempo de execução do Reliable Actors emite os seguintes eventos relacionados à ativação e desativação do ator.

Nome do evento ID do Evento Level Palavra-chave Description
AtorAtivado 5 Informativo 0x1 Um ator foi ativado.
AtorDesativada 6 Informativo 0x1 Um ator foi desativado.

O tempo de execução do Reliable Actors publica os seguintes contadores de desempenho relacionados à ativação e desativação do ator.

Nome da categoria Nome do contador Description
Ator do Service Fabric Média de milissegundos OnActivateAsync Tempo necessário para executar o método OnActivateAsync em milissegundos

Contadores de desempenho de processamento de solicitações de atores

Quando um cliente invoca um método por meio de um objeto proxy ator, isso resulta em uma mensagem de solicitação sendo enviada pela rede para o serviço ator. O serviço processa a mensagem de solicitação e envia uma resposta de volta ao cliente. O tempo de execução do Reliable Actors publica os seguintes contadores de desempenho relacionados ao processamento de solicitações de atores.

Nome da categoria Nome do contador Description
Ator do Service Fabric # de pedidos pendentes Número de pedidos em processamento no serviço
Ator do Service Fabric Média de milissegundos por solicitação Tempo necessário (em milissegundos) pelo serviço para processar um pedido
Ator do Service Fabric Média de milissegundos para desserialização de solicitações Tempo necessário (em milissegundos) para desserializar a mensagem de solicitação do ator quando ela é recebida no serviço
Ator do Service Fabric Média de milissegundos para serialização de resposta Tempo necessário (em milissegundos) para serializar a mensagem de resposta do ator no serviço antes que a resposta seja enviada ao cliente

Próximos passos