Métricas baseadas em registos do Application Insights
As métricas baseadas em log do Application Insights permitem analisar a integridade de seus aplicativos monitorados, criar painéis poderosos e configurar alertas. Existem dois tipos de métricas:
- As métricas baseadas em log nos bastidores são traduzidas em consultas Kusto de eventos armazenados.
- As métricas padrão são armazenadas como séries temporais pré-agregadas.
Como as métricas padrão são pré-agregadas durante a coleta, elas têm melhor desempenho no momento da consulta. Isso os torna uma escolha melhor para painéis e alertas em tempo real. As métricas baseadas em log têm mais dimensões, o que as torna a opção superior para análise de dados e diagnósticos ad hoc. Use o seletor de namespace para alternar entre métricas padrão e baseadas em log no explorador de métricas.
Interpretar e usar consultas deste artigo
Este artigo lista métricas com agregações e dimensões suportadas. Os detalhes sobre métricas baseadas em log incluem as instruções de consulta Kusto subjacentes. Por conveniência, cada consulta usa padrões para granularidade de tempo, tipo de gráfico e, às vezes, dimensão de divisão, o que simplifica o uso da consulta no Log Analytics sem qualquer necessidade de modificação.
Quando você plota a mesma métrica no explorador de métricas, não há padrões - a consulta é ajustada dinamicamente com base nas configurações do gráfico:
O intervalo de tempo selecionado é traduzido em uma cláusula adicional onde carimbo de data/hora... para selecionar apenas os eventos do intervalo de tempo selecionado. Por exemplo, um gráfico mostrando dados para as últimas 24 horas, a consulta inclui | onde timestamp > ago(24 h).
A granularidade de tempo selecionada é colocada no resumo final ... por cláusula bin(timestamp, [time grain]).
Todas as dimensões de Filtro selecionadas são convertidas em cláusulas where adicionais.
A dimensão do gráfico dividido selecionada é convertida em uma propriedade de resumo extra. Por exemplo, se você dividir o gráfico por local e plotar usando uma granularidade de tempo de 5 minutos, a cláusula de resumo será resumida ... por bin(timestamp, 5 m), localização.
Nota
Se você é novo na linguagem de consulta Kusto, comece copiando e colando instruções Kusto no painel de consulta do Log Analytics sem fazer modificações. Clique em Executar para ver o gráfico básico. À medida que você começa a entender a sintaxe da linguagem de consulta, você pode começar a fazer pequenas modificações e ver o impacto da sua alteração. Explorar seus próprios dados é uma ótima maneira de começar a perceber todo o poder do Log Analytics e do Azure Monitor.
Métricas de disponibilidade
As métricas na categoria Disponibilidade permitem que você veja a integridade do seu aplicativo Web conforme observado em pontos ao redor do mundo. Configure os testes de disponibilidade para começar a usar quaisquer métricas dessa categoria.
Disponibilidade (disponibilidadeResultados/percentagemidadede disponibilidade)
A métrica Disponibilidade mostra a porcentagem de execuções de teste da Web que não detetaram nenhum problema. O menor valor possível é 0, o que indica que todas as execuções de teste da Web falharam. O valor de 100 significa que todas as execuções de teste da Web passaram pelos critérios de validação.
Unidade de medida | Agregações suportadas | Dimensões suportadas |
---|---|---|
Percentagem | Média | Local de execução, Nome do teste |
availabilityResults
| summarize sum(todouble(success == 1) * 100) / count() by bin(timestamp, 5m), location
| render timechart
Duração do teste de disponibilidade (disponibilidadeResultados/duração)
A métrica Duração do teste de disponibilidade mostra quanto tempo levou para a execução do teste da Web. Para os testes da Web de várias etapas, a métrica reflete o tempo total de execução de todas as etapas.
Unidade de medida | Agregações suportadas | Dimensões suportadas |
---|---|---|
Milissegundos | Média, Mín, Máximo | Local de execução, Nome do teste, Resultado do teste |
availabilityResults
| where notempty(duration)
| extend availabilityResult_duration = iif(itemType == 'availabilityResult', duration, todouble(''))
| summarize sum(availabilityResult_duration)/sum(itemCount) by bin(timestamp, 5m), location
| render timechart
Testes de disponibilidade (availabilityResults/count)
A métrica Testes de disponibilidade reflete a contagem dos testes da Web executados pelo Azure Monitor.
Unidade de medida | Agregações suportadas | Dimensões suportadas |
---|---|---|
de palavras | de palavras | Local de execução, Nome do teste, Resultado do teste |
availabilityResults
| summarize sum(itemCount) by bin(timestamp, 5m)
| render timechart
Métricas do navegador
As métricas do navegador são coletadas pelo SDK JavaScript do Application Insights a partir de navegadores reais do usuário final. Eles fornecem ótimas informações sobre a experiência dos usuários com seu aplicativo Web. As métricas do navegador normalmente não são amostradas, o que significa que elas fornecem maior precisão dos números de uso em comparação com as métricas do lado do servidor, que podem ser distorcidas pela amostragem.
Nota
Para coletar métricas do navegador, seu aplicativo deve ser instrumentado com o SDK JavaScript do Application Insights.
Tempo de carregamento da página do navegador (browserTimings/totalDuration)
Tempo desde a solicitação do usuário até o DOM, folhas de estilo, scripts e imagens são carregados.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas |
---|---|---|
Milissegundos | Média, Mín, Máximo | None |
browserTimings
| where notempty(totalDuration)
| extend _sum = totalDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart
Tempo de processamento do cliente (browserTiming/processingDuration)
Tempo entre o recebimento do último byte de um documento até que o DOM seja carregado. As solicitações assíncronas ainda podem estar sendo processadas.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas |
---|---|---|
Milissegundos | Média, Mín, Máximo | None |
browserTimings
| where notempty(processingDuration)
| extend _sum = processingDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum)/sum(_count) by bin(timestamp, 5m)
| render timechart
Tempo de conexão de rede de carregamento de página (browserTimings/networkDuration)
Tempo entre a solicitação do usuário e a conexão de rede. Inclui pesquisa de DNS e conexão de transporte.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas |
---|---|---|
Milissegundos | Média, Mín, Máximo | None |
browserTimings
| where notempty(networkDuration)
| extend _sum = networkDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart
Tempo de resposta de recebimento (browserTimings/receiveDuration)
Tempo entre o primeiro e o último bytes, ou até a desconexão.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas |
---|---|---|
Milissegundos | Média, Mín, Máximo | None |
browserTimings
| where notempty(receiveDuration)
| extend _sum = receiveDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart
Tempo de solicitação de envio (browserTimings/sendDuration)
Tempo entre a conexão de rede e o recebimento do primeiro byte.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas |
---|---|---|
Milissegundos | Média, Mín, Máximo | None |
browserTimings
| where notempty(sendDuration)
| extend _sum = sendDuration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render timechart
Métricas das falhas
As métricas em Falhas mostram problemas com o processamento de solicitações, chamadas de dependência e exceções lançadas.
Exceções do navegador (exceções/navegador)
Essa métrica reflete o número de exceções lançadas do código do aplicativo em execução no navegador. Apenas as exceções que são rastreadas com uma trackException()
chamada de API do Application Insights são incluídas na métrica.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas | Notas |
---|---|---|---|
de palavras | de palavras | None | A versão baseada em log usa a agregação de soma |
exceptions
| where notempty(client_Browser)
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart
Falhas de chamada de dependência (dependências/falha)
O número de chamadas de dependência com falha.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas | Notas |
---|---|---|---|
de palavras | de palavras | None | A versão baseada em log usa a agregação de soma |
dependencies
| where success == 'False'
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart
Exceções (exceções/contagem)
Sempre que você registra uma exceção no Application Insights, há uma chamada para o método trackException() do SDK. A métrica Exceptions mostra o número de exceções registradas.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas | Notas |
---|---|---|---|
de palavras | de palavras | Nome da função de nuvem, instância de função de nuvem, Tipo de dispositivo | A versão baseada em log usa a agregação de soma |
exceptions
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart
Pedidos falhados (pedidos/falhas)
A contagem de solicitações de servidor rastreadas que foram marcadas como falha. Por padrão, o SDK do Application Insights marca automaticamente cada solicitação de servidor que retornou o código de resposta HTTP 5xx ou 4xx como uma solicitação com falha. Você pode personalizar essa lógica modificando a propriedade success do item de telemetria de solicitação em um inicializador de telemetria personalizado.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas | Notas |
---|---|---|---|
de palavras | de palavras | Instância de função na nuvem, Nome da função na nuvem, Tráfego real ou sintético, Desempenho da solicitação, Código de resposta | A versão baseada em log usa a agregação de soma |
requests
| where success == 'False'
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart
Exceções do servidor (exceções/servidor)
Essa métrica mostra o número de exceções do servidor.
Unidade de medida | Agregações suportadas | Dimensões pré-agregadas | Notas |
---|---|---|---|
de palavras | de palavras | Nome da função de nuvem, instância de função de nuvem | A versão baseada em log usa a agregação de soma |
exceptions
| where isempty(client_Browser)
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart
Contadores de desempenho
Use métricas na categoria Contadores de desempenho para acessar contadores de desempenho do sistema coletados pelo Application Insights.
Memória disponível (performanceCounters/availableMemory)
performanceCounters
| where ((category == "Memory" and counter == "Available Bytes") or name == "availableMemory")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
Taxa de exceção (performanceCounters/exceptionRate)
performanceCounters
| where ((category == ".NET CLR Exceptions" and counter == "# of Exceps Thrown / sec") or name == "exceptionRate")
| extend performanceCounter_value = iif(itemType == 'performanceCounter',value,todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
Tempo de execução da solicitação HTTP (performanceCounters/requestExecutionTime)
performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Request Execution Time") or name == "requestExecutionTime")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
Taxa de solicitação HTTP (performanceCounters/requestsPerSecond)
performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests/Sec") or name == "requestsPerSecond")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
Solicitações HTTP na fila de aplicativos (performanceCounters/requestsInQueue)
performanceCounters
| where ((category == "ASP.NET Applications" and counter == "Requests In Application Queue") or name == "requestsInQueue")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
CPU de processo (performanceCounters/processCpuPercentage)
A métrica mostra quanto da capacidade total do processador é consumida pelo processo que está hospedando seu aplicativo monitorado.
Unidade de medida | Agregações suportadas | Dimensões suportadas |
---|---|---|
Percentagem | Média, Mín, Máximo | Instância de função de cloud |
performanceCounters
| where ((category == "Process" and counter == "% Processor Time Normalized") or name == "processCpuPercentage")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
Nota
O intervalo da métrica está entre 0 e 100 * n, onde n é o número de núcleos de CPU disponíveis. Por exemplo, o valor métrico de 200% pode representar a utilização total de dois núcleos de CPU ou metade da utilização de 4 núcleos de CPU e assim por diante. O Process CPU Normalized é uma métrica alternativa coletada por muitos SDKs que representa o mesmo valor, mas o divide pelo número de núcleos de CPU disponíveis. Assim, o intervalo da métrica Process CPU Normalized é de 0 a 100.
Taxa de E/S do processo (performanceCounters/processIOBytesPerSecond)
Unidade de medida | Agregações suportadas | Dimensões suportadas |
---|---|---|
Bytes por segundo | Média, Mín, Máximo | Instância de função de cloud |
performanceCounters
| where ((category == "Process" and counter == "IO Data Bytes/sec") or name == "processIOBytesPerSecond")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
Processar bytes privados (performanceCounters/processPrivateBytes)
Quantidade de memória não compartilhada que o processo monitorado alocado para seus dados.
Unidade de medida | Agregações suportadas | Dimensões suportadas |
---|---|---|
Bytes | Média, Mín, Máximo | Instância de função de cloud |
performanceCounters
| where ((category == "Process" and counter == "Private Bytes") or name == "processPrivateBytes")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
Tempo do processador (performanceCounters/processorCpuPercentage)
Consumo de CPU por todos os processos em execução na instância do servidor monitorado.
Unidade de medida | Agregações suportadas | Dimensões suportadas |
---|---|---|
Percentagem | Média, Mín, Máximo | Instância de função de cloud |
Nota
A métrica de tempo do processador não está disponível para os aplicativos hospedados nos Serviços de Aplicativo do Azure. Use a métrica Process CPU para controlar a utilização da CPU dos aplicativos Web hospedados nos Serviços de Aplicativo.
performanceCounters
| where ((category == "Processor" and counter == "% Processor Time") or name == "processorCpuPercentage")
| extend performanceCounter_value = iif(itemType == "performanceCounter", value, todouble(''))
| summarize sum(performanceCounter_value) / count() by bin(timestamp, 1m)
| render timechart
Métricas do servidor
Chamadas de dependência (dependências/contagem)
Essa métrica é em relação ao número de chamadas de dependência.
dependencies
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart
Duração da dependência (dependências/duração)
Esta métrica refere-se à duração das chamadas de dependência.
dependencies
| where notempty(duration)
| extend dependency_duration = iif(itemType == 'dependency',duration,todouble(''))
| extend _sum = dependency_duration
| extend _count = itemCount
| extend _sum = _sum*_count
| summarize sum(_sum)/sum(_count) by bin(timestamp, 1m)
| render timechart
Solicitações do servidor (solicitações/contagem)
Essa métrica reflete o número de solicitações de servidor de entrada que foram recebidas pelo seu aplicativo Web.
requests
| summarize sum(itemCount) by bin(timestamp, 5m)
| render barchart
Tempo de resposta do servidor (pedidos/duração)
Essa métrica reflete o tempo que os servidores levaram para processar solicitações de entrada.
requests
| where notempty(duration)
| extend request_duration = iif(itemType == 'request', duration, todouble(''))
| extend _sum = request_duration
| extend _count = itemCount
| extend _sum = _sum*_count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 1m)
| render timechart
Métricas de utilização
Tempo de carregamento da vista de página (pageViews/duração)
Essa métrica refere-se à quantidade de tempo que os eventos PageView levaram para carregar.
pageViews
| where notempty(duration)
| extend pageView_duration = iif(itemType == 'pageView', duration, todouble(''))
| extend _sum = pageView_duration
| extend _count = itemCount
| extend _sum = _sum * _count
| summarize sum(_sum) / sum(_count) by bin(timestamp, 5m)
| render barchart
Visualizações de página (pageViews/count)
A contagem de eventos PageView registrados com a API do Application Insights TrackPageView().
pageViews
| summarize sum(itemCount) by bin(timestamp, 1h)
| render barchart
Sessões (sessões/contagem)
Esta métrica refere-se à contagem de IDs de sessão distintos.
union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(session_Id)
| summarize dcount(session_Id) by bin(timestamp, 1h)
| render barchart
Vestígios (vestígios/contagem)
A contagem de instruções de rastreamento registradas com a chamada da API do Application Insights TrackTrace().
traces
| summarize sum(itemCount) by bin(timestamp, 1h)
| render barchart
Utilizadores (utilizadores/contagem)
O número de usuários distintos que acessaram seu aplicativo. A precisão dessa métrica pode ser significativamente afetada pelo uso de amostragem e filtragem por telemetria.
union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_Id)
| summarize dcount(user_Id) by bin(timestamp, 1h)
| render barchart
Usuários, autenticados (usuários/autenticados)
O número de usuários distintos que se autenticaram em seu aplicativo.
union traces, requests, pageViews, dependencies, customEvents, availabilityResults, exceptions, customMetrics, browserTimings
| where notempty(user_AuthenticatedId)
| summarize dcount(user_AuthenticatedId) by bin(timestamp, 1h)
| render barchart