Introdução ao Monitoramento do Serviço de Nuvem (clássico)
Importante
Os Serviços de Nuvem (clássicos) agora se encontram preteridos para todos os clientes a partir de 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 perdidos de forma permanente 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) .
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 mais 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 na sua conta de armazenamento e não têm custo extra.
Com o monitoramento avançado, mais métricas são amostradas e coletadas a intervalos de 5 minutos, 1 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 por função; você pode usar contas de armazenamento diferentes para funções diferentes. Você vai usar uma cadeia de conexão nos arquivos .csdef e .cscfg para a configuração.
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 requer uma conta de armazenamento.
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 dos Serviços de Informações da Internet (IIS)
- Rastreamento de Eventos para Windows (ETW) baseado em Manifesto
- 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, você pode adicioná-lo 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" />
Esse snippet define uma nova configuração que precisa 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 a partir do Visual Studio, você tem a opção de enviar os dados de diagnóstico para o 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. O Application Insights pode monitorar seu serviço de nuvem com relação à disponibilidade, 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.
Embora possa usar o Application Insights para exibir os contadores de desempenho (e as outras configurações) que você especificou por meio da extensão de Diagnósticos do Microsoft Azure, você só obterá uma experiência mais rica integrando o SDK do Application Insights às suas funções de trabalho e da web.