Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Use o Azure Monitor para recolher logs, métricas e alertas entre as suas aplicações JavaScript e os serviços Azure de que dependem. Azure Monitor é o serviço central da plataforma que recolhe e armazena a sua telemetria. Você pode instrumentar seus aplicativos com o Application Insights. Deves monitorizar o teu serviço de aplicação alojado, os serviços do Azure com que a aplicação se integra e o próprio código-fonte da aplicação.
Compreender logs, métricas e alertas
Telemetria é o conjunto de dados recolhidos das suas aplicações e serviços para monitorizar a sua integridade, desempenho e utilização. No Azure, a telemetria é categorizada em logs, métricas e alertas.
O Azure oferece quatro tipos de telemetria:
| Tipo de telemetria | O que lhe dá | Onde encontrá-lo em cada serviço |
|---|---|---|
| Métricas | Dados numéricos de séries cronológicas (CPU, memória, etc.) |
Métricas no portal ou az monitor metrics CLI |
| Alertas | Notificações proativas quando os limites são atingidos |
Alertas no portal ou az monitor metrics alert CLI |
| Registos | Eventos e diagnósticos baseados em texto (Web, aplicativo) | Logs do App Service Aplicações, Monitor de Funções, Diagnóstico de Container Apps |
| 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 a sua pergunta:
| Cenário | Use registos... | Usa métricas... | Usa alertas... |
|---|---|---|---|
| Será que a minha aplicação web começou e respondeu? | Registos do servidor web do App Service (Logs) | N/A | N/A |
| "A minha função está a atingir o tempo limite ou a falhar?" | Logs de invocação de função (Monitor) | Métrica de duração de execução da função | Alerta sobre "Erros de função >0" |
| "Quão carregado está o meu serviço e ele pode expandir?" | N/A | Desempenho/CPU do serviço nas métricas | Alerta de dimensionamento automático na CPU% > 70% |
| "Que exceções meu código está lançando?" | Registos de rastreamento personalizados no Application Insights | N/A | Alerta sobre "ServerExceptions >0" |
| "Excedi os meus limites de transação ou quota?" | N/A | Métricas relacionadas a cotas (transações, limitação) | Alerta sobre "ThrottlingCount >0" |
Otimização de custos
Pode reduzir significativamente o seu custo para Azure Monitor compreendendo melhores práticas para opções de configuração e oportunidades para reduzir a quantidade de dados que recolhe.
Ative o registo e métricas para todos os recursos do Azure
Cada serviço no Azure tem as suas próprias capacidades de registo e métricas. Ative o login em cada recurso Azure para garantir que tem a telemetria necessária para monitorizar toda a sua aplicação de ponta a ponta.
Criar recurso do Azure Monitor
Pode criar um recurso Azure Monitor para recolher logs e métricas dos seus recursos Azure. Este recurso é tipicamente um espaço de trabalho de Log Analytics, onde os registos e métricas são armazenados.
Você pode criar esse recurso de várias maneiras:
Portal Azure : Utilize oportal Azure para criar umespaço de trabalho do Log Analytics e configurar definições de diagnóstico para os seus recursos.- CLI do Azure: Use o CLI do Azure para criar um espaço de trabalho Log Analytics e configurar as definições de diagnóstico dos seus recursos.
- PowerShell: Use PowerShell para criar um espaço de trabalho Log Analytics e configurar as definições de diagnóstico para os seus recursos.
- Bicep: Use modelos de Bicep para definir e implementar os seus recursos de Azure Monitor de forma declarativa.
Crie um espaço de trabalho de Log Analytics usando a CLI do Azure
Use a CLI do Azure para criar um espaço de trabalho de Log Analytics, que é onde os registos e 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}]'
Crie um espaço de trabalho de Log Analytics usando o Bicep
Use o Bicep para definir e implementar os seus recursos do Azure Monitor de forma declarativa. Este exemplo cria um espaço de trabalho de Log Analytics e configura as definições de diagnóstico para um Serviço de Aplicações.
Inclua registos, métricas e alertas nos seus modelos IaC com uma referência ao 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 }
]
}
}
Crie alertas para os seus recursos
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 e-mail) 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 via
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 (e-mail, webhook), gravidade, frequência de avaliação e grupos de ação.
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'
}
]
}
}
Ver os dados do registo
Para visualizar os dados de registo no portal Azure, navegue até ao seu espaço de trabalho de Log Analytics e selecione Logs. Você pode executar consultas KQL (Kusto Query Language) nos logs.
Transmitir registos
Use a tabela a seguir para saber mais sobre como transmitir logs.
Azure MCP Server (Servidor MCP do Azure)
Ao desenvolver localmente, pode usar a ferramenta Azure MCP Servermonitor para consultar logs sem sair do seu IDE. Depois de instalar o servidor, incluídos estão exemplos de prompts do Copilot:
- Lista de espaços de trabalho: "Mostre-me todos os espaços de trabalho do Log Analytics na minha subscrição."
- Localizar tabelas: "Listar todas as tabelas no meu espaço de trabalho 'security-logs'"
- Consulta complexa: "Mostre-me a tendência de uso da CPU para meus servidores Web nas últimas 24 horas"
Adicionar registo ao seu código
Para o registro em log de aplicativos, o Application Insights pode fornecer:
- Login padrão no serviço Azure e no teu código-fonte, dependendo da inicialização.
- Registo personalizado nos logs do seu pipeline de implantação e no seu código-fonte.
Registro de console padrão (stdout/stderr)
Aplicações web do Azure e Funções do Azure fornecem automaticamente registos personalizados para stdout e stderr, se usar as funções de registo corretas:
- Os aplicativos Web usam
console.log('your message here'). - As aplicações de função utilizam
context.log('your message here').
Adicionar log personalizado do Application Insights
Pode adicionar registos personalizados mais ricos usando Application Insights no Azure Monitor. O Application Insights oferece cenários de servidor (Node.js) e cliente (navegador):
- Adicione o SDK do Application Insights ao seu código-fonte.
- Registre-se a partir de Node.js usando um pacote npm.
- Certifique-se de configurar o SDK do Node.js com
enableAutoCollectConsole: truepara coletar registos da consola personalizados.
- Certifique-se de configurar o SDK do Node.js com
- Faça log a partir do código do cliente usando um pacote npm.
- Regista a partir do teu cluster Kubernetes ou da máquina virtual Azure.
Ativar os logs da pipeline do SDK (@Azure/logger)
Controle 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 Application Insights for Node.js SDK com amostragem, coleta de dependências e captura de registos 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 IDs de operação e correlação em solicitações. Para adicionar propriedades ou correlação personalizadas:
appInsights.defaultClient.trackTrace({
message: "Custom trace",
properties: { userId: user.id }
});
Saiba mais: Guia de rastreamento distribuído
Liberar telemetria em scripts de desenvolvimento
Certifique-se de que os logs sejam 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();