Compartilhar via


Funcionalidade de diagnóstico para Reliable Services com monitoração de estado

A classe StatefulServiceBase dos Reliable Services com Estado do Azure Service Fabric emite eventos EventSource que podem ser usados para depurar o serviço, fornecer informações sobre como o runtime está funcionando e ajudar a solucionar problemas.

Eventos EventSource

O nome EventSource para a classe StatefulServiceBase de Serviços Confiáveis com estado é "Microsoft-ServiceFabric-Services". Os eventos dessa fonte de eventos aparecem na janela Eventos de Diagnóstico quando o serviço está sendo depurado em Visual Studio.

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

Eventos

Nome do evento ID do evento Nível 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 para entender o ciclo de vida de um serviço, bem como o tempo em que 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.

Gravadores de serviço devem prestar muita atenção nos eventos StatefulRunAsyncSlowCancellation e StatefulRunAsyncFailure, pois eles indicam problemas com o serviço.

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

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

Contadores de desempenho

O runtime dos Reliable Services define as categorias de contador de desempenho a seguir:

Categoria Descrição
Replicador Transacional do Service Fabric Contadores específicos para o Replicador Transacional do Azure Service Fabric
Service Fabric TStore Contadores específicos para o Replicador Transacional

O replicador transacional do Service Fabric é usado pelo Gerenciador de estado confiável para replicar as transações em um determinado conjunto de réplicas.

O Service Fabric TStore é um componente usado nas Coleções Confiáveis para armazenar e recuperar pares de valor de chave.

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 confiáveis ou partições de serviço confiáveis terá um grande número de instâncias do contador de desempenho do replicador transacional. Isso também é o caso para os contadores TStore contadores de desempenho, mas também é multiplicado pelo número de dicionários confiáveis e filas confiáveis usadas. Os nomes da instância do contador de desempenho podem ajudar a identificar a réplica de partição específica e o fornecedor de estado no caso de TStore que 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 da instância do contador estão no seguinte formato:

ServiceFabricPartitionId:ServiceFabricReplicaId

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

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

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

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

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

Categoria do Service Fabric TStore

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

ServiceFabricPartitionId:ServiceFabricReplicaId:StateProviderId_PerformanceCounterInstanceDifferentiator_StateProviderName

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

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

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

PerformanceCounterInstanceDifferentiator é uma ID de diferenciação associada a uma instância do contador de desempenho dentro de um provedor de estado. Este diferenciador está incluido no nome da instância do contador de desempenho para garantir sua exclusividade e evitar conflito com outras instâncias do contador geradas pelo mesmo fornecedor de estado.

StateProviderName é o nome associada 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 seguinte nome de instância do contador é típico para um contador na Service Fabric TStore categoria:

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

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

Contadores de desempenho de replicador transacional

O runtime de Serviços Confiáveis emite os eventos a seguir na Service Fabric Transactional Replicator categoria

Nome do contador Descrição
Operações de Início de Trans./s Número de novas transações de gravação criadas por segundo.
Operações de Transação/s O número de operações de adicionar/atualizar/excluir executadas em coleções confiáveis por segundo.
Liberação de log Bytes/sec O número de bytes que estão sendo liberados para o disco pelo Replicador Transacional por segundo
Operações Limitadas/s O número de operações rejeitadas a cada segundo pelo Replicador Transacional devido à limitação.
Média de transações em ms/Commit Latência de confirmação média por transação em milissegundos
Latência média de liberação (ms) Duração média das operações de limpeza de disco iniciada pelo Replicador Transacional em milissegundos

Contadores de desempenho TStore

O runtime de Serviços Confiáveis emite os eventos a seguir na Service Fabric TStore categoria

Nome do contador Descrição
Contagem de Itens O número de itens no repositório.
Tamanho do disco Tamanho total do disco, em bytes, dos arquivos de ponto de verificação para o repositório.
Bytes de gravação de arquivo de ponto de verificação por segundo O número de bytes gravados por segundo para o arquivo de ponto de verificação mais recente.
Bytes de transferência de disco de cópia por segundo 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 do repositório.

Próximas etapas

Provedores de EventSource no PerfView