Resolução de problemas do Diagnóstico do AzureAzure Diagnostics troubleshooting

Este artigo descreve informações de resolução de problemas que são relevantes para a utilização de Azure Diagnostics.This article describes troubleshooting information that's relevant to using Azure Diagnostics. Para obter mais informações sobre os diagnósticos Azure, consulte a visão geral do Azure Diagnostics.For more information about Azure diagnostics, see Azure Diagnostics overview.

Componentes lógicosLogical components

Lançador plugin de diagnóstico (DiagnosticsPluginLauncher.exe): Lança a extensão Azure Diagnostics.Diagnostics Plugin Launcher (DiagnosticsPluginLauncher.exe): Launches the Azure Diagnostics extension. Serve como o processo de ponto de entrada.Serves as the entry point process.

Diagnósticos Plugin (DiagnosticsPlugin.exe): Configura, lança e gere a vida útil do agente de monitorização.Diagnostics Plugin (DiagnosticsPlugin.exe): Configures, launches, and manages the lifetime of the monitoring agent. É o principal processo que é lançado pelo lançador.It is the main process that is launched by the launcher.

Monitoring Agent (MonAgent * .exe processos): Monitores, recolhes e transfere os dados de diagnóstico.Monitoring Agent (MonAgent*.exe processes): Monitors, collects, and transfers the diagnostics data.

Caminhos de log/artefactoLog/artifact paths

Seguem-se os caminhos para alguns importantes troncos e artefactos.Following are the paths to some important logs and artifacts. Referimo-nos a esta informação ao longo do resto do documento.We refer to this information throughout the rest of the document.

Cloud Services do AzureAzure Cloud Services

ArtefactoArtifact CaminhoPath
Arquivo de configuração de DiagnósticoS AzureAzure Diagnostics configuration file %SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics <version>\Config.txt%SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\Config.txt
Registar ficheirosLog files C:\Logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>C:\Logs\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>\
Loja local para dados de diagnósticoLocal store for diagnostics data C:\Recursos\Diretório <CloudServiceDeploymentID> <RoleName> . . Loja de Diagnóstico\WAD0107\TabelasC:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Tables
Ficheiro de configuração do agente de monitorizaçãoMonitoring agent configuration file C:\Recursos\Diretório <CloudServiceDeploymentID> . <RoleName>.DiagnosticStore\WAD0107\Configuration\MaConfig.xmlC:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Configuration\MaConfig.xml
Pacote de extensão Azure DiagnosticsAzure Diagnostics extension package %SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>%SystemDrive%\Packages\Plugins\Microsoft.Azure.Diagnostics.PaaSDiagnostics<version>
Caminho de utilidade de recolha de registosLog collection utility path %SystemDrive%\Packages\GuestAgent%SystemDrive%\Packages\GuestAgent\
Ficheiro de log monAgentHostMonAgentHost log file C:\Recursos\Diretório <CloudServiceDeploymentID> <RoleName> . . Loja de Diagnóstico\WAD0107\Configuração\MonAgentHost.<seq_num>.logC:\Resources\Directory<CloudServiceDeploymentID>.<RoleName>.DiagnosticStore\WAD0107\Configuration\MonAgentHost.<seq_num>.log

Máquinas virtuaisVirtual machines

ArtefactoArtifact CaminhoPath
Arquivo de configuração de DiagnósticoS AzureAzure Diagnostics configuration file C:\Pacotes\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics <version> \RuntimeSettingsC:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\RuntimeSettings
Registar ficheirosLog files C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\
Loja local para dados de diagnósticoLocal store for diagnostics data C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics <DiagnosticsVersion> \WAD0107\TabelasC:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Tables
Ficheiro de configuração do agente de monitorizaçãoMonitoring agent configuration file C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics <DiagnosticsVersion>\WAD0107\Configuration\MaConfig.xmlC:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MaConfig.xml
Ficheiro de estadoStatus file C:\Pacotes\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics <version> \StatusC:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<version>\Status
Pacote de extensão Azure DiagnosticsAzure Diagnostics extension package C:\Pacotes\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>
Caminho de utilidade de recolha de registosLog collection utility path C:\WindowsAzure\Logs\WaAppAgent.logC:\WindowsAzure\Logs\WaAppAgent.log
Ficheiro de log monAgentHostMonAgentHost log file C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics <DiagnosticsVersion> \WAD0107\Configuration\MonAgentHost.<seq_num>.logC:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics<DiagnosticsVersion>\WAD0107\Configuration\MonAgentHost.<seq_num>.log

Os dados métricos não aparecem no portal do AzureMetric data doesn't appear in the Azure portal

O Azure Diagnostics fornece dados métricos que podem ser apresentados no portal Azure.Azure Diagnostics provides metric data that can be displayed in the Azure portal. Se tiver problemas em ver os dados no portal, verifique a tabela WADMetrics * na conta de armazenamento Azure Diagnostics para ver se existem os registos métricos correspondentes e certifique-se de que o fornecedor de recursos Microsoft.Insights está registado.If you have problems seeing the data in portal, check the WADMetrics* table in the Azure Diagnostics storage account to see if the corresponding metric records are there and ensure that the resource provider Microsoft.Insights is registered.

Aqui, a PartitionKey da tabela é o ID de recursos, máquina virtual ou conjunto de escala de máquina virtual.Here, the PartitionKey of the table is the resource ID, virtual machine, or virtual machine scale set. RowKey é o nome métrico (também conhecido como o nome do contador de desempenho).RowKey is the metric name (also known as the performance counter name).

Se o ID do recurso estiver incorreto, verifique as métricas de configuração de diagnóstico > > ResourceId para ver se o ID do recurso está corretamente definido.If the resource ID is incorrect, check Diagnostics Configuration > Metrics > ResourceId to see if the resource ID is set correctly.

Se não houver dados para a métrica específica, verifique o Diagnostics Configuration > PerformanceCounter para ver se a métrica (contador de desempenho) está incluída.If there's no data for the specific metric, check Diagnostics Configuration > PerformanceCounter to see if the metric (performance counter) is included. Ativamos os seguintes contadores por padrão:We enable the following counters by default:

  • \Processor(_Total)% Processor Time\Processor(_Total)% Processor Time
  • \Memory\Available Bytes\Memory\Available Bytes
  • \ASP.NET Candidaturas(Total)\Pedidos/Sec\ASP.NET Applications(Total)\Requests/Sec
  • \ASP.NET Aplicações(Total)\Erros Total/Sec\ASP.NET Applications(Total)\Errors Total/Sec
  • \ASP.NET\Pedidos em fila\ASP.NET\Requests Queued
  • \ASP.NET\Pedidos rejeitados\ASP.NET\Requests Rejected
  • \Tempo do processador (w3wp) %\Processor(w3wp)% Processor Time
  • \Processo(w3wp)\Bytes privados\Process(w3wp)\Private Bytes
  • \Tempo do processador \WaIISHost) %\Process(WaIISHost)% Processor Time
  • \Processo(WaIISHost)\Bytes privados\Process(WaIISHost)\Private Bytes
  • \Tempo do processador \WaWorkerHost) %\Process(WaWorkerHost)% Processor Time
  • \Processo(WaWorkerHost)\Bytes privados\Process(WaWorkerHost)\Private Bytes
  • \Memória\Falhas de página/seg\Memory\Page Faults/sec
  • .NET CLR Memory(Global) % Tempo em GC.NET CLR Memory(Global)% Time in GC
  • \LogicalDisk(C:)\Disk Write Bytes/sec\LogicalDisk(C:)\Disk Write Bytes/sec
  • \LogicalDisk(C:)\Disk Read Bytes/sec\LogicalDisk(C:)\Disk Read Bytes/sec
  • \LogicalDisk(D:)\Disk Write Bytes/sec\LogicalDisk(D:)\Disk Write Bytes/sec
  • \LogicalDisk(D:)\Disk Read Bytes/sec\LogicalDisk(D:)\Disk Read Bytes/sec

Se a configuração estiver corretamente definida, mas ainda não conseguir ver os dados métricos, utilize as seguintes diretrizes para o ajudar a resolver problemas.If the configuration is set correctly but you still can't see the metric data, use the following guidelines to help you troubleshoot.

O Diagnóstico do Azure não está a iniciarAzure Diagnostics is not starting

Para obter informações sobre o motivo pelo qual o Azure Diagnostics não começou, consulte os ficheiros DiagnosticsPluginLauncher.log e DiagnosticsPlugin.log ficheiros no local dos ficheiros de registo que foram fornecidos anteriormente.For information about why Azure Diagnostics failed to start, see the DiagnosticsPluginLauncher.log and DiagnosticsPlugin.log files in the log files location that was provided earlier.

Se estes registos Monitoring Agent not reporting success after launch indicarem, significa que houve uma falha no lançamento MonAgentHost.exe.If these logs indicate Monitoring Agent not reporting success after launch, it means there was a failure launching MonAgentHost.exe. Veja os registos no local indicado MonAgentHost log file na secção anterior.Look at the logs in the location that's indicated for MonAgentHost log file in the previous section.

