Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
- LTS-Versionen von Node.js
- Neueste Versionen von Safari, Chrome, Microsoft Edge und Firefox
Weitere Informationen finden Sie in unserer Supportrichtlinie.
Voraussetzungen
- Ein Azure-Abonnement
- Eine TokenCredential-Implementierung, z. B. ein Anmeldeinformationstyp der Azure Identity-Bibliothek.
- Zum Abfragen von Metriken benötigen Sie eine Azure-Ressource beliebiger Art (Speicherkonto, Key Vault, Cosmos DB usw.).
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:
- Navigieren Sie im Azure-Portal zur Seite Ihrer Ressource.
- Wählen Sie im Abschnitt Übersicht den Link JSON View aus.
- Kopieren Sie den Wert in das Textfeld Ressourcen-ID oben in der JSON-Ansicht.
Außerdem:
- Der Benutzer muss berechtigt sein, Überwachungsdaten auf Azure-Abonnementebene zu lesen. Beispielsweise die Rolle "Überwachungsleser" für das Abonnement, das abgefragt werden soll.
- Der Metriknamespace, der die abzufragten Metriken enthält, muss bereitgestellt werden. Eine Liste der Metrik-Namespaces finden Sie unter Unterstützte Metriken und Protokollkategorien nach Ressourcentyp.
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:
rush updaterush build -t @azure/monitor-query-metricscd into sdk/monitor/monitor-query-metrics- Kopieren Sie die
sample.envDatei nach.env - Öffnen Sie die
.envDatei in einem Editor und geben Sie die Werte ein. -
npm run test.
Weitere Informationen finden Sie in unserem Testordner .
Verwandte Projekte
Azure SDK for JavaScript