Partilhar via


Funcionalidade de diagnóstico dos Reliable Services com Monitorização de Estado

A classe StatefulServiceBase do Azure Service Fabric Stateful Reliable Services emite eventos EventSource que podem ser usados para depurar o serviço, fornecer informações sobre como o tempo de execução está operando e ajudar na solução de problemas.

Eventos EventSource

O nome EventSource para a classe StatefulServiceBase Stateful Reliable Services é "Microsoft-ServiceFabric-Services". Os eventos dessa fonte de eventos aparecem na janela Eventos de diagnóstico quando o serviço 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 e a Microsoft TraceEvent Library.

Eventos

Nome do evento ID do Evento Level Descrição do evento
StatefulRunAsyncInvocation 1 Informativo Emitido quando a tarefa RunAsync do serviço é iniciada
StatefulRunAsyncCancellation 2 Informativo Emitido quando a tarefa RunAsync do serviço é cancelada
StatefulRunAsyncCompletion 3 Informativo Emitido quando a tarefa RunAsync do serviço é concluída
StatefulRunAsyncSlowCancellation 4 Aviso Emitido quando a tarefa RunAsync do serviço leva muito tempo para concluir o cancelamento
StatefulRunAsyncFailure 5 Erro Emitido quando a tarefa RunAsync do serviço lança uma exceção

Interpretar eventos

Os eventos StatefulRunAsyncInvocation, StatefulRunAsyncCompletion e StatefulRunAsyncCancellation são úteis para o gravador de serviço entender o ciclo de vida de um serviço, bem como o tempo de quando um serviço é iniciado, cancelado ou concluído. Essas informações podem ser úteis ao depurar problemas de serviço ou entender o ciclo de vida do serviço.

Os gravadores de serviço devem prestar muita atenção aos eventos StatefulRunAsyncSlowCancellation e StatefulRunAsyncFailure porque eles indicam problemas com o serviço.

StatefulRunAsyncFailure é emitido sempre que a tarefa RunAsync() do serviço lança uma exceção. Normalmente, uma exceção lançada indica um erro ou bug no serviço. Além disso, a exceção faz com que o serviço falhe, portanto, ele é movido para um nó diferente. Essa operação pode ser cara e atrasar solicitações recebidas enquanto o serviço é movido. Os autores de serviços devem determinar a causa da exceção e, se possível, atenuá-la.

StatefulRunAsyncSlowCancellation é emitido sempre que uma solicitação de cancelamento para a tarefa RunAsync leva mais de quatro segundos. Quando um serviço leva muito tempo para concluir o cancelamento, isso afeta a capacidade do serviço de ser reiniciado rapidamente em outro nó. Esse cenário pode afetar a disponibilidade geral do serviço.

Contadores de desempenho

O tempo de execução dos Serviços Confiáveis define as seguintes categorias de contadores de desempenho:

Categoria Description
Replicador transacional do Service Fabric Contadores específicos para o Replicador Transacional do Azure Service Fabric
Service Fabric TStore Contadores específicos para o Azure Service Fabric TStore

O Service Fabric Transactional Replicator é usado pelo Reliable State Manager para replicar transações dentro de um determinado conjunto de réplicas.

O Service Fabric TStore é um componente usado em coleções confiáveis para armazenar e recuperar pares chave-valor.

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 confiáveis ou partições de serviço confiáveis terá um grande número de instâncias de contador de desempenho do replicador transacional. Este também é o caso dos contadores de desempenho TStore, mas também é multiplicado pelo número de Dicionários Confiáveis e Filas Confiáveis usados. Os nomes de instância do contador de desempenho podem ajudar a identificar a partição, a réplica de serviço e o provedor de estado específicos no caso do TStore, aos quais a instância do contador de desempenho está associada.

Categoria do Replicador Transacional do Service Fabric

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

ServiceFabricPartitionId:ServiceFabricReplicaId

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 Guid.ToString do especificador de formato "D".

