Sobre ClientDiagnosticLevel para o serviço de Cache gerenciado do Azure

Observação

Para obter orientações sobre como escolher a oferta certa do Cache do Azure para seu aplicativo, confira qual oferta do Cache do Azure é adequada para mim?.

Serviço de Cache Gerenciado aplicativos cliente são configurados para coleta de dados de diagnóstico usando um nível de diagnóstico. O nível de diagnóstico fornece uma configuração única para especificar o nível de coleta de dados. Este tópico fornece uma visão geral das etapas de solução de problemas e diagnóstico para solução de problemas Serviço de Cache Gerenciado aplicativos.

Importante

Na versão Serviço de Cache Gerenciado, o ClientDiagnosticLevel e as etapas de cliente relacionadas descritas neste tópico se aplicam somente a clientes de cache de serviço de nuvem baseado em função.

Solução de problemas e diagnóstico para aplicativos Serviço de Cache Gerenciado

Os aplicativos em execução no Azure são aplicativos de várias instâncias amplamente distribuídos que podem ser difíceis de depurar. Esses tipos de aplicativos exigem mais do que ferramentas e abordagens padrão para a solução de problemas. A solução de problemas de aplicativos do Azure está além do escopo deste tópico, mas mais informações estão disponíveis em Diagnóstico e Depuração no Azure.

Configurar Serviço de Cache Gerenciado aplicativos para coletar dados de diagnóstico para solução de problemas requer configurar o nível de diagnóstico e configurar o diagnóstico de cache durante a inicialização da função. Este tópico fornece uma visão geral dessas etapas para aplicativos Serviço de Cache Gerenciado.

  • Configurar o nível de diagnóstico do cliente

  • Configurar o diagnóstico do cache durante a inicialização da função

  • Contadores de desempenho por nível de diagnóstico

Configurar o nível de diagnóstico do cliente

Serviço de Cache Gerenciado fornece cinco níveis de diagnóstico do cliente que são usados para configurar a quantidade de coleta de dados de diagnóstico. Os níveis de diagnóstico variam de 0 a 4, indicando o volume de informações de diagnóstico coletadas de servidores e clientes de cache. Cada nível de diagnóstico contém um conjunto pré-configurado de contadores de desempenho, logs de eventos, rastreamento e configurações de despejo de falhas que podem ser usados para monitorar a integridade do aplicativo Serviço de Cache Gerenciado.

Nível de diagnóstico de cliente Dados de diagnóstico coletados

0

Somente logs de problemas altamente críticos/catastróficos de servidor.

1

Dados de diagnóstico que ajudam a avaliar padrões de uso, a integridade do sistema de cache e qualquer erro em potencial. Esse é o nível de configuração padrão.

2

Dados de diagnóstico de granularidade fina, abrangendo todas as solicitações e informações importantes do sistema.

3

Dados de diagnóstico com mais detalhamento e informações do sistema.

4

Logs com nível máximo de detalhamento, registrando todas as solicitações e informações do sistema.

Existem dois tipos de níveis de diagnóstico de cache que correspondem aos diagnósticos de cliente de cache e servidor de cache. DiagnosticLevel representa o diagnóstico do servidor de cache e ClientDiagnosticLevel representa o diagnóstico do cliente de cache. Cada nível configura um conjunto diferente de contadores de desempenho, logs, rastreamentos e configurações de despejo de memória. Esses níveis de diagnóstico são configurados no arquivo ServiceConfiguration.cscfg do aplicativo e podem ser alterados em um aplicativo de nuvem em execução simplesmente implantando um arquivo ServiceConfiguration.cscfg atualizado.

O nível ClientDiagnosticLevel para um cliente de cache é especificado em ServiceConfiguration.cscfg, na seção de configuração da função que é o cliente de cache. Essa configuração é adicionada pelo pacote Serviço de Cache Gerenciado NuGet quando a função é configurada para atuar como um cliente de cache.

Observação

Para obter mais informações sobre como configurar clientes de cache usando o pacote Serviço de Cache Gerenciado NuGet, consulte Como configurar um cliente de cache para o Azure Serviço de Cache Gerenciado.

O ClientDiagnosticLevel padrão é 1 e, se nenhum ClientDiagnosticLevel estiver presente para a função, um ClientDiagnosticLevel de 1 será usado. Para alterar o ClientDiagnosticLevel, modifique a configuração ClientDiagnosticLevel para a função em ServiceConfiguration.cscfg. O exemplo a seguir é a WebRole1 seção de um arquivo ServiceConfiguration.cscfg com um ClientDiagnosticLevel de 1.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for clarity... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>

A tabela a seguir lista os dados de diagnóstico que são coletados em cada nível de diagnóstico de cliente.

Observação

As configurações de despejo de memória nos níveis de diagnóstico de cliente são relevantes apenas para clientes de cache que usem o shim de cliente Memcache. Não são coletados despejos de memória para clientes não Memcache. Para obter mais informações sobre o shim do cliente Memcache, consulte Executar seu aplicativo Memcache com o Azure Serviço de Cache Gerenciado.