A última linha dos ficheiros de registo contém o código de saída.The last line of the log files contains the exit code.

DiagnosticsPluginLauncher.exe Information: 0 : [4/16/2016 6:24:15 AM] DiagnosticPlugin exited with code 0

Se encontrar um código de saída negativo, consulte a tabela de códigos de saída na secção Referências.If you find a negative exit code, refer to the exit code table in the References section.

Os dados de diagnóstico não são registados no Armazenamento do Microsoft AzureDiagnostics data is not logged to Azure Storage

Determine se nenhum dos dados está a aparecer ou se alguns dos dados estão a aparecer.Determine if none of the data is appearing or some of the data is appearing.

Registos de infraestruturas de diagnósticoDiagnostics infrastructure logs

O diagnóstico regista todos os erros nos registos de infraestruturas de Diagnóstico.Diagnostics logs all errors in the Diagnostics infrastructure logs. Certifique-se de que ativou a captura de registos de infraestruturas de Diagnóstico na sua configuração.Make sure you have enabled the capture of Diagnostics infrastructure logs in your configuration. Em seguida, pode procurar rapidamente quaisquer erros relevantes que apareçam DiagnosticInfrastructureLogsTable na tabela na sua conta de armazenamento configurada.Then you can quickly look for any relevant errors that appear in the DiagnosticInfrastructureLogsTable table in your configured storage account.

Não aparecem dadosNo data is appearing

A razão mais comum para que os dados do evento não apareçam é que a informação da conta de armazenamento é definida incorretamente.The most common reason that event data doesn't appear at all is that the storage account information is defined incorrectly.

Solução: Corrija a configuração de Diagnóstico e reinstale diagnósticos.Solution: Correct your Diagnostics configuration and reinstall Diagnostics.

Se a conta de armazenamento estiver configurada corretamente, o acesso remoto à máquina e verifique se DiagnosticsPlugin.exe e MonAgentCore.exe estão a funcionar.If the storage account is configured correctly, remote access into the machine and verify that DiagnosticsPlugin.exe and MonAgentCore.exe are running. Se não estiverem a correr, siga os passos em Azure Diagnostics não está a começar.If they aren't running, follow the steps in Azure Diagnostics is not starting.

Se os processos estiverem a decorrer, vá a dados de São ser capturados localmente?If the processes are running, go to Is data getting captured locally? and follow the instructions there.

Se isto não resolver o problema, tente:If this doesn't solve the problem, try to:

  1. Desinstalar o agenteUninstall the agent
  2. Remover diretório C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnosticsRemove directory C:\WindowsAzure\Logs\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics
  3. Volte a instalar o agenteInstall agent again

Falta parte dos dados.Part of the data is missing

Se estiver a obter alguns dados, mas não todos, significa que o pipeline de recolha/transferência de dados está definido corretamente.If you are getting some data but not all, it means that the data collection/transfer pipeline is set correctly. Siga as subsecções aqui para reduzir a questão.Follow the subsections here to narrow down the issue.

A coleção está configurada?Is the collection configured?

A configuração de Diagnóstico contém instruções para que um determinado tipo de dados seja recolhido.The Diagnostics configuration contains instructions for a particular type of data to be collected. Reveja a sua configuração para verificar se está apenas à procura de dados que configura para a recolha.Review your configuration to verify that you are only looking for data that you've configured for the collection.

