Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Use Azure Monitor para recopilar registros, métricas y alertas en las aplicaciones de JavaScript y los servicios de Azure de los que dependen. Azure Monitor es el servicio de plataforma central que recopila y almacena la telemetría. Puede instrumentar las aplicaciones con Application Insights. Debe supervisar el servicio de aplicación hospedado, los servicios de Azure con los que se integra la aplicación y el propio código fuente de la aplicación.
Descripción de los registros, las métricas y las alertas
La telemetría es los datos recopilados de las aplicaciones y los servicios para supervisar su estado, rendimiento y uso. En Azure, la telemetría se clasifica en registros, métricas y alertas.
Azure ofrece cuatro tipos de telemetría:
Tipo de telemetría | Lo que te da | Dónde encontrarlo para cada servicio |
---|---|---|
Métricas | Datos numéricos, de serie temporal (CPU, memoria, etc.) |
Métricas en el portal o az monitor metrics la CLI |
Alertas | Notificaciones proactivas cuando se alcanzan umbrales |
Alertas en el portal o az monitor metrics alert CLI |
Registros | Eventos y diagnósticos basados en texto (web, aplicación) | Registros de App Service, Monitor de Functions, Diagnósticos de Container Apps |
Registros personalizados | Telemetría de su propia aplicación a través de App Insights | La tabla de registros (seguimiento) de su recurso de Application Insights |
Elija la telemetría correcta para su pregunta:
Escenario | Utilizar registros... | Usa métricas... | Usa alertas... |
---|---|---|---|
"¿Mi aplicación web se inició y respondió?" | Registros del servidor web de App Service | No disponible | No disponible |
"¿Se agota el tiempo de espera o se produce un error en mi función?" | Registros de invocación de funciones (Monitor) | Métrica de duración de ejecución de funciones | Alerta sobre "Errores de función" >0 |
"¿Qué tan ocupado es mi servicio y puede escalar?" | No disponible | Rendimiento del servicio/CPU en métricas | Alerta de escalado automático en CPU% > 70% |
"¿Qué excepciones produce mi código?" | Registros de seguimiento personalizados en Application Insights | No disponible | Alerta sobre "ServerExceptions >0" |
"¿He superado mis límites de transacción o cuota?" | No disponible | Métricas relacionadas con la cuota (transacciones, limitación) | Alerta sobre "ThrottlingCount >0" |
Optimización de costos
Puede reducir significativamente el costo de Azure Monitor mediante la comprensión de los procedimientos recomendados para las opciones de configuración y las oportunidades para reducir la cantidad de datos que recopila.
Habilitación del registro y las métricas para todos los recursos de Azure
Cada servicio de Azure tiene sus propias funcionalidades de registro y métricas. Habilite el registro en cada recurso de Azure para asegurarse de que tiene la telemetría que necesita para supervisar toda la aplicación de un extremo a otro.
Creación de un recurso de Azure Monitor
Puede crear un recurso de Azure Monitor para recopilar registros y métricas de los recursos de Azure. Este recurso suele ser un área de trabajo de Log Analytics, que es donde se almacenan los registros y las métricas.
Puede crear este recurso de varias maneras:
- Azure Portal: use Azure Portal para crear un área de trabajo de Log Analytics y configurar la configuración de diagnóstico de los recursos.
- CLI de Azure: use la CLI de Azure para crear un área de trabajo de Log Analytics y configurar las opciones de diagnóstico de los recursos.
- PowerShell: use PowerShell para crear un área de trabajo de Log Analytics y configurar las opciones de diagnóstico de los recursos.
- Bicep: use plantillas de Bicep para definir e implementar los recursos de Azure Monitor mediante declaración.
Creación de un área de trabajo de Log Analytics mediante la CLI de Azure
Use la CLI de Azure para crear un área de trabajo de Log Analytics, que es donde se almacenan los registros y las métricas. Ejemplo:
# Variables
resourceGroup="myResourceGroup"
location="eastus"
workspaceName="myWorkspace"
webAppName="myWebApp"
diagName="${webAppName}/appServiceLogging"
# 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}]'
Creación de un área de trabajo de Log Analytics mediante Bicep
Use Bicep para definir e implementar los recursos de Azure Monitor mediante declaración. En este ejemplo se crea un área de trabajo de Log Analytics y se configuran las opciones de diagnóstico para una instancia de App Service:
Include logging, metrics, and alerting in your IaC templates with a [Bicep diagnosticSettings resource reference](/azure/templates/microsoft.insights/diagnosticsettings). Example (Bicep):
```bicep
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 }
]
}
}
Crear alertas para tus recursos
Puede configurar alertas para métricas en Azure Portal o mediante la CLI de Azure. Las alertas pueden incluir métricas específicas, flujos de comunicación (por ejemplo, correo electrónico) y frecuencia.
Use los ejemplos siguientes para crear alertas de métricas en el portal o mediante programación:
- CLI de Azure: configuración rápida mediante
az monitor metrics alert
- Bicep: definición declarativa de IaC para
Microsoft.Insights/metricAlerts
Las alertas pueden especificar métricas de destino, canales de notificación (correo electrónico, webhook), gravedad, frecuencia de evaluación y grupos de acciones.
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'
}
]
}
}
Visualización de los datos de registro
Para ver los datos de registro en Azure Portal, vaya al área de trabajo de Log Analytics y seleccione Registros. Puede ejecutar consultas del Lenguaje de Consulta Kusto (KQL) en los registros.
Transmisión de registros
Use la tabla siguiente para obtener más información sobre cómo transmitir registros.
Servidor MCP de Azure
Al desarrollar localmente, puede usar la herramienta de supervisión del servidor MCP de Azure para consultar registros sin salir del IDE. Una vez que instale el servidor, los mensajes de Copilot de ejemplo incluyen:
- Enumerar áreas de trabajo: "Mostrar todas las áreas de trabajo de Log Analytics en mi suscripción".
- Buscar tablas: "Enumerar todas las tablas en mi espacio de trabajo 'security-logs'"
- Consulta compleja: "Mostrar la tendencia de uso de CPU para mis servidores web en las últimas 24 horas"
Añade registro a tu código
Para el registro de aplicaciones, Application Insights puede proporcionar:
- Registro estándar en el servicio de Azure y en el código fuente, en función de la inicialización.
- Registro personalizado desde la canalización de implementación y en el código fuente.
Registro de consola estándar (stdout/stderr)
Las aplicaciones web de Azure y Azure Functions proporcionan automáticamente el registro personalizado a stdout
y stderr
, si usa las funciones de registro correctas:
- Las aplicaciones web usan
console.log('your message here')
. - Las aplicaciones de funciones usan
context.log('your message here')
.
Añadir registro personalizado de Application Insights.
Puede agregar un registro personalizado más completo mediante Application Insights en Azure Monitor. Application Insights ofrece escenarios de servidor (Node.js) y cliente (explorador):
- Agregue el SDK de Application Insights al código fuente.
- Inicie sesión desde Node.js mediante un paquete npm.
- Asegúrese de configurar el SDK de Node.js con
enableAutoCollectConsole: true
para recopilar registros de consola personalizados.
- Asegúrese de configurar el SDK de Node.js con
- Inicie sesión desde el código de cliente mediante un paquete npm.
- Inicie sesión desde el clúster de Kubernetes o la máquina virtual de Azure.
Habilitación de los registros de canalización del SDK (@Azure/registrador)
Controle el nivel de detalle del SDK mediante la AZURE_LOG_LEVEL
variable de entorno o el @azure/logger
paquete npm:
import { setLogLevel } from "@azure/logger";
// Options: 'error', 'warning', 'info', 'verbose'
setLogLevel(process.env.AZURE_LOG_LEVEL || "info");
Configuración del SDK de Application Insights Node.js
Inicialice Application Insights para Node.js SDK con muestreo, recopilación de dependencias y captura de registros de consola:
import appInsights from "applicationinsights";
appInsights
.setup("<INSTRUMENTATION_KEY>")
.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" };
Agregar correlación y seguimiento distribuido
El SDK de Application Insights inserta automáticamente identificadores de operación y correlación en solicitudes. Para agregar una correlación personalizada o propiedades:
appInsights.defaultClient.trackTrace({
message: "Custom trace",
properties: { userId: user.id }
});
Más información: guía de seguimiento distribuido
Vaciar la telemetría en scripts de desarrollo
Asegúrese de que los registros se envían antes de la salida del proceso durante el desarrollo local:
appInsights.defaultClient.flush({
callback: () => process.exit(0)
});
Configuración de telemetría del lado cliente
En el caso de las aplicaciones cliente, use el @microsoft/applicationinsights-web
paquete :
import { ApplicationInsights } from "@microsoft/applicationinsights-web";
const ai = new ApplicationInsights({ config: {
instrumentationKey: "<INSTRUMENTATION_KEY>",
enableAutoRouteTracking: true
}});
ai.loadAppInsights();