Introdução ao monitoramento de serviço de nuvem (clássico)

Importante

Os serviços de nuvem do Azure (suporte estendido) são um novo modelo de implantação baseado em Azure Resource Manager para o produto de serviços de nuvem do Azure.Com essa alteração, os serviços de nuvem do Azure em execução no modelo de implantação baseado no Azure Service Manager foram renomeados como serviços de nuvem (clássicos) e todas as novas implantações devem usar os serviços de nuvem (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 uma maneira nativa de gráfico dos dados. É 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 da 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