Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Use Azure Monitor para coletar logs, métricas e alertas em seus aplicativos JavaScript e os serviços de Azure dos quais eles dependem. Azure Monitor é o serviço de plataforma central que coleta e armazena sua telemetria. Você pode instrumentar seus aplicativos com o Application Insights. Você deve monitorar o serviço de aplicativo hospedado, os serviços de Azure aos quais o aplicativo se integra e o próprio código-fonte do aplicativo.
Entender logs, métricas e alertas
Telemetria é o conjunto de dados coletados de seus aplicativos e serviços para monitorar sua saúde, desempenho e uso. Em Azure, a telemetria é categorizada em logs, métricas e alertas.
Azure oferece quatro tipos de telemetria:
| Tipo de telemetria | O que te dá | Onde encontrá-lo para cada serviço |
|---|---|---|
| Métricas | Dados numéricos de série temporal (CPU, memória etc.) |
Métricas no portal ou na az monitor metrics CLI |
| Alertas | Notificações proativas quando os limites são atingidos |
Alertas no portal ou az monitor metrics alert na linha de comando |
| Registros | Eventos e diagnósticos baseados em texto (Web, aplicativo) | Logs do Serviço de Aplicativos, Monitor de Funções, Diagnóstico de Apps de Contêiner |
| Logs personalizados | Sua própria telemetria de aplicativo por meio do App Insights | Tabela Logs (Rastreamento) do recurso do Application Insights |
Escolha a telemetria certa para sua pergunta:
| Cenário | Use logs... | Use métricas... | Use alertas... |
|---|---|---|---|
| "Meu aplicativo Web iniciou e respondeu?" | Logs do servidor Web do Serviço de Aplicativo (Logs) | Não aplicável | Não aplicável |
| "Minha função está atingindo o tempo limite ou falhando?" | Logs de chamadas de função (Monitor) | Métrica de duração da execução da função | Alerta sobre "Erro de Função >0" |
| "Quão ocupado está meu serviço e ele pode ser dimensionado?" | Não aplicável | Rendimento do serviço/CPU nas métricas | Alerta de escalonamento automático na CPU% > 70% |
| "Quais são as exceções que meu código está lançando?" | Logs de rastreamento personalizados no Application Insights | Não aplicável | Alerta em "ServerExceptions >0" |
| "Excedi meus limites de transação ou cota?" | Não aplicável | Métricas relacionadas à cota (Transações, Restrição) | Alerta em "ThrottlingCount >0" |
Otimização de custos
Você pode reduzir significativamente o seu custo do Azure Monitor ao compreender as melhores práticas para opções de configuração e oportunidades para reduzir a quantidade de dados que ele coleta.
Habilitar registro em log e métricas para todos os recursos de Azure
Cada serviço do Azure possui seus próprios recursos de registros e métricas. Habilite logs em cada recurso do Azure para ter a telemetria necessária e monitorar toda a aplicação de ponta a ponta.
Criar recurso do Azure Monitor
Você pode criar um recurso Azure Monitor para coletar logs e métricas de seus recursos de Azure. Esse recurso normalmente é um espaço de trabalho do Log Analytics, que é onde os logs e as métricas são armazenados.
Você pode criar esse recurso de várias maneiras:
- Azure portal: use o portal Azure para criar um workspace Log Analytics e definir as configurações de diagnóstico para seus recursos.
- CLI do Azure: use o CLI do Azure para criar um workspace Log Analytics e definir as configurações de diagnóstico para seus recursos.
- PowerShell: Use o PowerShell para criar um Log Analytics workspace e configurar configurações de diagnóstico para seus recursos.
- Bicep: use modelos Bicep para definir e implantar seus recursos Azure Monitor declarativamente.
Criar um workspace Log Analytics usando o CLI do Azure
Use o CLI do Azure para criar um workspace Log Analytics, que é onde os logs e as métricas são armazenados. Exemplo:
# Variables
resourceGroup="myResourceGroup"
location="eastus"
workspaceName="myWorkspace"
webAppName="myWebApp"
diagName="${webAppName}/appServiceLogging"
SUBSCRIPTION_ID=$(az account show --query id -o tsv)
# 1) Create a Log Analytics workspace
workspaceId=$(az monitor log-analytics workspace create \
--resource-group $resourceGroup \
--workspace-name $workspaceName \
--location $location \
--query id -o tsv)
# 2) Enable diagnostic settings on your App Service
az monitor diagnostic-settings create \
--name "$diagName" \
--resource "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$resourceGroup/providers/Microsoft.Web/sites/$webAppName" \
--workspace $workspaceId \
--logs '[{"category": "Administrative", "enabled": true},{"category":"AppServiceConsoleLogs","enabled":true},{"category":"AppServiceHTTPLogs","enabled":true}]' \
--metrics '[{"category":"AllMetrics","enabled":true}]'
Criar um espaço de trabalho do Log Analytics usando Bicep
Use Bicep para definir e implantar seus recursos de Azure Monitor declarativamente. Este exemplo cria um workspace Log Analytics e define as configurações de diagnóstico para um Serviço de Aplicativo.
Inclua log, métricas e alertas em seus modelos de IaC com uma referência de recurso Bicep diagnosticSettings. Exemplo (Bicep):
param webAppName string
resource webApp 'Microsoft.Web/sites@2022-09-01' existing = {
name: webAppName
}
resource logAnalytics 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
name: 'myWorkspace'
location: resourceGroup().location
}
resource diagSettings 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = {
name: '${webApp.name}/appServiceLogging'
properties: {
workspaceId: logAnalytics.id
logs: [
{ category: 'AppServiceConsoleLogs'; enabled: true }
{ category: 'AppServiceHTTPLogs'; enabled: true }
]
metrics: [
{ category: 'AllMetrics'; enabled: true }
]
}
}
Criar alertas para seus recursos
Você pode configurar alertas para métricas no portal Azure ou usando o CLI do Azure. Os alertas podem incluir métricas específicas, fluxos de comunicação (como email) e frequência.
Use os exemplos a seguir para criar alertas de métrica no portal ou programaticamente:
- CLI do Azure: configuração rápida por meio de
az monitor metrics alert - Bicep: definição declarativa de IaC para
Microsoft.Insights/metricAlerts
Os alertas podem especificar métricas de destino, canais de notificação (email, webhook), severidade, frequência de avaliação e grupos de ações.
az monitor metrics alert create \
--name HighCpuAlert \
--resource-group MyResourceGroup \
--scopes /subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/Microsoft.Web/sites/myApp \
--condition "avg CpuPercentage > 70" \
--description "Alert when CPU goes above 70%" \
--severity 2 \
--window-size 5m \
--evaluation-frequency 1m \
--action /subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/microsoft.insights/actionGroups/MyActionGroup
resource cpuAlert 'Microsoft.Insights/metricAlerts@2018-03-01' = {
name: 'highCpuAlert'
location: resourceGroup().location
properties: {
description: 'Alert when CPU goes above 70%'
severity: 2
enabled: true
scopes: [
webApp.id
]
evaluationFrequency: 'PT1M'
windowSize: 'PT5M'
criteria: {
allOf: [
{
criterionType: 'StaticThresholdCriterion'
name: 'HighCpu'
metricName: 'CpuPercentage'
metricNamespace: 'Microsoft.Web/sites'
operator: 'GreaterThan'
threshold: 70
timeAggregation: 'Average'
}
]
}
autoMitigate: false
actions: [
{
actionGroupId: '/subscriptions/{sub}/resourceGroups/MyResourceGroup/providers/microsoft.insights/actionGroups/MyActionGroup'
}
]
}
}
Exibir dados do log
Para exibir dados de log no portal Azure, navegue até o workspace Log Analytics e selecione Logs. Você pode executar consultas no Kusto Query Language (KQL) nos logs.
Transmitir logs
Use a tabela a seguir para saber mais sobre como transmitir logs.
servidor MCP Azure
Ao desenvolver localmente, você pode usar a ferramenta Azure MCP Servermonitor para consultar logs sem sair do IDE. Depois de instalar o servidor, exemplos de prompts do Copilot incluem:
- Listar workspaces: "Mostre-me todos os workspaces de Log Analytics na minha assinatura."
- Localizar tabelas: "Listar todas as tabelas na minha área de trabalho 'security-logs'"
- Consulta complexa: "Mostre-me a tendência de uso da CPU para meus servidores Web nas últimas 24 horas"
Adicionar log ao seu código
Para o monitoramento de aplicativos, o Application Insights pode fornecer:
- Registro padrão no serviço Azure e no seu código-fonte, conforme a inicialização.
- Registro em log personalizado tanto no pipeline de implantação quanto no código-fonte.
Registro de console padrão (stdout/stderr)
Aplicativos Web do Azure e as Azure Functions fornecerão automaticamente log personalizado para stdout e stderr, se você usar as funções de log corretas.
- Os aplicativos Web usam
console.log('your message here'). - Os aplicativos de funções usam
context.log('your message here').
Adicionar log personalizado do Application Insights
Você pode adicionar um registro em log personalizado mais avançado usando Application Insights em Azure Monitor. O Application Insights oferece cenários de servidor (Node.js) e cliente (navegador):
- Adicione o SDK do Application Insights ao código-fonte.
- Faça logon do Node.js usando um pacote npm.
- Certifique-se de configurar o SDK Node.js com
enableAutoCollectConsole: truea fim de coletar logs de console personalizados.
- Certifique-se de configurar o SDK Node.js com
- Faça logon do código do cliente usando um pacote npm.
- Faça logon do cluster Kubernetes ou Azure máquina virtual.
Habilitar logs de pipeline do SDK (@Azure/logger)
Controlar a verbosidade do SDK usando a AZURE_LOG_LEVEL variável de ambiente ou o @azure/logger pacote npm:
import { setLogLevel } from "@azure/logger";
// Options: 'error', 'warning', 'info', 'verbose'
setLogLevel(process.env.AZURE_LOG_LEVEL || "info");
Configurar o SDK do Application Insights Node.js
Inicialize o SDK do Application Insights para Node.js com amostragem, coleta de dependências e captura de logs do console.
import appInsights from "applicationinsights";
appInsights
.setup(process.env.APPLICATIONINSIGHTS_CONNECTION_STRING || "<YOUR_CONNECTION_STRING>")
.setAutoCollectConsole(true, true) // collect console.log
.setAutoCollectDependencies(true) // track outgoing requests
.setInternalLogging(false, true) // SDK internal logs
.start();
// Optional: add custom properties to all telemetry
appInsights.defaultClient.commonProperties = { serviceName: "my-service" };
Adicionar correlação e rastreamento distribuído
O SDK do Application Insights injeta automaticamente a operação e as IDs de correlação em solicitações. Para adicionar correlação ou propriedades personalizadas:
appInsights.defaultClient.trackTrace({
message: "Custom trace",
properties: { userId: user.id }
});
Saiba mais: diretrizes de rastreamento distribuído
Limpar telemetria em scripts de desenvolvimento
Verifique se os logs são enviados antes da saída do processo durante o desenvolvimento local:
appInsights.defaultClient.flush({
callback: () => process.exit(0)
});
Configuração de telemetria do lado do cliente
Para aplicativos cliente, use o @microsoft/applicationinsights-web pacote :
import { ApplicationInsights } from "@microsoft/applicationinsights-web";
const ai = new ApplicationInsights({ config: {
connectionString: "<YOUR_CONNECTION_STRING>",
enableAutoRouteTracking: true
}});
ai.loadAppInsights();
Conteúdo relacionado
- Visão geral Azure Data Explorer (Kusto)
- Habilitar o log de diagnósticos para aplicativos no Serviço de Aplicativo do Azure
- Aprenda como trabalhar com logs da plataforma Azure
- Azure ferramenta de monitor do servidor MCP