O hospedeiro está a gerar dados?Is the host generating data?

  • Contadores de desempenho: Abra o perfmon e verifique o balcão.Performance counters: Open perfmon and check the counter.

  • Registos de rastreios: Acesso remoto ao VM e adicionar um TextWriterTraceListener ao ficheiro config da aplicação.Trace logs: Remote access into the VM and add a TextWriterTraceListener to the app’s config file. Consulte https://msdn.microsoft.com/library/sk36c28t.aspx para configurar o ouvinte de texto.See https://msdn.microsoft.com/library/sk36c28t.aspx to set up the text listener. Certifique-se de que o <trace> elemento tem <trace autoflush="true"> .Make sure the <trace> element has <trace autoflush="true">.
    Se não vir vestígios de registos a serem gerados, consulte mais sobre registos de vestígios em falta.If you don't see trace logs being generated, see More about trace logs missing.

  • Vestígios da ETW: Acesso remoto ao VM e instalação perfView.ETW traces: Remote access into the VM and install PerfView. No PerfView, executar o Comando do Utilizador de > > Ficheiros Ouvir etwprovder1 > etwprovider2, e assim por diante.In PerfView, run File > User Command > Listen etwprovder1 > etwprovider2, and so on. O comando Listen é sensível a casos, e não pode haver espaços entre a lista separada por vírgula de fornecedores ETW.The Listen command is case-sensitive, and there cannot be spaces between the comma-separated list of ETW providers. Se o comando não funcionar, pode selecionar o botão Registar no canto inferior direito da ferramenta Perfview para ver o que tentou executar e qual foi o resultado.If the command fails to run, you can select the Log button in the bottom right of the Perfview tool to see what attempted to run and what the result was. Assumindo que a entrada está correta, aparece uma nova janela.Assuming the input is correct, a new window pops up. Em poucos segundos, começas a ver vestígios da ETW.In a few seconds, you begin seeing ETW traces.

  • Registos de eventos: Acesso remoto ao VM.Event logs: Remote access into the VM. Abra, Event Viewer e, em seguida, certifique-se de que os eventos existem.Open Event Viewer, and then ensure that the events exist.

Os dados estão a ser capturados localmente?Is data getting captured locally?

Em seguida, certifique-se de que os dados estão a ser capturados localmente.Next, make sure the data is getting captured locally. Os dados são armazenados localmente em *.tsf ficheiros na loja local para dados de diagnóstico.The data is locally stored in *.tsf files in the local store for diagnostics data. Diferentes tipos de registos são recolhidos em .tsf diferentes ficheiros.Different kinds of logs get collected in different .tsf files. Os nomes são semelhantes aos nomes de tabelas no Azure Storage.The names are similar to the table names in Azure Storage.

Por exemplo, Performance Counters recolha-se em PerformanceCountersTable.tsf .For example, Performance Counters get collected in PerformanceCountersTable.tsf. Os registos de eventos são recolhidos em WindowsEventLogsTable.tsf .Event logs get collected in WindowsEventLogsTable.tsf. Utilize as instruções na secção local de extração de registos para abrir os ficheiros de recolha local e verificar se os vê a serem recolhidos no disco.Use the instructions in the Local log extraction section to open the local collection files and verify that you see them getting collected on disk.

Se não vir registos a serem recolhidos localmente e já tiver verificado que o anfitrião está a gerar dados, é provável que tenha um problema de configuração.If you don't see logs getting collected locally, and have already verified that the host is generating data, you likely have a configuration issue. Reveja cuidadosamente a sua configuração.Review your configuration carefully.

Reveja também a configuração gerada para monitoraragente MaConfig.xml.Also review the configuration that was generated for MonitoringAgent MaConfig.xml. Verifique se existe uma secção que descreve a fonte de registo relevante.Verify that there is a section that describes the relevant log source. Verifique então se não se perde na tradução entre a configuração de Diagnóstico e a configuração do agente de monitorização.Then verify that it is not lost in translation between the Diagnostics configuration and the monitoring agent configuration.

Os dados estão a ser transferidos?Is data getting transferred?

Se verificou que os dados estão a ser capturados localmente, mas ainda não os vê na sua conta de armazenamento, tome os seguintes passos:If you have verified that the data is getting captured locally but you still don't see it in your storage account, take the following steps:

  • Verifique se forneceu uma conta de armazenamento correta e que não rolou as chaves para a conta de armazenamento dada.Verify that you have provided a correct storage account, and that you haven't rolled over keys for the given storage account. Para o Azure Cloud Services, às vezes vemos que as pessoas não atualizam useDevelopmentStorage=true .For Azure Cloud Services, sometimes we see that people don't update useDevelopmentStorage=true.

  • Verifique se a conta de armazenamento fornecida está correta.Verify that the provided storage account is correct. Certifique-se de que não tem restrições de rede que impeçam os componentes de chegar aos pontos finais de armazenamento público.Make sure you don't have network restrictions that prevent the components from reaching public storage endpoints. Uma maneira de fazer isso é aceder remotamente à máquina, e depois tentar escrever algo para a mesma conta de armazenamento.One way to do that is to remote access into the machine, and then try to write something to the same storage account yourself.

  • Finalmente, pode ver que falhas estão a ser reportadas pelo agente de monitorização.Finally, you can look at what failures are being reported by the monitoring Agent. O agente de monitorização escreve os seus maeventtable.tsf logins, que está localizado na loja local para dados de diagnóstico.The monitoring agent writes its logs in maeventtable.tsf, which is located in the local store for diagnostics data. Siga as instruções na secção local de extração de registos para a abertura deste ficheiro.Follow the instructions in the Local log extraction section for opening this file. Em seguida, tente determinar se existem errors falhas de leitura para ficheiros locais que escrevem para armazenamento.Then try to determine if there are errors that indicate failures reading to local files writing to storage.