ClientDiagnosticLevel Dados coletados

0

  • Nível de Log: Crítico

  • Sem contadores de desempenho

  • Sem registro de logs de eventos

  • Minidespejos de memória

1

2

3

4

Observação

Ao executar Serviço de Cache Gerenciado aplicativos cliente no emulador do Azure, os rastreamentos de todas as instâncias de função são coletados na pasta *_IN_0, mesmo quando há várias instâncias de função. Este comportamento ocorre por design. Quando Serviço de Cache Gerenciado aplicativos são hospedados no Azure, os rastreamentos de cada instância de função de cliente estão localizados nas respectivas pastas para as instâncias de função.

Configurar o diagnóstico do cache durante a inicialização da função

Para iniciar a coleta de dados de diagnóstico de cache, o seguinte código deverá ser invocado durante a inicialização da função. Esse código deve ser adicionado a cada função que seja um cliente de cache ou servidor de cache para que os dados de diagnóstico de cache sejam coletados. Um lugar conveniente para hospedar esse código está na substituição onstart da função, conforme demonstrado no exemplo a seguir.

public override bool OnStart()
{
    DiagnosticMonitorConfiguration dmConfig = 
        DiagnosticMonitor.GetDefaultInitialConfiguration();

    // Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig);

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", 
        dmConfig);

    return base.OnStart();
}
Public Overrides Function OnStart() As Boolean

    ' Existing OnStart override code omitted for clarity.

    Dim dmConfig As DiagnosticMonitorConfiguration = _
        DiagnosticMonitor.GetDefaultInitialConfiguration()

    ' Configure the collection of cache diagnostic data.
    CacheDiagnostics.ConfigureDiagnostics(dmConfig)

    DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString", _
        dmConfig)

    Return MyBase.OnStart()

End Function

O O:Microsoft.ApplicationServer. Caching. O método AzureCommon.CacheDiagnostics.ConfigureDiagnostics configura a coleção de dados de diagnóstico de cache. Se esse método não é chamado, os dados de diagnóstico de cache não são coletados. Para usar a classe CacheDiagnostics, adicione uma referência a Microsoft.ApplicationServer.Caching.AzureCommon.dll localizado em C:\Arquivos de Programas\Microsoft SDKs\Azure\.NET SDK\[Versão atual do SDK]\ref\Caching e adicione a seguinte instrução usando (ou Importações).

using Microsoft.ApplicationServer.Caching.AzureCommon;
Imports Microsoft.ApplicationServer.Caching.AzureCommon

Observação

Se a função tiver sido configurada como um cliente de cache usando o pacote Serviço de Cache Gerenciado NuGet, a referência de assembly Microsoft.ApplicationServer.Caching.AzureCommon.dll já será adicionada.

Se você estiver adicionando cache a uma função existente e o código de configuração de diagnóstico já estiver presente, você poderá adicionar a chamada a O:Microsoft.ApplicationServer. Caching. AzureCommon.CacheDiagnostics.ConfigureDiagnostics para o código de inicialização de diagnóstico existente antes da chamada para O:Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start.

Aviso

Chamando O:Microsoft.ApplicationServer. Caching. AzureCommon.CacheDiagnostics.ConfigureDiagnostics e O:Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.Start são necessários para coleta de dados de diagnóstico em aplicativos Serviço de Cache Gerenciado. Se esses dois métodos não forem chamados durante a inicialização da função, não serão coletados dados de diagnóstico de cache.

Contadores de desempenho por nível de diagnóstico

As seções a seguir contêm listas dos contadores de desempenho incluídos em cada nível de diagnóstico de servidor e cliente. Os contadores Serviço de Cache Gerenciado e de desempenho estão incluídos. Para obter uma lista completa com descrições dos contadores de desempenho do Serviço de Cache Gerenciado, consulte Monitor Azure Serviço de Cache Gerenciado. Para obter mais informações sobre os contadores de desempenho, consulte Contadores de Desempenho no .NET Framework.

  • Contadores de desempenho de cliente no nível de diagnóstico 1

  • Contadores de desempenho de cliente nos níveis de diagnóstico 2, 3 e 4

Contadores de desempenho de cliente no nível de diagnóstico 1

ClientDiagnosticLevel 1 contém os seguintes contadores de desempenho.

  • \Azure Caching:Client Host\Exceções de Falha

  • \Azure Caching:Client Host\Total de Acertos do Cache Local

  • \Azure Caching:Client Host\Conexões de Servidor Atuais

  • \Azure Caching:Client Host\Latência Média de Get/operação Microssegundos

  • \Azure Caching:Client Host\Latência Média de Put/operação Microssegundos

  • \Azure Caching:Client Host\Exceções de Repetição

  • \Azure Caching:Client Host\Exceções de Tempo Limite

  • \Azure Caching:Client Host\Solicitações

  • \Processor(_Total)\% tempo do processador

  • \.NET CLR Memory(_Global_)\% Tempo no GC

  • \Azure Caching:Client(*)\Exceções de Falha

  • \Azure Caching:Client(*)\Total de Acertos do Cache Local

  • \Azure Caching:Client(*)\Conexões de Servidor Atuais

  • \Azure Caching:Client(*)\Latência Média de Get/operação Microssegundos

  • \Azure Caching:Client(*)\Latência Média de Put/operação Microssegundos

  • \Azure Caching:Client(*)\Exceções de Repetição

  • \Azure Caching:Client(*)\Exceções de Tempo Limite

  • \Azure Caching:Client(*)\Solicitações

