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. |