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.
La biblioteca cliente de métricas de consulta de Azure Monitor se usa para ejecutar consultas de solo lectura en la plataforma de datos de métricas de Azure Monitor:
- Métricas : recopila datos numéricos de los recursos supervisados en una base de datos de series temporales. Las métricas son valores numéricos que se recopilan a intervalos regulares y describen algún aspecto de un sistema en un momento determinado. Las métricas son ligeras y capaces de admitir escenarios casi en tiempo real, por lo que son útiles para alertas y detección rápida de problemas.
Migración desde @azure/monitor-query el ⚠aviso ️
Consulte la Guía de migración para obtener instrucciones detalladas sobre cómo actualizar el código de la aplicación del paquete original @azure/monitor-query a la @azure/monitor-query-metrics biblioteca.
Recursos:
- Código fuente
- paquete (npm)
- Documentación de referencia de API
- Documentación del servicio
- Muestras
- Registro de cambios
Cómo empezar
Entornos soportados
- Versiones de LTS de Node.js
- Versiones más recientes de Safari, Chrome, Microsoft Edge y Firefox
Para obtener más información, consulte nuestra política de soporte.
Prerrequisitos
- Una suscripción de Azure
- Una implementación de TokenCredential, como un tipo de credencial de la biblioteca de Azure Identity.
- Para consultar las métricas, necesita un recurso de Azure de cualquier tipo (cuenta de almacenamiento, Key Vault, Cosmos DB, etcetera).).
Instalación del paquete
Instale la biblioteca cliente de métricas de consulta de Azure Monitor para JavaScript con npm:
npm install --save @azure/monitor-query-metrics
Creación del cliente
Se requiere un cliente autenticado para consultar las métricas. Para autenticarse, en el ejemplo siguiente se usa DefaultAzureCredential del paquete @azure/identity .
import { DefaultAzureCredential } from "@azure/identity";
import { MetricsClient } from "@azure/monitor-query-metrics";
const credential = new DefaultAzureCredential();
// Create a MetricsClient
const endpoint = " https://<endpoint>.monitor.azure.com/";
const metricsClient = new MetricsClient(endpoint, credential);
Configuración del cliente para la nube soberana de Azure
De forma predeterminada, los clientes de la biblioteca están configurados para usar la nube pública de Azure. Para usar una nube soberana en su lugar, proporcione el punto de conexión y el valor de audiencia correctos al crear una instancia de un cliente. Por ejemplo:
import { DefaultAzureCredential } from "@azure/identity";
import { MetricsClient } from "@azure/monitor-query-metrics";
const credential = new DefaultAzureCredential();
// Create a MetricsClient
const endpoint = " https://<endpoint>.monitor.azure.cn/";
const metricsClient = new MetricsClient(endpoint, credential, {
audience: "https://monitor.azure.cn/.default",
});
Ejecución de la consulta
Para obtener ejemplos de consultas de métricas, consulte la sección Ejemplos .
Conceptos clave
Estructura de datos de métricas
Cada conjunto de valores de métricas es una serie temporal con las siguientes características:
- Hora en que se recopiló el valor
- Recurso asociado al valor
- Un espacio de nombres que actúa como una categoría para la métrica
- Un nombre de métrica
- El propio valor
- Algunas métricas tienen varias dimensiones, como se describe en métricas multidimensionales. Las métricas personalizadas pueden tener hasta 10 dimensiones.
Ejemplos
Consulta de métricas
Para consultar las métricas de uno o varios recursos de Azure, use el queryResources método .MetricsClient Este método requiere un punto de conexión regional al crear el cliente. Por ejemplo: https://westus3.metrics.monitor.azure.com.
Cada recurso de Azure debe residir en:
- La misma región que el punto de conexión especificado al crear el cliente.
- La misma suscripción de Azure.
Los ID de recursos deben ser los de los recursos para los que se consultan las métricas. Normalmente es del formato /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>.
Para encontrar el ID/URI del recurso:
- Vaya a la página del recurso en Azure Portal.
- Seleccione el vínculo Vista JSON en la sección Información general .
- Copie el valor en el cuadro de texto ID de recurso en la parte superior de la vista JSON.
Además:
- El usuario debe estar autorizado para leer los datos de supervisión en el nivel de suscripción de Azure. Por ejemplo, el rol Lector de supervisión en la suscripción que se va a consultar.
- Se debe proporcionar el espacio de nombres de métrica que contiene las métricas que se van a consultar. Para obtener una lista de los espacios de nombres de métricas, consulte Métricas y categorías de registro admitidas por tipo de recurso.
import { DefaultAzureCredential } from "@azure/identity";
import { MetricsClient } from "@azure/monitor-query-metrics";
const resourceIds = [
"/subscriptions/0000000-0000-000-0000-000000/resourceGroups/test/providers/Microsoft.OperationalInsights/workspaces/test-logs",
"/subscriptions/0000000-0000-000-0000-000000/resourceGroups/test/providers/Microsoft.OperationalInsights/workspaces/test-logs2",
];
const metricsNamespace = "Microsoft.OperationalInsights/workspaces";
const metricNames = ["Heartbeat"];
const endpoint = "https://westus3.metrics.monitor.azure.com";
const credential = new DefaultAzureCredential();
const metricsClient = new MetricsClient(endpoint, credential);
const result = await metricsClient.queryResources(resourceIds, metricNames, metricsNamespace, {
aggregation: "Count",
});
console.log(`Retrieved metrics for ${result.length} resources`);
for (const resource of result) {
console.log(`Resource: ${resource.resourceId}`);
console.log(`Metrics: ${resource.metrics.length}`);
}
Control de la respuesta de consulta de métricas
La API de consulta de métricas devuelve una lista de MetricsQueryResult objetos. El MetricsQueryResult objeto contiene propiedades como una lista de Metricobjetos con tipo, granularity, namespacey timespan. Se puede acceder a la Metric lista de objetos mediante la metrics propiedad. Cada Metric objeto de esta lista contiene una lista de TimeSeriesElement objetos. Cada TimeSeriesElement objeto contiene data y metadatavalues propiedades. En forma visual, la jerarquía de objetos de la respuesta es similar a la siguiente estructura:
MetricsQueryResult
|---granularity
|---timespan
|---cost
|---namespace
|---resourceRegion
|---metrics (list of `Metric` objects)
|---id
|---type
|---name
|---unit
|---timeseries (list of `TimeSeriesElement` objects)
|---metadatavalues
|---data (list of data points)
Nota: Cada uno MetricsQueryResult se devuelve en el mismo orden que el recurso correspondiente en el resourceIds parámetro. Si se consultan varias métricas diferentes, las métricas se devuelven en el orden de las metricNames enviadas.
Ejemplo de manejo de respuesta:
import { DefaultAzureCredential } from "@azure/identity";
import { MetricsClient, Durations } from "@azure/monitor-query-metrics";
const resourceIds = [
"/subscriptions/0000000-0000-000-0000-000000/resourceGroups/test/providers/Microsoft.OperationalInsights/workspaces/test-logs",
];
const metricsNamespace = "Microsoft.OperationalInsights/workspaces";
const metricNames = ["Heartbeat"];
const endpoint = "https://westus3.metrics.monitor.azure.com";
const credential = new DefaultAzureCredential();
const metricsClient = new MetricsClient(endpoint, credential);
const endTime = new Date();
const startTime = new Date(endTime.getTime() - 60 * 60 * 1000); // 1 hour ago
const result = await metricsClient.queryResources(resourceIds, metricNames, metricsNamespace, {
aggregation: "Count,Average", // Multiple aggregations
startTime: startTime,
endTime: endTime,
interval: Durations.fiveMinutes,
top: 10, // Limit results
orderBy: "count desc", // Sort by count descending
filter: "Computer eq '*'", // Filter criteria
});
console.log(`Retrieved ${result.length} resources with advanced filtering`);
for (const resource of result) {
for (const metric of resource.metrics) {
console.log(`Metric: ${metric.name}`);
console.log(`Time series count: ${metric.timeseries.length}`);
}
}
Para obtener un inventario de las métricas y dimensiones disponibles para cada tipo de recurso de Azure, consulte Métricas admitidas con Azure Monitor.
Solución de problemas
Para diagnosticar varios escenarios de error, consulte la guía de solución de problemas.
Pasos siguientes
Para más información sobre Azure Monitor, consulte la documentación del servicio Azure Monitor.
Contribución
Si desea contribuir a esta biblioteca, lea la guía de contribución de para obtener más información sobre cómo compilar y probar el código.
Las pruebas de este módulo son una combinación de pruebas dinámicas y unitarias, que requieren que tenga una instancia de Azure Monitor. Para ejecutar las pruebas, deberá ejecutar:
rush updaterush build -t @azure/monitor-query-metricscd into sdk/monitor/monitor-query-metrics- Copie el
sample.envarchivo en.env - Abra el
.envarchivo en un editor y rellene los valores. -
npm run test.
Para obtener más detalles, consulte nuestra carpeta de pruebas .
Proyectos relacionados
Azure SDK for JavaScript