Contadores de desempenho de cliente nos níveis de diagnóstico 2, 3 e 4

ClientDiagnosticLevel 2, 3 e 4 contém os seguintes contadores de desempenho.

  • \Azure Caching:Client Host\Solicitações

  • \Azure Caching:Client Host\Solicitações/s

  • \Azure Caching:Client Host\Respostas de Servidor Ignoradas/s

  • \Azure Caching:Client Host\Exceções de Falha

  • \Azure Caching:Client Host\Exceções de Falha/s

  • \Azure Caching:Client Host\Latência Média de Get/operação Microssegundos

  • \Azure Caching:Client Host\Latência Média de Put/operação Microssegundos

  • \Azure Caching:Client Host\Latência Média de Get (Rede)/operação Microssegundos

  • \Azure Caching:Client Host\Solicitações de Leitura

  • \Azure Caching:Client Host\Solicitações de Gravação

  • \Azure Caching:Client Host\Bytes Recebidos/s

  • \Azure Caching:Client Host\Bytes Enviados/s

  • \Azure Caching:Client Host\Conexões de Servidor Atuais

  • \Azure Caching:Client Host\Porcentagem de Preenchimento do Cache Local

  • \Azure Caching:Client Host\Porcentagem de Acertos do Cache Local

  • \Azure Caching:Client Host\Total de Acertos do Cache Local

  • \Azure Caching:Client Host\Total de Objetos no Cache Local

  • \Azure Caching:Client Host\Total de Notificações Recebidas

  • \Azure Caching:Client Host\Exceções de Tempo Limite

  • \Azure Caching:Client Host\Exceções de Tempo Limite/s

  • \Azure Caching:Client Host\Exceções de Repetição

  • \Azure Caching:Client Host\Exceções de Repetição/s

  • \Azure Caching:Client Host\Total de Solicitações de Conexão com Falha

  • \Azure Caching:Client Host\Exceções de Rede

  • \Azure Caching:Client Host\Exceções de Rede/s

  • \Azure Caching:Client Host\Solicitações Atualmente em Espera

  • \Processor(_Total)\% tempo do processador

  • \.NET CLR Memory(_Global_)\% Tempo no GC

  • \Azure Caching:Client(*)\Solicitações

  • \Azure Caching:Client(*)\Solicitações/s

  • \Azure Caching:Client(*)\Respostas de Servidor Ignoradas/s

  • \Azure Caching:Client(*)\Exceções de Falha

  • \Azure Caching:Client(*)\Exceções de Falha/s

  • \Azure Caching:Client(*)\Latência Média de Get/operação Microssegundos

  • \Azure Caching:Client(*)\Latência Média de Put/operação Microssegundos

  • \Azure Caching:Client(*)\Latência Média de Get (Rede)/operação Microssegundos

  • \Azure Caching:Client(*)\Solicitações de Leitura

  • \Azure Caching:Client(*)\Solicitações de Gravação

  • \Azure Caching:Client(*)\Bytes Recebidos/s

  • \Azure Caching:Client(*)\Bytes Enviados/s

  • \Azure Caching:Client(*)\Conexões de Servidor Atuais

  • \Azure Caching:Client(*)\Porcentagem do Cache Local Preenchida

  • \Azure Caching:Client(*)\Porcentagem de Acertos do Cache Local

  • \Azure Caching:Client(*)\Total de Acertos do Cache Local

  • \Azure Caching:Client(*)\Total de Objetos no Cache Local

  • \Azure Caching:Client(*)\Total de Notificações Recebidas

  • \Azure Caching:Client(*)\Exceções de Tempo Limite

  • \Azure Caching:Client(*)\Exceções de Tempo Limite/s

  • \Azure Caching:Client(*)\Exceções de Repetição

  • \Azure Caching:Client(*)\Exceções de Repetição/s

  • \Azure Caching:Client(*)\Total de Solicitações de Conexão com Falha

  • \Azure Caching:Client(*)\Exceções de Rede

  • \Azure Caching:Client(*)\Exceções de Rede/s

  • \Azure Caching:Client(*)\Solicitações Atualmente em Espera

Consulte Também

Referência

Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor

Conceitos

Monitorar o serviço de cache gerenciado do Azure

Outros recursos

Contadores de desempenho no .NET Framework
Diagnóstico e depuração no Azure