Habilitar o Diagnóstico do Azure nos Serviços de Nuvem do Azure (clássico)
Artigo
Importante
Os Serviços de Nuvem (clássicos) estão obsoletos para todos os clientes desde 1º de setembro de 2024. Todas as implantações em execução existentes serão interrompidas e desligadas pela Microsoft e os dados serão permanentemente perdidos a partir de outubro de 2024. As novas implantações devem usar o novo modelo de implantação baseado no Azure Resource Manager Serviços de Nuvem do Azure (suporte estendido) .
Como habilitar o Diagnostics em uma Função do Trabalho
Este passo a passo descreve como implementar uma função de trabalho do Azure que emite dados de telemetria usando o .NET EventSource Class. O Diagnóstico do Azure é usado para coletar os dados de telemetria e armazená-los em uma conta de armazenamento do Azure. Ao criar um trabalho, o Visual Studio habilita automaticamente o Diagnóstico 1.0 como parte da solução em Kits de Desenvolvimento de Software do Azure (SDKs) para .NET 2.4 e versões anteriores. As instruções a seguir descrevem o processo de criação da função de trabalho, desabilitando o Diagnóstico 1.0 por meio da solução e implantando o Diagnóstico 1.2 ou 1.3 para sua função de trabalho.
Crie um projeto Serviço de Nuvem do Azure no modelo Nuvem destinado ao .NET Framework 4.5. Nomeie o projeto “WadExample” e selecione Ok.
Selecione Trabalho e, em seguida, Ok. O projeto foi criado.
No Gerenciador de Soluções, clique duas vezes no arquivo de propriedades WorkerRole1.
Na guia Configuração, desmarque Habilitar Diagnóstico para desabilitar o Diagnóstico 1.0 (SDK do Azure 2.4 e versões anteriores).
Compile sua solução para verificar que você não tem erros.
Etapa 2: Instrumentalizar seu código
Substitua os conteúdos do WorkerRole.cs pelo código a seguir. A classe SampleEventSourceWriter, herdada da Classe EventSource, implementa quatro métodos de registro em log: SendEnums, MessageMethod, SetOther e HighFreq. O primeiro parâmetro para o método WriteEvent define a ID para o respectivo evento. O método Executar implementa um loop infinito que chama cada um dos métodos de registro implementados na classe SampleEventSourceWriter a cada 10 segundos.
C#
using Microsoft.WindowsAzure.ServiceRuntime;
using System;
using System.Diagnostics;
using System.Diagnostics.Tracing;
using System.Net;
using System.Threading;
namespaceWorkerRole1
{
sealedclassSampleEventSourceWriter : EventSource
{
publicstatic SampleEventSourceWriter Log = new SampleEventSourceWriter();
publicvoidSendEnums(MyColor color, MyFlags flags) { if (IsEnabled()) WriteEvent(1, (int)color, (int)flags); }// Cast enums to int for efficient logging.publicvoidMessageMethod(string Message) { if (IsEnabled()) WriteEvent(2, Message); }
publicvoidSetOther(bool flag, int myInt) { if (IsEnabled()) WriteEvent(3, flag, myInt); }
publicvoidHighFreq(intvalue) { if (IsEnabled()) WriteEvent(4, value); }
}
enum MyColor
{
Red,
Blue,
Green
}
[Flags]
enum MyFlags
{
Flag1 = 1,
Flag2 = 2,
Flag3 = 4
}
publicclassWorkerRole : RoleEntryPoint
{
publicoverridevoidRun()
{
// This is a sample worker implementation. Replace with your logic.
Trace.TraceInformation("WorkerRole1 entry point called");
intvalue = 0;
while (true)
{
Thread.Sleep(10000);
Trace.TraceInformation("Working");
// Emit several events every time we go through the loopfor (int i = 0; i < 6; i++)
{
SampleEventSourceWriter.Log.SendEnums(MyColor.Blue, MyFlags.Flag2 | MyFlags.Flag3);
}
for (int i = 0; i < 3; i++)
{
SampleEventSourceWriter.Log.MessageMethod("This is a message.");
SampleEventSourceWriter.Log.SetOther(true, 123456789);
}
if (value == int.MaxValue) value = 0;
SampleEventSourceWriter.Log.HighFreq(value++);
}
}
publicoverrideboolOnStart()
{
// Set the maximum number of concurrent connections
ServicePointManager.DefaultConnectionLimit = 12;
// For information on handling configuration changes// see the MSDN topic at https://go.microsoft.com/fwlink/?LinkId=166357.returnbase.OnStart();
}
}
}
Etapa 3: Implantar sua Função de Trabalho
Aviso
Quando você habilita o diagnóstico para uma função existente, qualquer extensão que você já tenha definido será desabilitado quando o pacote for implantado. Elas incluem:
Diagnóstico do Microsoft Monitoring Agent
Monitoramento de segurança do Microsoft Azure
Microsoft Antimalware
Agente de monitoramento da Microsoft
Agente Criador de Perfil de Serviço da Microsoft
Extensão de Domínio do Azure
Extensão de Diagnóstico do Azure
Extensão de Área de Trabalho Remota do Azure
Coletor de Logs do Azure
Depois de implantar a função atualizada, você pode redefinir as extensões por meio do portal do Azure ou do PowerShell.
Implante sua função de trabalho para o Azure no Visual Studio selecionando o projeto WadExample no Gerenciador de Soluções, em seguida, Publicar no menu Compilar.
Escolha sua assinatura.
Na caixa de diálogo Configurações de Publicação do Microsoft Azure, selecione Criar Novo... .
Na caixa de diálogo Criar Serviço de Nuvem e Conta de Armazenamento, insira um Nome (por exemplo, "WadExample") e selecione uma região ou grupo de afinidades.
Defina o Ambiente para Preparo.
Modifique qualquer outra Configuração conforme apropriado e selecione Publicar.
Após a conclusão da implantação, verifique no portal do Azure se o serviço de nuvem está em estado de Execução.
Etapa 4: Criar seu arquivo de configuração do Diagnostics e instalar a extensão
Baixe a definição do esquema do arquivo de configuração pública ao executar o seguinte comando PowerShell:
Adicione um arquivo XML ao projeto WorkerRole1 clicando com o botão direito no projeto WorkerRole1 e selecione Adicionar - >Novo Item… - >Itens do Visual C#> - Dados - >Arquivo XML. Dê o nome WadExample.xml para o arquivo.
Associe o WadConfig.xsd com o arquivo de configuração. Certifique-se de que a janela do editor WadExample.xml é uma janela ativa. Pressione F4 para abrir a janela Propriedades. Selecione a propriedade Esquemas na janela Propriedades. Selecione ... na propriedade Esquemas. Selecione o botão Adicionar... e navegue até o local em que você salvou o arquivo .xsd e selecione o arquivo WadConfig.xsd. Selecione OK.
Substitua os conteíudos do arquivo de configuração WadExample.xml com o seguinte XML e salve o arquivo. Este arquivo de configuração define dois contadores de desempenho a serem coletados: um relacionado à utilização da CPU e um ao uso de memória. Após a configuração, defina os quatro eventos correspondentes aos métodos na classe SampleEventSourceWriter.
Etapa 5: instalar o Diagnostics em sua Função de Trabalho
Os cmdlets do PowerShell para gerenciar o diagnóstico em uma função web ou de trabalho são: Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension e Remove-AzureServiceDiagnosticsExtension.
Abra o PowerShell do Azure.
Execute o script para instalar o Diagnostics na sua função de trabalho (substitua o StorageAccountKey com a chave de conta de armazenamento para sua conta de armazenamento wadexample e config_path com o caminho até o arquivo WadExample.xml):
No Gerenciador de Servidores do Visual Studio, navegue até a conta de armazenamento wadexample. Depois de o serviço de nuvem ter sido executado por cerca de cinco (5) minutos, você deverá ver as tabelas WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable e WADSetOtherTable. Clique duas vezes em uma das tabelas para exibir a telemetria coletada.
Esquema de arquivos de configuração
O arquivo de configuração do Diagnóstico define valores que são usados para inicializar as definições de configurações do diagnóstico quando o agente de diagnóstico é iniciado. Veja a referência de esquema mais recente para obter valores válidos e exemplos.
Saiba como capturar a saída de rastreamento de seus aplicativos Web do Azure. Exiba um fluxo de log em tempo real e baixe arquivos de log para análise offline.
Crie soluções de ponta a ponta no Microsoft Azure para criar Funções do Azure, implementar e gerenciar aplicativos Web, desenvolver soluções utilizando o Armazenamento do Microsoft Azure e muito mais.