Sdílet prostřednictvím


Klientská knihovna metrik dotazů služby Azure Monitor pro JavaScript – verze 1.0.0

Klientská knihovna metrik dotazů služby Azure Monitor se používá ke spouštění dotazů jen pro čtení na datovou platformu metrik služby Azure Monitor:

  • Metriky – Shromažďuje číselná data z monitorovaných prostředků do databáze časových řad. Metriky jsou číselné hodnoty, které se shromažďují v pravidelných intervalech a popisují určité aspekty systému v určitém okamžiku. Metriky jsou jednoduché a schopné podporovat scénáře téměř v reálném čase, což je užitečné pro upozorňování a rychlé zjišťování problémů.

Migrace z @azure/monitor-query poradenství ⚠️

Podrobné pokyny k aktualizaci kódu aplikace z původního balíčku do @azure/monitor-query knihovny najdete v @azure/monitor-query-metrics.

Prostředky:

Začínáme

Podporovaná prostředí

Další informace naleznete v našich zásadách podpory.

Požadavky

Nainstalujte balíček

Nainstalujte klientskou knihovnu Azure Monitor Query Metrics pro JavaScript pomocí npm:

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

Vytvoření klienta

K dotazování na metriky se vyžaduje ověřený klient. K ověření používá následující příklad DefaultAzureCredential z balíčku @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);

Konfigurace klienta pro suverénní cloud Azure

Ve výchozím nastavení jsou klienti knihovny nakonfigurovaní tak, aby používali veřejný cloud Azure. Pokud chcete místo toho použít suverénní cloud, při vytváření instance klienta zadejte správnou hodnotu koncového bodu a cílové skupiny. Například:

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

Spusťte dotaz.

Příklady dotazů na metriky najdete v části Příklady .

Klíčové koncepty

Datová struktura metrik

Každá sada hodnot metriky je časová řada s následujícími charakteristikami:

  • Čas, kdy byla hodnota shromážděna
  • Prostředek přidružený k hodnotě
  • Obor názvů, který funguje jako kategorie pro metriku
  • Název metriky
  • Samotná hodnota
  • Některé metriky mají více dimenzí, jak je popsáno v multidimenzionálních metrikách. Vlastní metriky můžou mít až 10 dimenzí.

Příklady

Dotaz metrik

Chcete-li se dotazovat na metriky pro jeden nebo více prostředků Azure, použijte queryResources metodu MetricsClient. Tato metoda vyžaduje při vytváření klienta místní koncový bod. Například: https://westus3.metrics.monitor.azure.com.

Každý prostředek Azure se musí nacházet:

  • Stejná oblast jako koncový bod zadaný při vytváření klienta.
  • Stejné předplatné Azure.

ID prostředků musí odpovídat prostředkům, na které se metriky dotazují. Obvykle je formátu /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>.

Vyhledání ID/URI prostředku:

  1. Na webu Azure Portal přejděte na stránku vašeho prostředku.
  2. Vyberte odkaz Zobrazení JSON v části Přehled .
  3. Zkopírujte hodnotu do textového pole ID prostředku v horní části zobrazení JSON.

Mimoto:

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

Zpracování odpovědi dotazu na metriky

Rozhraní API pro dotazy na metriky vrací seznam MetricsQueryResult objektů. Objekt MetricsQueryResult obsahuje vlastnosti, jako je seznam Metrictypovaných objektů, granularity, namespacea timespan. K Metric seznamu objektů lze přistupovat pomocí metrics této vlastnosti. Každý Metric objekt v tomto seznamu obsahuje seznam TimeSeriesElement objektů. Každý TimeSeriesElement objekt obsahuje data a metadatavalues vlastnosti. Ve vizuální podobě se hierarchie objektů odpovědi podobá následující struktuře:

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)

Poznámka: Každý z nich MetricsQueryResult se vrátí ve stejném pořadí jako odpovídající prostředek v parametru resourceIds . Pokud je dotazováno více různých metrik, metriky se vrátí v pořadí, v jakém byly odeslány metricNames .

Příklad zpracování odpovědi:

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

Seznam metrik a dimenzí dostupných pro každý typ prostředku Azure najdete v tématu Podporované metriky ve službě Azure Monitor.

Řešení problémů

Chcete-li diagnostikovat různé scénáře selhání, přečtěte si průvodce odstraňováním problémů.

Další kroky

Další informace o službě Azure Monitor najdete v dokumentaci ke službě Azure Monitor.

Přispění

Pokud chcete přispívat do této knihovny, přečtěte si průvodce přispívání a přečtěte si další informace o vytváření a testování kódu.

Testy tohoto modulu jsou kombinací živých testů a testů jednotek, které vyžadují, abyste měli instanci služby Azure Monitor. Pokud chcete testy spustit, budete muset spustit:

  1. rush update
  2. rush build -t @azure/monitor-query-metrics
  3. cd into sdk/monitor/monitor-query-metrics
  4. Zkopírujte sample.env soubor do složky .env
  5. Otevřete soubor v editoru .env a vyplňte hodnoty.
  6. npm run test.

Pro více informací si prohlédněte naši složku tests .