ServiceFabricReplicaId é a ID associada a uma determinada réplica de um serviço confiável. O ID da réplica é incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflitos com outras instâncias do contador de desempenho geradas pela mesma partição. Mais detalhes sobre réplicas e seu papel em serviços confiáveis podem ser encontrados aqui.

O nome da Service Fabric Transactional Replicator instância do contador a seguir é típico de um contador na categoria:

00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571

No exemplo anterior, 00d0126d-3e36-4d68-98da-cc4f7195d85e é a representação de cadeia de caracteres da ID de partição do Service Fabric e 131652217797162571 é a ID da réplica.

Categoria de TStore do Service Fabric

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

ServiceFabricPartitionId:ServiceFabricReplicaId:StateProviderId_PerformanceCounterInstanceDifferentiator_StateProviderName

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 Guid.ToString do especificador de formato "D".

ServiceFabricReplicaId é a ID associada a uma determinada réplica de um serviço confiável. O ID da réplica é incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflitos com outras instâncias do contador de desempenho geradas pela mesma partição. Mais detalhes sobre réplicas e seu papel em serviços confiáveis podem ser encontrados aqui.

StateProviderId é a ID associada a um provedor de estado dentro de um serviço confiável. O ID do provedor de estado é incluído no nome da instância do contador de desempenho para diferenciar um TStore de outro.

PerformanceCounterInstanceDifferentiator é uma ID diferenciadora associada a uma instância de contador de desempenho dentro de um provedor de estado. Esse diferencial é incluído no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflitos com outras instâncias do contador de desempenho geradas pelo mesmo provedor de estado.

StateProviderName é o nome associado a um provedor de estado dentro de um serviço confiável. O nome do provedor de estado é incluído no nome da instância do contador de desempenho para que os usuários identifiquem facilmente o estado que ele fornece.

O nome da Service Fabric TStore instância do contador a seguir é típico de um contador na categoria:

00d0126d-3e36-4d68-98da-cc4f7195d85e:131652217797162571:142652217797162571_1337_urn:MyReliableDictionary/dataStore

No exemplo anterior, é a representação de cadeia de caracteres da ID de partição do Service Fabric, é a ID da réplica, 00d0126d-3e36-4d68-98da-cc4f7195d85e142652217797162571 é a ID 131652217797162571 do provedor de estado e 1337 é o diferencial da instância do contador de desempenho. urn:MyReliableDictionary/dataStore é o nome do provedor de estado que armazena dados para a coleção chamada urn:MyReliableDictionary.

Contadores de desempenho do Replicador Transacional

O tempo de execução dos Serviços Confiáveis emite os seguintes eventos na Service Fabric Transactional Replicator categoria

Nome do contador Description
Iniciar operações Txn/seg O número de novas transações de gravação criadas por segundo.
Operações Txn/seg O número de operações de adicionar/atualizar/excluir realizadas em coleções confiáveis por segundo.
Log Flush Bytes/seg O número de bytes sendo liberados para o disco pelo Replicador Transacional por segundo
Operações limitadas/seg O número de operações rejeitadas a cada segundo pelo Replicador Transacional devido à limitação.
Transação média ms/commit Latência média de confirmação por transação em milissegundos
Latência média de descarga (ms) Duração média das operações de liberação de disco iniciadas pelo Replicador Transacional em milissegundos

Contadores de desempenho TStore

O tempo de execução dos Serviços Confiáveis emite os seguintes eventos na Service Fabric TStore categoria

Nome do contador Description
Contagem de itens O número de itens na loja.
Tamanho do Disco O tamanho total do disco, em bytes, dos arquivos de ponto de verificação para o armazenamento.
Bytes/s de gravação de arquivo de ponto de verificação O número de bytes gravados por segundo para o arquivo de ponto de verificação mais recente.
Copiar bytes de transferência de disco/s O número de bytes de disco lidos (na réplica primária) ou gravados (em uma réplica secundária) por segundo durante uma cópia de armazenamento.

Próximos passos

Provedores EventSource em PerfView