Partager via


Bibliothèque cliente Azure Monitor Query Metrics pour JavaScript - version 1.0.0

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 :

Mise en route

Environnements pris en charge

Pour plus d’informations, consultez notre politique d’assistance.

Conditions préalables

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 :

  1. Accédez à la page de votre ressource dans le portail Azure.
  2. Sélectionnez le lien Vue JSON dans la section Vue d’ensemble .
  3. Copiez la valeur dans la zone de texte ID de ressource en haut de la vue JSON.

En outre:

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 :

  1. rush update
  2. rush build -t @azure/monitor-query-metrics
  3. cd into sdk/monitor/monitor-query-metrics
  4. Copiez le sample.env fichier dans .env
  5. Ouvrez le .env fichier dans un éditeur et remplissez les valeurs.
  6. npm run test.

Pour plus de détails, consultez notre dossier de tests .