Analise a Funções do Azure telemetria em Informações de aplicação

Funções do Azure integra-se com Informações de aplicação para melhor monitorizar as suas aplicações de função. A aplicação Informações recolhe dados de telemetria gerados pela sua aplicação de função, incluindo informações que a sua aplicação escreve para registos. A integração Informações aplicação é normalmente ativada quando a sua aplicação de função é criada. Se a sua aplicação de função não tiver o conjunto de teclas de instrumentação, primeiro deve ativar a integração Informações aplicação.

Por predefinição, os dados recolhidos da sua aplicação de função são armazenados em Informações de aplicação. No portal do Azure, a Application Informações fornece um vasto conjunto de visualizações dos seus dados de telemetria. Pode perfurar registos de erros e eventos de consulta e métricas. Este artigo fornece exemplos básicos de como visualizar e consultar os seus dados recolhidos. Para saber mais sobre como explorar os dados da sua aplicação de função no Informações de aplicação, consulte O que é a aplicação Informações?.

Para poder visualizar a Aplicação Informações dados de uma aplicação de função, tem de ter pelo menos permissões de função do Contribuinte na aplicação de função. Também precisa de ter a permissão do Leitor de Monitorização na aplicação Informações exemplo. Tem estas permissões por padrão para qualquer app de função e aplicação Informações caso que cria.

Para saber mais sobre a retenção de dados e custos potenciais de armazenamento, consulte a recolha, retenção e armazenamento de dados em Informações de aplicação.

Visualização da telemetria no separador Monitor

Com a integração Informações ativada, pode ver os dados da telemetria no separador Monitor.

  1. Na página da aplicação de funções, selecione uma função que tenha sido executada pelo menos uma vez após a configuração do Informações de aplicação. Em seguida, selecione Monitor a partir do painel esquerdo. Selecione Refresh periodicamente, até aparecer a lista de invocações de funções.

    Invocations list

    Nota

    Pode levar até cinco minutos para a lista aparecer enquanto o cliente da telemetria em lotes de dados para transmissão para o servidor. O atraso não se aplica ao Live Metrics Stream. Este serviço liga-se ao anfitrião Funções quando carrega a página, para que os registos sejam transmitidos diretamente para a página.

  2. Para ver os registos para uma invocação de determinada função, selecione a ligação da coluna Data (UTC) para essa invocação. A saída de registo para essa invocação aparece numa nova página.

    Invocation details

  3. Escolha Executar na Aplicação Informações para ver a origem da consulta que recupera os dados de registo do Azure Monitor em Azure Log. Se esta for a sua primeira utilização do Azure Log Analytics na sua subscrição, é-lhe pedido que o ative.

  4. Depois de ativar o Log Analytics, é apresentada a seguinte consulta. Pode ver que os resultados da consulta estão limitados aos últimos 30 dias (where timestamp > ago(30d)), e os resultados não mostram mais de 20 linhas (take 20). Em contraste, a lista de detalhes de invocação para a sua função é para os últimos 30 dias sem limite.

    Application Insights Analytics invocation list

Para mais informações, consulte os dados de telemetria da Consulta mais tarde neste artigo.

Ver telemetria em Informações de aplicação

Para abrir a aplicação Informações a partir de uma aplicação de função na portal do Azure:

  1. Navegue pela aplicação de função no portal.

  2. Selecione Informações de aplicação em Definições na página esquerda.

  3. Se esta for a sua primeira vez usando a Aplicação Informações com a sua subscrição, será solicitado para o ativar. Para isso, selecione Ligue a aplicação Informações e, em seguida, selecione Aplicar na página seguinte.

Open Application Insights from the function app Overview page

Para obter informações sobre como utilizar a aplicação Informações, consulte a documentação Informações de aplicação. Esta secção mostra alguns exemplos de como visualizar dados em Informações de aplicação. Se já está familiarizado com a aplicação Informações, pode ir diretamente às secções sobre como configurar e personalizar os dados de telemetria.

Application Insights Overview tab

As seguintes áreas de aplicação Informações podem ser úteis na avaliação do comportamento, desempenho e erros nas suas funções:

Investigar Description
Falhas Crie gráficos e alertas com base em falhas de função e exceções ao servidor. O Nome da Operação é o nome da função. Falhas nas dependências não são mostradas a menos que implemente telemetria personalizada para dependências.
Desempenho Analise os problemas de desempenho visualizando a utilização de recursos e a produção por instâncias de função Cloud. Estes dados de desempenho podem ser úteis para depurar cenários onde as funções estão a atrapalhar os seus recursos subjacentes.
Métricas Crie gráficos e alertas baseados em métricas. As métricas incluem o número de invocações de funções, tempo de execução e taxas de sucesso.
Métricas vivas Veja os dados das métricas como são criados em tempo real.

Dados de telemetria de consulta

