Share via


Monitorizar as execuções nas Funções do Azure

Funções do Azure oferece integração incorporada com o Aplicação Azure Insights para monitorizar execuções de funções. Este artigo fornece uma descrição geral das capacidades de monitorização fornecidas pelo Azure para monitorização Funções do Azure.

O Application Insights recolhe dados de registo, desempenho e erro. Ao detetar automaticamente anomalias de desempenho e com ferramentas de análise avançadas, pode diagnosticar problemas mais facilmente e compreender melhor como as suas funções são utilizadas. Estas ferramentas foram concebidas para o ajudar a melhorar continuamente o desempenho e a utilização das suas funções. Pode até utilizar o Application Insights durante o desenvolvimento do projeto da aplicação de funções local. Para obter mais informações, consulte O que é o Application Insights?.

À medida que a instrumentação do Application Insights é incorporada no Funções do Azure, precisa de uma chave de instrumentação válida para ligar a sua aplicação de funções a um recurso do Application Insights. A chave de instrumentação é adicionada às definições da aplicação à medida que cria o recurso da aplicação de funções no Azure. Se a sua aplicação de funções ainda não tiver esta chave, pode defini-la manualmente.

Também pode monitorizar a própria aplicação de funções com o Azure Monitor. Para saber mais, veja Monitorizar Funções do Azure com o Azure Monitor.

Preços e limites do Application Insights

Pode experimentar a integração do Application Insights com Funções do Azure gratuitamente com um limite diário para a quantidade de dados processados gratuitamente.

Se ativar o Applications Insights durante o desenvolvimento, poderá atingir este limite durante os testes. O Azure fornece notificações de portal e de e-mail quando se aproxima do limite diário. Se perder esses alertas e atingir o limite, os novos registos não serão apresentados nas consultas do Application Insights. Tenha em atenção o limite para evitar o tempo de resolução de problemas desnecessário. Para obter mais informações, veja Faturação do Application Insights.

Importante

O Application Insights tem uma funcionalidade de amostragem que pode protegê-lo de produzir demasiados dados telemétricos em execuções concluídas em momentos de pico de carga. A amostragem está ativada por predefinição. Se parecer que faltam dados, poderá ter de ajustar as definições de amostragem para se ajustarem ao seu cenário de monitorização específico. Para saber mais, veja Configurar a amostragem.

A lista completa das funcionalidades do Application Insights disponíveis para a sua aplicação de funções é detalhada no Application Insights para Funções do Azure funcionalidades suportadas.

Integração do Application Insights

Normalmente, cria uma instância do Application Insights quando cria a sua aplicação de funções. Neste caso, a chave de instrumentação necessária para a integração já está definida como uma definição de aplicação chamada APPINSIGHTS_INSTRUMENTATIONKEY. Se, por algum motivo, a sua aplicação de funções não tiver a chave de instrumentação definida, terá de ativar a integração do Application Insights.

Importante

As clouds soberanas, como Azure Government, requerem a utilização da cadeia de ligação do Application Insights (APPLICATIONINSIGHTS_CONNECTION_STRING) em vez da chave de instrumentação. Para saber mais, veja a referência APPLICATIONINSIGHTS_CONNECTION_STRING.

A tabela seguinte detalha as funcionalidades suportadas do Application Insights disponíveis para monitorizar as suas aplicações de funções:

Funções do Azure versão do runtime 1.x 2.x+
Coleção automática de
• Pedidos
• Exceções
• Contadores de Desempenho
• Dependências
   — HTTP
   — Service Bus
   — Hubs de Eventos
   — SQL*
Funcionalidades suportadas
• QuickPulse/LiveMetrics Yes Yes
   — Canal de Controlo Seguro Yes
• Amostragem Yes Yes
• Heartbeats Yes
Correlação
• Service Bus Yes
• Hubs de Eventos Yes
Configurável
Totalmente configurável Yes

* Para ativar a coleção de texto da cadeia de consulta SQL, veja Ativar a coleção de consultas SQL.