Captação e arquivo de troncosCapturing and archiving logs

Se está a pensar em contactar o suporte, a primeira coisa que lhe podem pedir é que recolha registos da sua máquina.If you are thinking about contacting support, the first thing they might ask you is to collect logs from your machine. Podes poupar tempo fazendo isso sozinho.You can save time by doing that yourself. Executar o CollectGuestLogs.exe utilitário no caminho de utilidade de recolha de log.Run the CollectGuestLogs.exe utility at Log collection utility path. Gera um ficheiro .zip com todos os registos Azure relevantes na mesma pasta.It generates a .zip file with all relevant Azure logs in the same folder.

Tabelas de dados de diagnóstico não encontradasDiagnostics data tables not found

As tabelas de armazenamento Azure que detêm eventos ETW são nomeadas usando o seguinte código:The tables in Azure storage that hold ETW events are named by using the following code:

        if (String.IsNullOrEmpty(eventDestination)) {
            if (e == "DefaultEvents")
                tableName = "WADDefault" + MD5(provider);
            else
                tableName = "WADEvent" + MD5(provider) + eventId;
        }
        else
            tableName = "WAD" + eventDestination;

Segue-se um exemplo:Here is an example:

        <EtwEventSourceProviderConfiguration provider="prov1">
          <Event id="1" />
          <Event id="2" eventDestination="dest1" />
          <DefaultEvents />
        </EtwEventSourceProviderConfiguration>
        <EtwEventSourceProviderConfiguration provider="prov2">
          <DefaultEvents eventDestination="dest2" />
        </EtwEventSourceProviderConfiguration>
"EtwEventSourceProviderConfiguration": [
    {
        "provider": "prov1",
        "Event": [
            {
                "id": 1
            },
            {
                "id": 2,
                "eventDestination": "dest1"
            }
        ],
        "DefaultEvents": {
            "eventDestination": "DefaultEventDestination",
            "sinks": ""
        }
    },
    {
        "provider": "prov2",
        "DefaultEvents": {
            "eventDestination": "dest2"
        }
    }
]

Este código gera quatro tabelas:This code generates four tables:

EventoEvent Nome da tabelaTable name
fornecedor="prov1" < Evento id="1" />provider="prov1" <Event id="1" /> WADEvent+MD5 ("prov1")+"1"WADEvent+MD5("prov1")+"1"
fornecedor="prov1" < Evento id="2" eventDestination="dest1" />provider="prov1" <Event id="2" eventDestination="dest1" /> WADdest1WADdest1
fornecedor="prov1" < DefaultEvents />provider="prov1" <DefaultEvents /> WADDefault+MD5 ("prov1")WADDefault+MD5("prov1")
fornecedor="prov2" < DefaultEvents eventDestination="dest2" />provider="prov2" <DefaultEvents eventDestination="dest2" /> WADdest2WADdest2

ReferênciasReferences

Como verificar a configuração da extensão de DiagnósticoHow to check Diagnostics extension configuration

A forma mais fácil de verificar a configuração da extensão é ir ao Azure Resource Explorer, e depois ir para a máquina virtual ou serviço de nuvem onde está a extensão Azure Diagnostics (IaaSDiagnostics / PaaDiagnostics).The easiest way to check your extension configuration is to go to Azure Resource Explorer, and then go to the virtual machine or cloud service where the Azure Diagnostics extension (IaaSDiagnostics / PaaDiagnostics) is.

Alternativamente, o ambiente de trabalho remoto na máquina e veja o ficheiro de configuração de diagnóstico Azure que é descrito na secção de caminhos de artefactos de Log.Alternatively, remote desktop into the machine and look at the Azure Diagnostics Configuration file that's described in the Log artifacts path section.

Em qualquer dos casos, procure por Microsoft.Azure.Diagnostics e, em seguida, para o campo xmlCfg ou WadCfg.In either case, search for Microsoft.Azure.Diagnostics, and then for the xmlCfg or WadCfg field.

Se estiver a pesquisar numa máquina virtual e o campo WadCfg estiver presente, significa que o config está no formato JSON.If you're searching on a virtual machine and the WadCfg field is present, it means the config is in JSON format. Se o campo xmlCfg estiver presente, significa que o config está em XML e está codificado com base64.If the xmlCfg field is present, it means the config is in XML and is base64-encoded. É preciso descodificá-lo para ver o XML que foi carregado por Diagnósticos.You need to decode it to see the XML that was loaded by Diagnostics.

Para a função de serviço de nuvem, se escolher a configuração do disco, os dados estão codificados com base64, pelo que é necessário descodificá-lo para ver o XML que foi carregado por Diagnósticos.For the cloud service role, if you pick the configuration from disk, the data is base64-encoded, so you need to decode it to see the XML that was loaded by Diagnostics.

Códigos de saída plugin Azure DiagnosticsAzure Diagnostics plugin exit codes

O plugin devolve os seguintes códigos de saída:The plugin returns the following exit codes:

Código de saídaExit code DescriçãoDescription
00 Com êxito.Success.
-1-1 Erro genérico.Generic error.
-2-2 Incapaz de carregar o ficheiro RCF.Unable to load the rcf file.

Este erro interno só deverá ocorrer se o lançador de plugin do agente convidado for invocado manualmente incorretamente no VM.This internal error should only happen if the guest agent plugin launcher is manually invoked incorrectly on the VM.

-3-3 Não é possível carregar o ficheiro de configuração de Diagnóstico.Cannot load the Diagnostics configuration file.

Solução: Causada por um ficheiro de configuração que não passa na validação do esquema.Solution: Caused by a configuration file not passing schema validation. A solução é fornecer um ficheiro de configuração que cumpra o esquema.The solution is to provide a configuration file that complies with the schema.

-4-4 Outro caso do agente de monitorização Diagnostics já está a utilizar o diretório de recursos local.Another instance of the monitoring agent Diagnostics is already using the local resource directory.

Solução: Especificar um valor diferente para o LocalResourceDirectory.Solution: Specify a different value for LocalResourceDirectory.

-6-6 O lançador de plugin do agente convidado tentou lançar Diagnósticos com uma linha de comando inválida.The guest agent plugin launcher attempted to launch Diagnostics with an invalid command line.

Este erro interno só deverá ocorrer se o lançador de plugin do agente convidado for invocado manualmente incorretamente no VM.This internal error should only happen if the guest agent plugin launcher is manually invoked incorrectly on the VM.

-10-10 O plugin de Diagnóstico sai com uma exceção não manipulada.The Diagnostics plugin exited with an unhandled exception.
-11-11 O agente convidado não foi capaz de criar o processo responsável pelo lançamento e monitorização do agente de monitorização.The guest agent was unable to create the process responsible for launching and monitoring the monitoring agent.

Solução: Verifique se existem recursos suficientes do sistema para lançar novos processos.Solution: Verify that sufficient system resources are available to launch new processes.

-101-101 Argumentos inválidos ao chamar o plugin de Diagnóstico.Invalid arguments when calling the Diagnostics plugin.

Este erro interno só deverá ocorrer se o lançador de plugin do agente convidado for invocado manualmente incorretamente no VM.This internal error should only happen if the guest agent plugin launcher is manually invoked incorrectly on the VM.

-102-102 O processo plugin é incapaz de se inicializar.The plugin process is unable to initialize itself.

Solução: Verifique se existem recursos suficientes do sistema para lançar novos processos.Solution: Verify that sufficient system resources are available to launch new processes.

-103-103 O processo plugin é incapaz de se inicializar.The plugin process is unable to initialize itself. Especificamente, é incapaz de criar o objeto do madeireiro.Specifically, it is unable to create the logger object.

Solução: Verifique se existem recursos suficientes do sistema para lançar novos processos.Solution: Verify that sufficient system resources are available to launch new processes.

-104-104 Incapaz de carregar o ficheiro RCF fornecido pelo agente convidado.Unable to load the rcf file provided by the guest agent.

Este erro interno só deverá ocorrer se o lançador de plugin do agente convidado for invocado manualmente incorretamente no VM.This internal error should only happen if the guest agent plugin launcher is manually invoked incorrectly on the VM.

-105-105 O plugin diagnostics não pode abrir o ficheiro de configuração de Diagnóstico.The Diagnostics plugin cannot open the Diagnostics configuration file.

Este erro interno só deve ocorrer se o plugin de Diagnóstico for invocado manualmente incorretamente no VM.This internal error should only happen if the Diagnostics plugin is manually invoked incorrectly on the VM.

-106-106 Não é possível ler o ficheiro de configuração de Diagnóstico.Cannot read the Diagnostics configuration file.

Causado por um ficheiro de configuração que não passa na validação do esquema.Caused by a configuration file not passing schema validation.

Solução: Forneça um ficheiro de configuração que cumpra o esquema.Solution: Provide a configuration file that complies with the schema. Para obter mais informações, consulte como verificar a configuração da extensão de diagnóstico.For more information, see How to check Diagnostics Extension Configuration.

-107-107 O bilhete de recurso para o agente de monitorização é inválido.The resource directory pass to the monitoring agent is invalid.

Este erro interno só deve ocorrer se o agente de monitorização for invocado manualmente incorretamente no VM.This internal error should only happen if the monitoring agent is manually invoked incorrectly on the VM.

-108-108 Não é possível converter o ficheiro de configuração de Diagnóstico no ficheiro de configuração do agente de monitorização.Unable to convert the Diagnostics configuration file into the monitoring agent configuration file.

Este erro interno só deverá ocorrer se o plugin de Diagnóstico for invocado manualmente com um ficheiro de configuração inválido.This internal error should only happen if the Diagnostics plugin is manually invoked with an invalid configuration file.

-110-110 Erro de configuração de Diagnóstico Geral.General Diagnostics configuration error.

Este erro interno só deverá ocorrer se o plugin de Diagnóstico for invocado manualmente com um ficheiro de configuração inválido.This internal error should only happen if the Diagnostics plugin is manually invoked with an invalid configuration file.

-111-111 Incapaz de ligar o agente de monitorização.Unable to start the monitoring agent.

Solução: Verifique se existem recursos suficientes do sistema.Solution: Verify that sufficient system resources are available.

-112-112 Erro geralGeneral error

Extração de registo localLocal log extraction

O agente de monitorização recolhe registos e artefactos como .tsf ficheiros.The monitoring agent collects logs and artifacts as .tsf files. O .tsf ficheiro não é legível, mas pode convertê-lo em uma .csv seguinte:The .tsf file is not readable but you can convert it into a .csv as follows:

<Azure diagnostics extension package>\Monitor\x64\table2csv.exe <relevantLogFile>.tsf

Um novo ficheiro chamado <relevantLogFile>.csv é criado no mesmo caminho que o ficheiro .tsf correspondente.A new file called <relevantLogFile>.csv is created in the same path as the corresponding .tsf file.

Nota

Basta executar este utilitário com o ficheiro principal .tsf (por exemplo, PerformanceCountersTable.tsf).You only need to run this utility against the main .tsf file (for example, PerformanceCountersTable.tsf). Os ficheiros que acompanham (por exemplo, PerformanceCountersTables_ * * 001.tsf, PerformanceCountersTables_ * * 002.tsf, e assim por diante) são processados automaticamente.The accompanying files (for example, PerformanceCountersTables_**001.tsf, PerformanceCountersTables_**002.tsf, and so on) are automatically processed.

Mais sobre registos de vestígios em faltaMore about missing trace logs

Nota

As seguintes informações aplicam-se principalmente aos Serviços de Nuvem Azure, a menos que tenha configurado o DiagnosticsMonitorTraceListener numa aplicação que está a ser executada no seu IaaS VM.The following information applies mostly to Azure Cloud Services unless you have configured the DiagnosticsMonitorTraceListener on an application that's running on your IaaS VM.

  • Certifique-se de que o DiagnosticMonitorTraceListener está configurado no web.config ou app.config. Isto é configurado por padrão em projetos de serviço em nuvem.Make sure the DiagnosticMonitorTraceListener is configured in the web.config or app.config. This is configured by default in cloud service projects. No entanto, alguns clientes comentam-no, o que faz com que as declarações de traços não sejam recolhidas através de diagnósticos.However, some customers comment it out, which causes the trace statements to not be collected by diagnostics.

  • Se os registos não estiverem a ser escritos a partir do método OnStart ou Run, certifique-se de que o DiagnosticMonitorTraceListener está na app.config. Por predefinição está na web.config, mas isso só se aplica ao código que funciona dentro de w3wp.exe.If logs are not getting written from the OnStart or Run method, make sure the DiagnosticMonitorTraceListener is in the app.config. By default it is in the web.config, but that only applies to code running within w3wp.exe. Por isso, precisas dele em app.config para capturar vestígios que estão a correr em WaIISHost.exe.So you need it in app.config to capture traces that are running in WaIISHost.exe.

  • Certifique-se de que está a utilizar Diagnósticos.TraceXXX em vez de Diagnostics.Debug.WriteXXX.Make sure you are using Diagnostics.Trace.TraceXXX instead of Diagnostics.Debug.WriteXXX. As declarações de Debug são removidas de uma construção de libertação.The Debug statements are removed from a release build.

  • Certifique-se de que o código compilado tem efetivamente as linhas Diagnostics.Trace (utilize refletor, ildasm ou ILSpy para verificar).Make sure the compiled code actually has the Diagnostics.Trace lines (use Reflector, ildasm, or ILSpy to verify). Os comandos de rastreio.Os comandos trace são removidos do binário compilado, a menos que utilize o símbolo de compilação condicional TRACE.Diagnostics.Trace commands are removed from the compiled binary unless you use the TRACE conditional compilation symbol. Este é um problema comum que ocorre quando se está a usar a msbuild para construir um projeto.This is a common problem that occurs when you're using msbuild to build a project.

