Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
La bibliothèque cliente Azure Monitor Query Metrics est utilisée pour exécuter des requêtes en lecture seule sur la plateforme de données de métriques d’Azure Monitor :
- Métriques : collecte des données numériques à partir des ressources surveillées dans une base de données de séries chronologiques. Les métriques sont des valeurs numériques collectées à intervalles réguliers et qui décrivent un certain aspect d’un système à un moment donné. Les métriques sont légères et capables de prendre en charge des scénarios en temps quasi réel, ce qui les rend utiles pour les alertes et la détection rapide des problèmes.
Migration à partir de l’avis @azure/monitor-query⚠️
Consultez le Guide de migration pour obtenir des instructions détaillées sur la mise à jour du code de votre application du package d’origine @azure/monitor-query vers la @azure/monitor-query-metrics bibliothèque.
Ressources :
- code source
- Paquet (npm)
- Documentation de référence de l’API
- Documentation de service
- Échantillons
- Historique des modifications
Mise en route
Environnements pris en charge
- Versions LTS de Node.js
- Dernières versions de Safari, Chrome, Microsoft Edge et Firefox
Pour plus d’informations, consultez notre politique d’assistance.
Conditions préalables
- Un abonnement Azure
- Une implémentation TokenCredential, par exemple un type d’informations d'identification de la bibliothèque d’identités Azure.
- Pour interroger des métriques, vous avez besoin d’une ressource Azure de tout type (compte de stockage, coffre de clés, Cosmos DB, etc.).
Installer le package
Installez la bibliothèque cliente Azure Monitor Query Metrics pour JavaScript avec npm :
npm install --save @azure/monitor-query-metrics
Créer le client
Un client authentifié est requis pour interroger les métriques. Pour s’authentifier, l’exemple suivant utilise DefaultAzureCredential à partir du package @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);
Configurer le client pour le cloud souverain Azure
Par défaut, les clients de la bibliothèque sont configurés pour utiliser le cloud public Azure. Pour utiliser un cloud souverain à la place, fournissez le point de terminaison et la valeur d’audience appropriés lors de l’instanciation d’un client. Par exemple:
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",
});
Exécuter la requête
Pour obtenir des exemples de requêtes de métriques, consultez la section Exemples .
Concepts clés
Structure des données de métriques
Chaque ensemble de valeurs de métriques est une série chronologique avec les caractéristiques suivantes :
- Heure à laquelle la valeur a été collectée
- Ressource associée à la valeur
- Espace de noms qui agit comme une catégorie pour la métrique
- Nom d’une métrique
- Valeur elle-même
- Certaines métriques ont plusieurs dimensions, comme décrit dans les métriques multidimensionnelles. Les métriques personnalisées peuvent avoir jusqu’à 10 dimensions.
Exemples
Requête de métriques
Pour interroger les métriques d’une ou de plusieurs ressources Azure, utilisez la queryResources méthode .MetricsClient Cette méthode nécessite un point de terminaison régional lors de la création du client. Par exemple : https://westus3.metrics.monitor.azure.com.
Chaque ressource Azure doit résider dans :
- La même région que le point de terminaison spécifié lors de la création du client.
- Même abonnement Azure.
Les ID de ressource doivent être ceux des ressources pour lesquelles les métriques sont interrogées. Il s’agit normalement du format /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>.
Pour trouver l’ID/URI de la ressource :
- Accédez à la page de votre ressource dans le portail Azure.
- Sélectionnez le lien Vue JSON dans la section Vue d’ensemble .
- Copiez la valeur dans la zone de texte ID de ressource en haut de la vue JSON.
En outre:
- L’utilisateur doit être autorisé à lire les données de surveillance au niveau de l’abonnement Azure. Par exemple, le rôle Lecteur de surveillance sur l’abonnement à interroger.
- L’espace de noms de métrique contenant les métriques à interroger doit être fourni. Pour obtenir la liste des espaces de noms de métriques, consultez Métriques prises en charge et catégories de journaux par type de ressource.
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}`);
}
Gérer la réponse aux requêtes de métriques
L’API de requête de métriques renvoie une liste d’objets MetricsQueryResult . L’objet MetricsQueryResult contient des propriétés telles qu’une liste d’objets Metrictypés, granularity, namespaceet timespan. La Metric liste des objets est accessible à l’aide de la metrics propriété. Chaque Metric objet de cette liste contient une liste d’objets TimeSeriesElement . Chaque TimeSeriesElement objet contient data des metadatavalues propriétés. Sous forme visuelle, la hiérarchie d’objets de la réponse ressemble à la structure suivante :
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)
Note: Chacun MetricsQueryResult est renvoyé dans le même ordre que la ressource correspondante dans le resourceIds paramètre. Si plusieurs métriques différentes sont interrogées, elles sont renvoyées dans l’ordre dans lequel elles metricNames ont été envoyées.
Exemple de gestion de la réponse :
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}`);
}
}
Pour obtenir un inventaire des métriques et des dimensions disponibles pour chaque type de ressource Azure, consultez Métriques prises en charge avec Azure Monitor.
Résolution des problèmes
Pour diagnostiquer divers scénarios de défaillance, consultez le guide de dépannage.
Étapes suivantes
Pour en savoir plus sur Azure Monitor, consultez la documentation du service Azure Monitor.
Contribuer
Si vous souhaitez contribuer à cette bibliothèque, lisez le guide de contribution pour en savoir plus sur la génération et le test du code.
Les tests de ce module sont un mélange de tests en direct et unitaires, ce qui vous oblige à disposer d’une instance Azure Monitor. Pour exécuter les tests, vous devez exécuter :
rush updaterush build -t @azure/monitor-query-metricscd into sdk/monitor/monitor-query-metrics- Copiez le
sample.envfichier dans.env - Ouvrez le
.envfichier dans un éditeur et remplissez les valeurs. -
npm run test.
Pour plus de détails, consultez notre dossier de tests .
Projets connexes
Azure SDK for JavaScript