Aplicação Informações Analytics dá-lhe acesso a todos os dados de telemetria sob a forma de tabelas numa base de dados. A Analytics fornece uma linguagem de consulta para extrair, manipular e visualizar os dados.

Escolha Registos para explorar ou consultar eventos registados.

Analytics example

Aqui está um exemplo de consulta que mostra a distribuição de pedidos por trabalhador nos últimos 30 minutos.

requests
| where timestamp > ago(30m) 
| summarize count() by cloud_RoleInstance, bin(timestamp, 1m)
| render timechart

As tabelas disponíveis são mostradas no separador Schema à esquerda. Pode encontrar dados gerados por invocações de função nas seguintes tabelas:

Tabela Descrição
vestígios Registos criados pelo tempo de execução, controlador de escala e vestígios do seu código de função.
pedidos Um pedido para cada invocação de função.
exceções Quaisquer exceções lançadas pelo tempo de execução.
costumesMetricos A contagem de invocações bem sucedidas e falhadas, taxa de sucesso e duração.
costumesEvents Eventos rastreados pelo tempo de execução, por exemplo: PEDIDOS HTTP que desencadeiam uma função.
performanceCounters Informações sobre o desempenho dos servidores em que as funções estão a funcionar.

As outras tabelas são para testes de disponibilidade, e telemetria de cliente e navegador. Pode implementar telemetria personalizada para adicionar dados a eles.

Dentro de cada tabela, alguns dos dados específicos das Funções estão num customDimensions campo. Por exemplo, a seguinte consulta recupera todos os vestígios que têm nível Errorde registo .

traces 
| where customDimensions.LogLevel == "Error"

O tempo de execução fornece os customDimensions.LogLevel campos e campos customDimensions.Category . Pode fornecer campos adicionais em registos que escreve no seu código de função. Para um exemplo em C#, consulte o registo estruturado no guia de desenvolvimento da biblioteca da classe .NET.

Registos de controlador de escala de consulta

Esta funcionalidade está em pré-visualização.

Depois de permitir a colocação de registo de comandos de escala e a integração de Informações de aplicação, pode utilizar a pesquisa de registo de Informações aplicação para consultar os registos do controlador de escala emitido. Os registos do controlador de escala são guardados na traces coleção na categoria ScaleControllerLogs .

A seguinte consulta pode ser usada para procurar todos os registos do controlador de escala para a aplicação de função atual dentro do período de tempo especificado:

traces 
| extend CustomDimensions = todynamic(tostring(customDimensions))
| where CustomDimensions.Category == "ScaleControllerLogs"

A consulta que se segue expande-se na consulta anterior para mostrar como obter apenas registos indicando uma alteração na escala:

traces 
| extend CustomDimensions = todynamic(tostring(customDimensions))
| where CustomDimensions.Category == "ScaleControllerLogs"
| where message == "Instance count changed"
| extend Reason = CustomDimensions.Reason
| extend PreviousInstanceCount = CustomDimensions.PreviousInstanceCount
| extend NewInstanceCount = CustomDimensions.CurrentInstanceCount

Métricas específicas do plano de consumo

Ao executar um plano de consumo, o custo de execução de uma única função é medido em GB-segundos. O custo de execução é calculado combinando o seu uso de memória com o seu tempo de execução. Para saber mais, consulte a Estimativa de Custos do Plano de Consumo.

As seguintes consultas de telemetria são específicas para métricas que impactam o custo de funcionamento das funções no plano de Consumo.

Determinar o uso da memória

Em Monitorização, selecione Logs (Analytics), em seguida, copie a seguinte consulta de telemetria e cole-a na janela de consulta e selecione Executar. Esta consulta devolve o uso total da memória em cada tempo amostrado.

performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value

Os resultados parecem ser o seguinte exemplo:

timetamp [UTC] name valor
9/12/2019, 1:05:14.947 AM Bytes Privados 209,932,288
9/12/2019, 1:06:14.994 Bytes Privados 212,189,184
9/12/2019, 1:06:30.010 AM Bytes Privados 231,714,816
9/12/2019, 1:07:15.040 AM Bytes Privados 210,591,744
9/12/2019, 1:12:16.285 AM Bytes Privados 216,285,184
9/12/2019, 1:12:31.376 AM Bytes Privados 235,806,720

Determinar a duração

O Azure Monitor rastreia métricas ao nível dos recursos, que para funções é a aplicação de função. A integração Informações aplicação emite métricas por função. Aqui está um exemplo de consulta de análise para obter a duração média de uma função:

customMetrics
| where name contains "Duration"
| extend averageDuration = valueSum / valueCount
| summarize averageDurationMilliseconds=avg(averageDuration) by name
name médiaDurationMilissegundos
QueueTrigger AvgDurationMs 16.087
FilaTrigger MaxDurationMs 90.249
FilaTrigger MinDurationMs 8.522

Passos seguintes

Saiba mais sobre monitorização Funções do Azure: