Introdução ao Monitoramento do Serviço de Nuvem (clássico)

Importante

Os Serviços de Nuvem (clássicos) agora foram preteridos para novos clientes e serão desativados em 31 de agosto de 2024 para todos os clientes. 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) .

Você pode monitorar as principais métricas de desempenho de qualquer serviço de nuvem. Toda função de serviço de nuvem coleta o mínimo de dados: uso da CPU, uso da rede e utilização do disco. Se o serviço de nuvem tiver a extensão Microsoft.Azure.Diagnostics aplicada a uma função, essa função poderá coletar outros pontos de dados. Este artigo fornece uma introdução aos Diagnósticos do Azure para Serviços de Nuvem.

Com o monitoramento básico, os dados do contador de desempenho das instâncias de função passam por amostragem e são coletados em intervalos de três minutos. Esses dados de monitoramentos básico não são armazenados em sua conta de armazenamento, e não há custo adicional associado a eles.

Com o monitoramento avançado, as métricas adicionais passam por amostragem e são coletadas em intervalos de cinco minutos, uma hora e 12 horas. Os dados agregados são armazenados em uma conta de armazenamento, em tabelas, e são excluídos após 10 dias. A conta de armazenamento usada é configurada pela função; use contas de armazenamento diferentes para funções diferentes. Isso é configurado com uma cadeia de conexão nos arquivos .csdef e .cscfg.

Monitoramento básico

Conforme afirmado na introdução, um serviço de nuvem coleta automaticamente os dados de monitoramentos básico da máquina virtual do host. Esses dados incluem a porcentagem da CPU, entrada/saída de rede e leitura/gravação no disco. Os dados de monitoramento coletados são exibidos automaticamente nas páginas de visão geral e de métricas do serviço de nuvem, no Portal do Azure.

O monitoramento básico não exige uma conta de armazenamento.

blocos de monitoramento básico de serviço de nuvem

Monitoramento avançado

O monitoramento avançado envolve o uso da extensão Diagnóstico do Azure (e, opcionalmente, o SDK do Application Insights) na função que você deseja monitorar. A extensão de diagnóstico usa um arquivo de configuração (por função) chamado diagnostics.wadcfgx para configurar as métricas de diagnóstico monitoradas. A extensão Diagnóstico do Azure coleta e armazena dados em uma conta de Armazenamento do Azure. Essas configurações são definidas nos arquivos .wadcfgx, .csdef e .cscfg. Isso significa que há um custo extra associado ao monitoramento avançado.

À medida que cada função é criada, o Visual Studio adiciona a extensão de Diagnóstico do Azure a ela. Essa extensão de diagnóstico pode coletar os seguintes tipos de informações:

  • Contadores de desempenho personalizados
  • Logs de aplicativo
  • Logs de eventos do Windows
  • Fonte de evento do .NET
  • Logs IIS
  • Manifesto com base no ETW
  • Despejos de memória
  • Logs de erro do cliente

Importante

Embora todos esses dados sejam agregados na conta de armazenamento, o portal não fornece um modo nativo para colocar os dados em gráfico. É altamente recomendável integrar outro serviço, como o Application Insights, ao seu aplicativo.

Extensão de diagnóstico da configuração

Primeiro, se você não tiver uma conta de armazenamento clássica, crie uma. Crie a conta de armazenamento com o Modelo de implantação clássico especificado.

Em seguida, navegue até o recurso Conta de armazenamento (clássico). Selecione Configurações>Chaves de Acesso e copie o valor de Cadeia de conexão primária. Você precisa desse valor para o serviço de nuvem.

Você precisa alterar dois arquivos de configuração para habilitar o diagnóstico avançado, ServiceDefinition.csdef e ServiceConfiguration.cscfg.

ServiceDefinition.csdef

No arquivo ServiceDefinition.csdef, adicione uma nova configuração chamada Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString para cada função que usa diagnóstico avançado. O Visual Studio adiciona esse valor ao arquivo quando você cria um novo projeto. Caso não esteja presente, adicione-o agora.

<ServiceDefinition name="AnsurCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
  <WorkerRole name="WorkerRoleWithSBQueue1" vmsize="Small">
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />

Isso define uma nova configuração que deve ser adicionada a cada arquivo ServiceConfiguration.cscfg.

Provavelmente, você tem dois arquivos .cscfg, um chamado ServiceConfiguration.cloud.cscfg para a implantação no Azure e outro chamado ServiceConfiguration.local.cscfg, usado para implantações locais no ambiente emulado. Abra e altere cada arquivo .cscfg. Adicione uma configuração chamada Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString. Defina o valor como a Cadeia de conexão primária da conta de armazenamento clássica. Se deseja usar o armazenamento local no computador de desenvolvimento, use UseDevelopmentStorage=true.

<ServiceConfiguration serviceName="AnsurCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2015-04.2.6">
  <Role name="WorkerRoleWithSBQueue1">
    <Instances count="1" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=KWwkdfmskOIS240jnBOeeXVGHT9QgKS4kIQ3wWVKzOYkfjdsjfkjdsaf+sddfwwfw+sdffsdafda/w==" />
      
      <!-- or use the local development machine for storage
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
      -->

Usar o Application insights

Ao publicar o Serviço de Nuvem do Visual Studio, você recebe a opção de enviar os dados de diagnóstico ao Application Insights. Você pode criar o recurso do Azure no Application Insights a qualquer momento ou enviar os dados para um recurso existente do Azure. Seu serviço de nuvem pode ser monitorado pelo Application Insights com relação à disponibilidade, ao desempenho, falhas e uso. É possível adicionar gráficos personalizados ao Application Insights, para que você veja os dados mais importantes. Os dados de instância da função podem ser coletados usando o SDK do Application Insights em seu projeto de serviço de nuvem. Para saber mais sobre como integrar o Application Insights, consulte Application Insights com Serviços de Nuvem.

Perceba que embora você possa usar o Application Insights para exibir os contadores de desempenho (e as outras configurações) especificados por meio da extensão de Diagnóstico do Windows Azure, você só terá uma experiência mais rica integrando o SDK do Application Insights às suas funções de trabalho e da Web.

Próximas etapas