Diagnóstico e monitoramento de desempenho para Reliable Actors

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

Eventos EventSource

O nome do provedor do EventSource do runtime de Reliable Actors é "Microsoft-ServiceFabric-Actors". Os eventos dessa origem de eventos aparecem na janela Eventos de Diagnóstico quando o aplicativo de ator está sendo depurado no Visual Studio.

Exemplos de ferramentas e tecnologias que ajudam a coletar e/ou exibir eventos EventSource são PerfView, Diagnóstico do Azure, Log de Semântica e Microsoft TraceEvent Library.

Palavras-chave

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

bit Descrição
0x1 Conjunto de eventos importantes que resumem a operação do runtime dos Atores do Fabric.
0x2 Conjunto de eventos que descrevem as chamadas de método do ator. Para saber mais, confira o tópico introdutório sobre atores.
0x4 Conjunto de eventos relacionados ao estado do ator. Para saber mais, veja o tópico em gerenciamento de estados do ator.
0x8 Conjunto de eventos relacionados à simultaneidade baseada no turno do ator. Para obter mais informações, confira o tópico sobre simultaneidade.

Contadores de desempenho

O runtime dos Reliable Actors define as categorias de contador de desempenho a seguir.

Categoria Descrição
Ator da Malha do Serviço Contadores específicos aos atores do Service Fabric do Azure; por exemplo, tempo que se leva para salvar o estado do ator
Método de ator da Malha do Serviço Contadores específicos aos métodos implementados pelos atores do Service Fabric; por exemplo, quantas vezes um método de ator é invocado

Cada uma das categorias acima tem um ou mais contadores.

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

Nomes da instância do contador de desempenho

Um cluster que tem 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 do contador de desempenho de ator. Os nomes da instância do contador de desempenho podem ajudar a identificar a partição e o método de ator (se aplicável) aos quais a instância do contador de desempenho está associada.

Categoria de ator do Service Fabric

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

ServiceFabricPartitionID_ActorsRuntimeInternalID

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

ActorRuntimeInternalID é a representação da cadeia de caracteres de um inteiro de 64 bits que é gerada pelo tempo de execução dos Atores do Fabric para seu uso interno. Isso está incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflito com outros nomes da 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.

Veja a seguir o exemplo de um nome da instância do contador para um contador que pertence à categoria Service Fabric Actor :

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

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

Categoria do método de ator do Service Fabric

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

MethodName_ActorsRuntimeMethodId_ServiceFabricPartitionID_ActorsRuntimeInternalID

MethodName é o nome do método de 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 runtime dos Atores da Malha que equilibra a legibilidade do nome com restrições no comprimento máximo dos nomes da instância do contador de desempenho no Windows.

ActorsRuntimeMethodId é a representação da cadeia de caracteres de um inteiro de 32 bits que é gerada pelo tempo de execução dos Atores do Fabric para seu uso interno. Isso está incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflito com outros nomes da 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 da cadeia de caracteres da ID da partição do Service Fabric à qual a instância do contador de desempenho está associada. A ID da partição é um GUID e sua representação da cadeia de caracteres é gerada por meio do método Guid.ToString com o especificador de formato "D".

ActorRuntimeInternalID é a representação da cadeia de caracteres de um inteiro de 64 bits que é gerada pelo tempo de execução dos Atores do Fabric para seu uso interno. Isso está incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflito com outros nomes da 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.

Veja a seguir o exemplo de um nome da instância do contador para um contador que pertence à categoria Service Fabric Actor Method :

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

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

Lista de eventos e contadores de desempenho

Eventos e contadores de desempeno do método de ator

O runtime dos Reliable Actors emite os eventos relacionados aos métodos de atora seguir.

Nome do evento ID do evento Nível Palavra-chave Descrição
ActorMethodStart 7 Detalhado 0x2 O runtime dos atores está prestes a invocar um método de ator.
ActorMethodStop 8 Detalhado 0x2 Um método de ator finalizou a execução. Isto é, a chamada assíncrona do runtime para o método de ator foi retornada e a tarefa retornada pelo método de ator foi concluída.
ActorMethodThrewException 9 Aviso 0x3 Uma exceção foi lançada durante a execução de um método de ator, ou durante a chamada assíncrona do runtime para o método de ator, ou durante a execução da tarefa retornada pelo método de ator. Esse evento indica algum tipo de falha no código do ator que precisa de investigação.

O runtime dos Reliable Actors publica os contadores de desempenho relacionados à execução dos métodos de ator a seguir.

Nome da categoria Nome do contador Descrição
Método de ator da Malha do Serviço Invocação/s Número de vezes que o método de serviço do ator é invocado por segundo
Método de ator da Malha do Serviço Média de milissegundos por invocação Tempo usado para executar o método de serviço do ator em milissegundos
Método de ator da Malha do Serviço Exceções lançadas/s Número de vezes que o método de serviço do ator lançou uma exceção por segundo

