Exportar (0) Imprimir
Expandir Tudo

Use o arquivo de configuração de diagnóstico do Windows Azure

Atualizado: dezembro de 2013

É possível coletar dados de diagnóstico importando o módulo Diagnóstico no modelo de serviço e, em seguida, configurando as fontes de dados a partir das quais os dados de diagnóstico são coletados. As fontes de dados devem ser adicionadas à configuração do monitor de diagnóstico para coletar dados de diagnóstico. Você pode configurar o monitor de diagnóstico programaticamente, porém o SDK do Windows Azure oferece a você a capacidade de configurar o Diagnóstico usando um arquivo de configuração XML (diagnostics.wadcfg). Esse método tem muitas vantagens em relação a gravar código:

  1. O Diagnóstico inicia antes do método OnStart ser executado de modo que os erros nas tarefas de inicialização possam ser capturadas e registradas em log

  2. Todas as alterações feitas na configuração em tempo de execução permanecerão após uma reinicialização.

  3. As alterações de configuração de diagnóstico não exigem que o código seja recriado.

  4. Você pode iniciar automaticamente o monitor de diagnóstico com uma configuração específica sem precisar de código adicional (o que pode causar uma exceção que impediria sua função de iniciar).

O comportamento padrão de diagnóstico é coletar logs de infraestrutura e de rastreamento e não transferir dados para o armazenamento. Se você quiser coletar dados além dos dados padrão, deverá configurar o monitor de diagnóstico para fazer isso.

Este tópico discute a criação do arquivo de configuração XML diagnostics.wadcfg. Para obter mais informações sobre o processo geral de configurar fontes de dados de diagnóstico em seu aplicativo, persistir dados de diagnóstico para armazenamento e exibir os dados no armazenamento, consulte Habilitando o diagnóstico no Windows Azure.

A lista a seguir identifica os locais do arquivo de configuração de diagnóstico para os diferentes tipos de função:

  • Para funções de trabalho, o arquivo de configuração está localizado no diretório raiz da função.

  • Para funções da Web, o arquivo de configuração está localizado no diretório bin no diretório raiz da função.

Se o arquivo de configuração existir em um desses locais quando o módulo Diagnóstico for importado, o monitor de diagnóstico definirá os parâmetros usando o arquivo de configuração em vez das configurações padrão.

O arquivo de configuração diagnostics.wadcfg é um documento XML que está em conformidade com o esquema localizado em %ProgramFiles%\Microsoft SDKs\Windows Azure\<SDK>\<VersionNumber>\schemas\DiagnosticsConfig201010.xsd, onde <SDK> é o SDK do desenvolvedor que você está usando e <VersionNumber> é a versão. Para obter mais informações sobre o esquema para esse arquivo XML, consulte Esquema de configuração de diagnóstico do Windows Azure.

O exemplo a seguir mostra um exemplo de arquivo de configuração diagnostics.wadcfg. Esse arquivo de configuração coleta todos os tipos de informações de diagnóstico. Não se esqueça de remover as fontes de dados que você não deseja coletar em seu aplicativo.

<?xml version="1.0" encoding="utf-8" ?>
<DiagnosticMonitorConfiguration xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration"
      configurationChangePollInterval="PT1M"
      overallQuotaInMB="4096">

  <DiagnosticInfrastructureLogs bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M" />

  <Logs bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M" />

  <Directories bufferQuotaInMB="0"
     scheduledTransferPeriod="PT30M">  
    <!-- FailedRequestLogs and IISLogs are only relevant to Web roles -->
    <CrashDumps container="wad-crash-dumps" directoryQuotaInMB="0" />
    <FailedRequestLogs container="wad-frq" directoryQuotaInMB="0" />
    <IISLogs container="wad-iis" directoryQuotaInMB="0" />
    <DataSources>
      <DirectoryConfiguration container="diagnostics-custom-logs" directoryQuotaInMB="1024">
        <LocalResource name="MyCustomLogs" relativePath="."/>
      </DirectoryConfiguration>     
    </DataSources>
  </Directories>

  <PerformanceCounters bufferQuotaInMB="0" scheduledTransferPeriod="PT30M">
    <PerformanceCounterConfiguration counterSpecifier="\Memory\Available Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT30S" />
    <!-- These three elements are only relevant to Web roles -->
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\% Processor Time" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\Private Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(w3wp)\Thread Count" sampleRate="PT30S" />
    <!-- These three elements are only relevant to Worker roles -->
    <!-- <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\% Processor Time" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\Private Bytes" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\Process(WaWorkerHost)\Thread Count" sampleRate="PT30S" /> -->
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Interop(_Global_)\# of marshalling" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Loading(_Global_)\% Time Loading" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR LocksAndThreads(_Global_)\Contention Rate / sec" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Memory(_Global_)\# Bytes in all Heaps" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Networking(_Global_)\Connections Established" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Remoting(_Global_)\Remote Calls/sec" sampleRate="PT30S" />
    <PerformanceCounterConfiguration counterSpecifier="\.NET CLR Jit(_Global_)\% Time in Jit" sampleRate="PT30S" />
  </PerformanceCounters>

  <WindowsEventLog bufferQuotaInMB="0"
     scheduledTransferLogLevelFilter="Verbose"
     scheduledTransferPeriod="PT30M">
    <DataSource name="Application!*" />
    <DataSource name="System!*" />
  </WindowsEventLog>

</DiagnosticMonitorConfiguration>

Veja a seguir uma visão geral dos elementos XML usados para configurar as fontes de dados de diagnóstico:

  • DiagnosticMonitorConfiguration – contém as definições para o conjunto de buffers de dados fixos padrão para informações de log e diagnóstico. Para obter mais informações, consulte DiagnosticMonitorConfiguration.

  • DiagnosticInfrastructureLogs – contém as definições para o tamanho do buffer de dados, e o nível e a frequência de transferência de dados para logs de infraestrutura de diagnóstico. Para obter mais informações, consulte, DiagnosticInfrastructureLogs.

  • Logs – contém as definições para o tamanho do buffer de dados, e o nível e a frequência de transferência de dados para os logs básicos do Windows Azure. Para obter mais informações, consulte Logs.

  • Directories – contém as definições para o caminho, o tamanho do buffer de dados, e o nível e a frequência de transferência de dados para logs baseados em arquivos que você define. Esse elemento contém definições para os diretórios especiais (CrashDumps, FailedRequestLogs e IISLogs) e os diretórios que você cria (DataSources). Para obter mais informações, consulte Directories.

  • PerformanceCounters – contém as definições para a configuração do contador, o tamanho do buffer de dados, e o nível e a frequência de transferência de dados para os dados do contador de desempenho. Para obter mais informações, consulte PerformanceCounters.

    noteObservação
    Se você estiver usando uma tarefa de inicialização par instalar um contador de desempenho personalizado, não poderá colocar a definição do contador no arquivo de configuração porque o monitor de diagnóstico tentará usar o contador antes de você criá-lo.

  • WindowsEventLog – contém as definições para o log, o tamanho do buffer de dados e o nível e a frequência de transferência de dados dos logs de eventos do Windows. Para obter mais informações, consulte WindowsEventLog.

Mostrar:
© 2014 Microsoft