Freigeben über


Azure Monitor-Clientbibliothek für Abfragemetriken für JavaScript – Version 1.0.0

Die Azure Monitor-Clientbibliothek für Abfragemetriken wird zum Ausführen schreibgeschützter Abfragen für die Metrikdatenplattform von Azure Monitor verwendet:

  • Metriken : Sammelt numerische Daten von überwachten Ressourcen in einer Zeitreihendatenbank. Metriken sind numerische Werte, die in regelmäßigen Abständen erfasst werden und einen Aspekt eines Systems zu einem bestimmten Zeitpunkt beschreiben. Metriken sind leicht und in der Lage, nahezu echtzeitbasierte Szenarien zu unterstützen, sodass sie nützlich sind, um Probleme zu warnen und schnell zu erkennen.

Migrieren von @azure/monitor-query Advisory ⚠️

Im Migrationshandbuch finden Sie detaillierte Anweisungen, wie Sie Ihren Anwendungscode vom Originalpaket @azure/monitor-query in die @azure/monitor-query-metrics Bibliothek aktualisieren können.

Ressourcen:

Erste Schritte

Unterstützte Umgebungen

Weitere Informationen finden Sie in unserer Supportrichtlinie.

Voraussetzungen

Installiere das Paket

Installieren Sie die Azure Monitor-Clientbibliothek für Abfragemetriken für JavaScript mit npm:

npm install --save @azure/monitor-query-metrics

Erstellen des Clients

Für die Abfrage von Metriken ist ein authentifizierter Client erforderlich. Für die Authentifizierung wird im folgenden Beispiel DefaultAzureCredential aus dem @azure/identity-Paket verwendet.

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);

Konfigurieren des Clients für die souveräne Azure-Cloud

Standardmäßig sind die Clients der Bibliothek für die Verwendung der öffentlichen Azure-Cloud konfiguriert. Um stattdessen eine souveräne Cloud zu verwenden, stellen Sie beim Instanziieren eines Clients den richtigen Endpunkt- und Zielgruppenwert bereit. Beispiel:

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",
});

Ausführen der Abfrage

Beispiele für Metrikabfragen finden Sie im Abschnitt Beispiele .

Wichtige Begriffe

Metrikdatenstruktur

Jeder Satz von Metrikwerten ist eine Zeitreihe mit den folgenden Merkmalen:

  • Der Zeitpunkt, zu dem der Wert erfasst wurde
  • Die Ressource, die dem Wert zugeordnet ist
  • Ein Namespace, der wie eine Kategorie für die Metrik fungiert
  • Ein Metrikname
  • Der Wert selbst
  • Einige Metriken weisen mehrere Dimensionen auf, wie in mehrdimensionalen Metriken beschrieben. Benutzerdefinierte Metriken können bis zu 10 Dimensionen aufweisen.

Beispiele

Metrikabfrage

Verwenden Sie zum Abfragen von Metriken für eine oder mehrere Azure-Ressourcen die queryResources Methode von MetricsClient. Für diese Methode ist beim Erstellen des Clients ein regionaler Endpunkt erforderlich. Beispiel: https://westus3.metrics.monitor.azure.com.

Jede Azure-Ressource muss sich in:

  • Derselbe Bereich wie der Endpunkt, der beim Erstellen des Clients angegeben wurde.
  • Dasselbe Azure-Abonnement.

Die Ressourcen-IDs müssen die der Ressourcen sein, für die Metriken abgefragt werden. Es hat normalerweise das Format /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>.

So suchen Sie die Ressourcen-ID/den URI:

  1. Navigieren Sie im Azure-Portal zur Seite Ihrer Ressource.
  2. Wählen Sie im Abschnitt Übersicht den Link JSON View aus.
  3. Kopieren Sie den Wert in das Textfeld Ressourcen-ID oben in der JSON-Ansicht.

Außerdem:

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}`);
}

Behandeln der Abfrageantwort für Metriken

Die Metrikabfrage-API gibt eine Liste von MetricsQueryResult Objekten zurück. Das MetricsQueryResult Objekt enthält Eigenschaften, z. B. eine Liste von Metric-typisierten Objekten, granularity, namespaceund timespan. Die Metric Objektliste kann über die metrics Eigenschaft aufgerufen werden. Jedes Metric Objekt in dieser Liste enthält eine Liste von TimeSeriesElement Objekten. Jedes TimeSeriesElement Objekt enthält und metadatavalues Eigenschaftendata. In visueller Form ähnelt die Objekthierarchie der Antwort der folgenden Struktur:

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)

Anmerkung: Jede MetricsQueryResult Ressource wird in der gleichen Reihenfolge wie die entsprechende Ressource im resourceIds Parameter zurückgegeben. Wenn mehrere verschiedene Metriken abgefragt werden, werden die Metriken in der Reihenfolge des metricNames Sendens zurückgegeben.

Beispiel für die Behandlung der Antwort:

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}`);
  }
}

Eine Bestandsaufnahme der Metriken und Dimensionen, die für jeden Azure-Ressourcentyp verfügbar sind, finden Sie unter Unterstützte Metriken mit Azure Monitor.

Problembehandlung

Informationen zum Diagnostizieren verschiedener Fehlerszenarien finden Sie im Leitfaden zur Problembehandlung.

Nächste Schritte

Weitere Informationen zu Azure Monitor finden Sie in der Dokumentation zum Azure Monitor-Dienst.

Mitarbeit

Wenn Sie an dieser Bibliothek mitwirken möchten, lesen Sie bitte den mitwirkenden Leitfaden, um mehr über das Erstellen und Testen des Codes zu erfahren.

Die Tests dieses Moduls sind eine Mischung aus Live- und Komponententests, die erfordern, dass Sie über eine Azure Monitor-Instanz verfügen. Um die Tests auszuführen, müssen Sie Folgendes ausführen:

  1. rush update
  2. rush build -t @azure/monitor-query-metrics
  3. cd into sdk/monitor/monitor-query-metrics
  4. Kopieren Sie die sample.env Datei nach .env
  5. Öffnen Sie die .env Datei in einem Editor und geben Sie die Werte ein.
  6. npm run test.

Weitere Informationen finden Sie in unserem Testordner .