Contadores de desempenho e eventos simultâneos

O runtime dos Atores Confiáveis emite os eventos relacionados à simultaneidadea seguir.

Nome do evento ID do evento Nível Palavra-chave Descrição
ActorMethodCallsWaitingForLock 12 Detalhado 0x8 Esse evento é escrito no início de cada novo turno em um ator. Ele contém o número de chamadas pendentes do ator que estão aguardando para adquirir o bloqueio por ator que aplica a simultaneidade baseada em turno.

O runtime dos Reliable Actors publica os contadores de desempenho a seguir relacionados à simultaneidade.

Nome da categoria Nome do contador Descrição
Ator da Malha do Serviço nº de chamadas do ator aguardando o bloqueio Número de chamadas pendentes do ator aguardando para adquirir o bloqueio por ator que aplica a simultaneidade baseada em turno
Ator da Malha do Serviço Média de milissegundos por espera de bloqueio Tempo (em milissegundos) para adquirir o bloqueio por ator que impõe a simultaneidade baseada em turno
Ator da Malha do Serviço Média de milissegundos de manutenção de bloqueio do ator Tempo (em milissegundos) pelo qual o bloqueio por ator é mantido

Contadores de desempenho e eventos do gerenciamento de estado do ator

O runtime de Reliable Actors emite os eventos a seguir relacionados ao gerenciamento de estado do ator.

Nome do evento ID do evento Nível Palavra-chave Descrição
ActorSaveStateStart 10 Detalhado 0x4 O runtime dos atores está prestes a salvar o estado do ator.
ActorSaveStateStop 11 Detalhado 0x4 O runtime dos atores acabou de salvar o estado do ator.

O runtime dos Reliable Actors publica os contadores de desempenho a seguir relacionados ao gerenciamento de estado do ator.

Nome da categoria Nome do contador Descrição
Ator da Malha do Serviço Milissegundos em média por operação de salvamento do estado Tempo necessário para salvar o estado do ator em milissegundos
Ator da Malha do Serviço Média de milissegundos por operação de carregar estado Tempo necessário para carregar o estado do ator em milissegundos

O runtime dos Reliable Actors emite os seguintes eventos relacionados às réplicas do ator.

Nome do evento ID do evento Nível Palavra-chave Descrição
ReplicaChangeRoleToPrimary 1 Informativo 0x1 A réplica do ator alterou a função para Primária. Isso significa que os atores dessa partição serão criados dentro dessa réplica.
ReplicaChangeRoleFromPrimary 2 Informativo 0x1 A réplica do ator alterou a função para não Primária. Isso significa que os atores dessa partição não serão mais criados dentro dessa réplica. Nenhuma nova solicitação será entregue aos atores já criados dentro dessa réplica. Os atores serão destruídos depois que todas as solicitações em andamento forem concluídas.

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

O runtime de Reliable Actors emite os eventos a seguir relacionados à ativação e desativação do ator.

Nome do evento ID do evento Nível Palavra-chave Descrição
ActorActivated 5 Informativo 0x1 Um ator foi ativado.
ActorDeactivated 6 Informativo 0x1 Um ator foi desativado.

O runtime dos Reliable Actors publica os contadores de desempenho a seguir relacionados à ativação e à desativação do ator.

Nome da categoria Nome do contador Descrição
Ator da Malha do Serviço Média de milissegundos para OnActivateAsync Tempo necessário para executar o método OnActivateAsync em milissegundos

Solicitação do ator processando contadores de desempenho

Quando um cliente chama um método por meio de um objeto de proxy do ator, isso resulta no envio de uma mensagem de solicitação pela rede para o serviço de ator. O serviço processa a mensagem de solicitação e envia uma resposta de volta ao cliente. O runtime dos Reliable Actors publica os seguintes contadores de desempenho relacionados ao processamento de solicitação de ator.

Nome da categoria Nome do contador Descrição
Ator da Malha do Serviço nº de solicitações pendentes Número de solicitações sendo processadas no serviço
Ator da Malha do Serviço Média de milissegundos por solicitação Tempo (em milissegundos) que o serviço leva para processar uma solicitação
Ator da Malha do Serviço Média de milissegundos para desserialização de solicitação Tempo (em milissegundos) para desserializar a mensagem de solicitação do ator quando ela é recebida no serviço
Ator da Malha do Serviço Média de milissegundos para serialização de resposta Tempo (em milissegundos) para serializar a mensagem de resposta do ator no serviço antes de a resposta ser enviada ao cliente

Próximas etapas