Questões e mitigações conhecidasKnown issues and mitigations

Aqui está uma lista de questões conhecidas com mitigações conhecidas:Here is a list of known issues with known mitigations:

1. .NET 4.5 dependência1. .NET 4.5 dependency

A extensão de diagnóstico do Windows Azure tem uma dependência de tempo de funcionamento na estrutura .NET 4.5 ou posterior.Windows Azure Diagnostics Extension has a runtime dependency on .NET 4.5 framework or later. No momento da escrita, todas as máquinas que estão a ser adusídas para os Serviços Azure Cloud, bem como todas as imagens oficiais baseadas em máquinas virtuais Azure, têm .NET 4.5 ou posteriormente instaladas.At the time of writing, all machines that are provisioned for Azure Cloud Services, as well as all official images that are based on Azure virtual machines, have .NET 4.5 or later installed.

Ainda é possível encontrar uma situação em que tente executar a Extensão de Diagnóstico do Windows Azure numa máquina que não tenha .NET 4.5 ou posterior.It is still possible encounter a situation where you try to run Windows Azure Diagnostics Extension on a machine that doesn't have .NET 4.5 or later. Isto acontece quando cria a sua máquina a partir de uma imagem ou instantâneo antigo, ou quando traz o seu próprio disco personalizado.This happens when you create your machine from an old image or snapshot, or when you bring your own custom disk.

Isto geralmente manifesta-se como um código de saída 255 quando executa DiagnosticsPluginLauncher.exe.This generally manifests as an exit code 255 when running DiagnosticsPluginLauncher.exe. A falha ocorre devido à seguinte exceção não manipulada:Failure happens due to the following unhandled exception:

System.IO.FileLoadException: Could not load file or assembly 'System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies

Mitigação: Instale .NET 4.5 ou posteriormente na sua máquina.Mitigation: Install .NET 4.5 or later on your machine.

2. Os dados dos contadores de desempenho estão disponíveis no armazenamento, mas não aparecem no portal2. Performance counters data is available in storage but not showing in the portal

A experiência do portal nas máquinas virtuais mostra determinados contadores de desempenho por padrão.The portal experience in the virtual machines shows certain performance counters by default. Se não vir os contadores de desempenho e souber que os dados estão a ser gerados porque estão disponíveis no armazenamento, verifique o seguinte:If you don't see the performance counters, and you know that the data is getting generated because it is available in storage, check the following:

  • Se os dados no armazenamento têm nomes de contador em inglês.Whether the data in storage has counter names in English. Se os nomes de contadores não estiverem em inglês, o gráfico métrico do portal não poderá reconhecê-lo.If the counter names are not in English, the portal metric chart won't able to recognize it. Mitigação: Mude a língua da máquina para inglês para as contas do sistema.Mitigation: Change the machine's language to English for system accounts. Para isso, selecione > > > Definições de Cópia Administrativa da Região do Painel de Controlo .To do this, select Control Panel > Region > Administrative > Copy Settings. Em seguida, desmarcar as contas do ecrã de boas-vindas e do sistema para que o idioma personalizado não seja aplicado na conta do sistema.Next, deselect Welcome screen and system accounts so that the custom language is not applied to the system account.

  • Se estiver a utilizar wildcards * nos nomes dos contadores de desempenho, o portal não poderá correlacionar o contador configurado e recolhido quando os contadores de desempenho forem enviados para a pia do Azure Storage.If you are using wildcards (*) in your performance counter names, the portal won't able to correlate the configured and collected counter when the performance counters are sent to the Azure Storage sink. Mitigação: Para se certificar de que pode utilizar wildcards e fazer com que o portal expanda o ( * ), encaminhe os seus contadores de desempenho para o lavatório do Azure Monitor.Mitigation: To make sure you can use wildcards and have the portal expand the (*), route your performance counters to the Azure Monitor sink.