Delen via


Azure Monitor Query Metrics-clientbibliotheek voor JavaScript - versie 1.0.0

De clientbibliotheek van Azure Monitor Query Metrics wordt gebruikt om alleen-lezen query's uit te voeren op het gegevensplatform van Azure Monitor:

  • Metrische gegevens : verzamelt numerieke gegevens van bewaakte bronnen in een tijdreeksdatabase. Metrische gegevens zijn numerieke waarden die regelmatig worden verzameld en een bepaald aspect van een systeem op een bepaald tijdstip beschrijven. Metrische gegevens zijn lichtgewicht en kunnen bijna realtime scenario's ondersteunen, waardoor ze handig zijn voor waarschuwingen en snelle detectie van problemen.

Migreren van @azure/monitor-query advies ⚠️

Bekijk de migratiehandleiding voor gedetailleerde instructies over het bijwerken van uw applicatiecode van het oorspronkelijke @azure/monitor-query pakket naar de @azure/monitor-query-metrics bibliotheek.

Bronnen:

Aan de slag

Ondersteunde omgevingen

Zie ons ondersteuningsbeleid voor meer informatie.

Vereiste voorwaarden

Installeer het pakket

Installeer de Azure Monitor Query Metrics-clientbibliotheek voor JavaScript met npm:

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

De client maken

Een geverifieerde client is vereist om query's uit te voeren op metrische gegevens. Voor verificatie wordt in het volgende voorbeeld DefaultAzureCredential uit het pakket @azure/identity gebruikt.

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

Client configureren voor onafhankelijke Azure-cloud

De clients van de bibliotheek zijn standaard geconfigureerd voor het gebruik van de openbare Azure-cloud. Als u in plaats daarvan een onafhankelijke cloud wilt gebruiken, geeft u het juiste eindpunt en de doelgroepwaarde op bij het instantiëren van een client. Voorbeeld:

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

De query uitvoeren

Zie de sectie Voorbeelden voor voorbeelden van metrische query's.

Belangrijke concepten

Gegevensstructuur voor metrische gegevens

Elke set met metrische waarden is een tijdreeks met de volgende kenmerken:

  • Het tijdstip waarop de waarde is verzameld
  • De resource die is gekoppeld aan de waarde
  • Een naamruimte die fungeert als een categorie voor de metrische waarde
  • Een metrische naam
  • De waarde zelf
  • Sommige metrische gegevens hebben meerdere dimensies, zoals beschreven in multidimensionale metrische gegevens. Aangepaste metrische gegevens kunnen maximaal 10 dimensies hebben.

Voorbeelden

Query voor metrische gegevens

Als u metrische gegevens voor een of meer Azure-resources wilt opvragen, gebruikt u de queryResources methode .MetricsClient Voor deze methode is een regionaal eindpunt vereist bij het maken van de client. Bijvoorbeeld: https://westus3.metrics.monitor.azure.com.

Elke Azure-resource moet zich bevinden in:

  • Dezelfde regio als het eindpunt dat is opgegeven bij het maken van de client.
  • Hetzelfde Azure-abonnement.

De resource-id's moeten de resources zijn waarvoor metrische gegevens worden opgevraagd. Het is normaal gesproken van het formaat /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>.

De resource-ID/URI vinden:

  1. Navigeer naar de pagina van uw resource in Azure Portal.
  2. Selecteer de JSON-weergavekoppeling in de sectie Overzicht .
  3. Kopieer de waarde in het tekstvak Resource-id boven aan de JSON-weergave.

Bovendien:

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

Queryantwoord voor metrische gegevens verwerken

De query-API voor metrische gegevens retourneert een lijst met MetricsQueryResult objecten. Het MetricsQueryResult object bevat eigenschappen zoals een lijst met Metric-getypte objecten, granularity, namespace, en timespan. De Metric objectenlijst kan worden geopend met behulp van de metrics eigenschap. Elk Metric object in deze lijst bevat een lijst met TimeSeriesElement objecten. Elk TimeSeriesElement object bevat data en metadatavalues eigenschappen. In visuele vorm lijkt de objecthiërarchie van het antwoord op de volgende structuur:

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)

Notitie: Elk MetricsQueryResult wordt geretourneerd in dezelfde volgorde als de corresponderende resource in de resourceIds parameter. Als er meerdere verschillende metrische gegevens worden opgevraagd, worden de metrische gegevens geretourneerd in de volgorde van verzonden metricNames .

Voorbeeld van afhandelingsreactie:

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

Zie Ondersteunde metrische gegevens met Azure Monitor voor een inventaris van metrische gegevens en dimensies die beschikbaar zijn voor elk Azure-resourcetype.

Probleemoplossingsproces

Zie de handleiding voor het oplossen van problemen om verschillende foutscenario's te diagnosticeren.

Volgende stappen

Zie de documentatie van de Azure Monitor-service voor meer informatie over Azure Monitor.

Bijdragen

Als u een bijdrage wilt leveren aan deze bibliotheek, leest u de gids voor bijdragen voor meer informatie over het bouwen en testen van de code.

De tests van deze module zijn een combinatie van live- en eenheidstests, waarvoor u een Azure Monitor-exemplaar moet hebben. Als u de tests wilt uitvoeren, moet u het volgende uitvoeren:

  1. rush update
  2. rush build -t @azure/monitor-query-metrics
  3. cd into sdk/monitor/monitor-query-metrics
  4. Kopieer het sample.env bestand naar .env
  5. Open het .env bestand in een editor en vul de waarden in.
  6. npm run test.

Bekijk voor meer informatie onze testmap.