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, Azure Diagnostics, 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, ivoicemailboxactor.leavemessageasync
é o nome do método, 2
é 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 pendentes de atores 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 |
Eventos relacionados com réplicas de atores
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 pedidos em curso. |
Eventos de ativação e desativação de atores 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 |