Recolher dados telemétricos

Com a integração do Application Insights ativada, os dados telemétricos são enviados para a instância do Application Insights ligada. Estes dados incluem registos gerados pelo anfitrião funções, rastreios escritos a partir do código de funções e dados de desempenho.

Nota

Além dos dados das suas funções e do anfitrião de Funções, também pode recolher dados do controlador de dimensionamento de Funções.

Níveis de registo e categorias

Quando escreve rastreios a partir do código da aplicação, deve atribuir um nível de registo aos rastreios. Os níveis de registo fornecem uma forma de limitar a quantidade de dados que são recolhidos dos seus rastreios.

É atribuído um nível de registo a todos os registos. O valor é um número inteiro que indica importância relativa:

Nível de Registo Código Descrição
Rastreio 0 Registos que contêm as mensagens mais detalhadas. Estas mensagens podem conter dados confidenciais da aplicação. Estas mensagens estão desativadas por predefinição e nunca devem ser ativadas num ambiente de produção.
Depurar 1 Registos que são utilizados para investigação interativa durante o desenvolvimento. Estes registos devem conter principalmente informações úteis para depuração e não têm valor a longo prazo.
Informações 2 Registos que controlam o fluxo geral da aplicação. Estes registos devem ter um valor a longo prazo.
Aviso 3 Os registos que realçam um evento anormal ou inesperado no fluxo da aplicação, mas não fazem com que a execução da aplicação pare.
Erro 4 Registos que realçam quando o fluxo atual de execução é parado devido a uma falha. Estes erros devem indicar uma falha na atividade atual e não uma falha em toda a aplicação.
Crítico 5 Registos que descrevem uma falha irrecuperável da aplicação ou do sistema ou uma falha catastrófica que requer atenção imediata.
Nenhuma 6 Desativa o registo para a categoria especificada.

A configuração do ficheiro host.json determina a quantidade de registo que uma aplicação de funções envia para o Application Insights.

Para saber mais sobre os níveis de registo, veja Configurar níveis de registo.

Ao atribuir itens registados a uma categoria, tem mais controlo sobre a telemetria gerada a partir de origens específicas na sua aplicação de funções. As categorias facilitam a execução de análises através dos dados recolhidos. Os rastreios escritos a partir do código de função são atribuídos a categorias individuais com base no nome da função. Para saber mais sobre categorias, veja Configurar categorias.

Dados telemétricos personalizados

Em C#, JavaScript e Python, pode utilizar um SDK do Application Insights para escrever dados telemétricos personalizados.

Dependências

A partir da versão 2.x das Funções, o Application Insights recolhe automaticamente dados sobre dependências para enlaces que utilizam determinados SDKs de cliente. Atualmente, o rastreio distribuído e o controlo de dependências do Application Insights não são suportados para aplicações C# em execução num processo de trabalho isolado. O Application Insights recolhe dados sobre as seguintes dependências:

  • Azure Cosmos DB
  • Hubs de Eventos do Azure
  • Azure Service Bus
  • Serviços de Armazenamento do Azure (Blob, Fila e Tabela)

Os pedidos HTTP e as chamadas de base de dados que utilizam SqlClient também são capturados. Para obter a lista completa das dependências suportadas pelo Application Insights, veja automaticamente as dependências controladas.

O Application Insights gera um mapa da aplicação dos dados de dependência recolhidos. Segue-se um exemplo de um mapa de aplicação de uma função de acionador HTTP com um enlace de saída do Armazenamento de filas.

Mapa da aplicação com dependência

As dependências são escritas ao Information nível. Se filtrar em Warning ou acima, não verá os dados de dependência. Além disso, a recolha automática de dependências ocorre num âmbito não utilizador. Para capturar dados de dependência, certifique-se de que o nível está definido como, pelo menos Information , fora do âmbito do utilizador (Function.<YOUR_FUNCTION_NAME>.User) no seu anfitrião.

Além da recolha automática de dados de dependência, também pode utilizar um dos SDKs do Application Insights específicos da linguagem para escrever informações de dependência personalizadas nos registos. Para obter um exemplo de como escrever dependências personalizadas, veja um dos seguintes exemplos específicos de idioma:

Contadores de Desempenho

A recolha automática de Contadores de Desempenho não é suportada ao executar no Linux.

Escrever nos registos

A forma como escreve nos registos e nas APIs que utiliza depende do idioma do projeto da aplicação de funções.
Consulte o guia do programador para o seu idioma para saber mais sobre como escrever registos a partir das suas funções.

Analisar dados

Por predefinição, os dados recolhidos a partir da sua aplicação de funções são armazenados no Application Insights. Na portal do Azure, o Application Insights fornece um vasto conjunto de visualizações dos seus dados telemétricos. Pode explorar registos de erros e consultar métricas e eventos. Para saber mais, incluindo exemplos básicos de como ver e consultar os dados recolhidos, veja Analisar Funções do Azure telemetria no Application Insights.

Registos de Transmissão em Fluxo

Ao desenvolver uma aplicação, muitas vezes quer ver o que está a ser escrito nos registos quase em tempo real ao executar no Azure.

Existem duas formas de ver um fluxo dos dados de registo que estão a ser gerados pelas execuções da função.

  • Transmissão em fluxo de registos incorporada: a plataforma de Serviço de Aplicações permite-lhe ver um fluxo dos seus ficheiros de registo de aplicações. Este fluxo é equivalente à saída vista quando depura as suas funções durante o desenvolvimento local e quando utiliza o separador Testar no portal. Todas as informações baseadas em registos são apresentadas. Para obter mais informações, veja Registos do Stream. Este método de transmissão em fluxo suporta apenas uma única instância e não pode ser utilizado com uma aplicação em execução no Linux num plano de Consumo.

  • Live Metrics Stream: quando a sua aplicação de funções está ligada ao Application Insights, pode ver dados de registo e outras métricas quase em tempo real no portal do Azure com o Live Metrics Stream. Utilize este método ao monitorizar funções em execução em várias instâncias ou no Linux num plano de Consumo. Este método utiliza dados de exemplo.

Os fluxos de registo podem ser visualizados no portal e na maioria dos ambientes de desenvolvimento locais. Para saber como ativar fluxos de registo, veja Ativar registos de execução de transmissão em fluxo no Funções do Azure.

Registos de diagnósticos

O Application Insights permite-lhe exportar dados telemétricos para armazenamento de longo prazo ou outros serviços de análise.

Uma vez que as Funções também se integram com o Azure Monitor, também pode utilizar as definições de diagnóstico para enviar dados telemétricos para vários destinos, incluindo registos do Azure Monitor. Para saber mais, veja Monitorizar Funções do Azure com os Registos do Azure Monitor.

Dimensionar registos do controlador

O controlador de escala Funções do Azure monitoriza as instâncias do anfitrião Funções do Azure no qual a aplicação é executada. Este controlador toma decisões sobre quando adicionar ou remover instâncias com base no desempenho atual. Pode fazer com que o controlador de dimensionamento emita registos para o Application Insights para compreender melhor as decisões que o controlador de dimensionamento está a tomar para a sua aplicação de funções. Também pode armazenar os registos gerados no Armazenamento de blobs para análise por outro serviço.

Para ativar esta funcionalidade, adicione uma definição de aplicação com o nome SCALE_CONTROLLER_LOGGING_ENABLED às definições da aplicação de funções. Para saber como, veja Configurar registos do controlador de dimensionamento.

Métricas do Azure Monitor

Além dos dados telemétricos baseados em registos recolhidos pelo Application Insights, também pode obter dados sobre como a aplicação de funções está a ser executada a partir das Métricas do Azure Monitor. Para saber mais, veja Monitorização com o Azure Monitor.

Comunicar problemas

Para comunicar um problema com a integração do Application Insights nas Funções ou para fazer uma sugestão ou pedido, crie um problema no GitHub.

Passos seguintes

Para obter mais informações, veja os seguintes recursos: