Megosztás a következőn keresztül:


Azure Monitor Query Metrics JavaScript-ügyféloldali kódtár – 1.0.0-s verzió

A Azure Monitor Query Metrics ügyféloldali kódtár csak olvasható lekérdezések végrehajtására szolgál a Azure Monitor metrikák adatplatformján:

  • Metrikák – Numerikus adatokat gyűjt a figyelt erőforrásokból egy idősorozat-adatbázisba. A metrikák olyan numerikus értékek, amelyeket rendszeres időközönként gyűjtünk össze, és egy rendszer bizonyos aspektusát ismertetjük egy adott időpontban. A metrikák könnyűek, és képesek támogatni a közel valós idejű forgatókönyveket, így hasznosak a riasztásokhoz és a problémák gyors észleléséhez.

Áttérés tanácsadói programból @azure/monitor-query⚠️

Az Áttelepítési útmutatóban részletes útmutatást talál arról, hogyan frissítheti az alkalmazáskódot az eredeti @azure/monitor-query csomagról a könyvtárba @azure/monitor-query-metrics .

Erőforrások:

Kezdő lépések

Támogatott környezetek

További információért tekintse meg támogatási szabályzatunkat.

Előfeltételek

A csomag telepítése

Telepítse a Azure Monitor Query Metrics JavaScript-ügyféloldali kódtárát npm:

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

Az ügyfél létrehozása

A metrikák lekérdezéséhez hitelesített ügyfélre van szükség. A hitelesítéshez az alábbi példa a @azure/identity csomag DefaultAzureCredential értékét használja.

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

Ügyfél konfigurálása az Azure szuverén felhőhöz

Alapértelmezés szerint a kódtár ügyfelei az Azure nyilvános felhő használatára vannak konfigurálva. Ha ehelyett szuverén felhőt szeretne használni, adja meg a megfelelő végpontot és célközönség értékét az ügyfél példányosításakor. Például:

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

Hajtsa végre a lekérdezést

A metrikalekérdezésekre vonatkozó példákért tekintse meg a Példák szakaszt.

Főbb fogalmak

Metrikák adatszerkezete

A metrikaértékek minden halmaza egy idősor, amely a következő jellemzőkkel rendelkezik:

  • Az érték begyűjtésének időpontja
  • Az értékhez társított erőforrás
  • A metrika kategóriájaként működő névtér
  • Metrika neve
  • Maga az érték
  • Egyes mutatók több dimenzióval rendelkeznek a többdimenziós metrikákban leírtak szerint. Az egyéni mutatók legfeljebb 10 dimenzióból állhatnak.

Példák

Metrikák lekérdezése

Egy vagy több Azure-erőforrás metrikáinak lekérdezéséhez használja a queryResourcesMetricsClient. Ehhez a metódushoz regionális végpontra van szükség az ügyfél létrehozásakor. Például: https://westus3.metrics.monitor.azure.com.

Minden Azure-erőforrásnak a következő helyen kell lennie:

  • Ugyanaz a régió, mint az ügyfél létrehozásakor megadott végpont.
  • Ugyanaz az Azure-előfizetés.

Az erőforrás-azonosítóknak azoknak az erőforrásoknak kell lenniük, amelyekhez a metrikákat lekérdezi. Általában a formátum /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>.

Az erőforrás-azonosító/URI megkeresése:

  1. Lépjen az erőforrás oldalára a Azure Portal.
  2. Válassza a JSON-nézet hivatkozást az Áttekintés szakaszban.
  3. Másolja ki az értéket a JSON-nézet tetején található Erőforrás-azonosító szövegmezőben.

Továbbá:

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

Metrikák lekérdezési válaszának kezelése

A metrikák lekérdezési API objektumok listáját MetricsQueryResult adja vissza. Az MetricsQueryResult objektum olyan tulajdonságokat tartalmaz, mint a -typed objektumok listája Metric, granularity, namespace, és timespan. Az Metric objektumok listája a metrics tulajdonság segítségével érhető el. A listában szereplő minden Metric objektum tartalmazza az objektumok listáját TimeSeriesElement . Minden TimeSeriesElement objektum tartalmazza data a tulajdonságokat metadatavalues . Vizuális formában a válasz objektumhierarchiája a következő struktúrához hasonlít:

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)

Jegyzet: Mindegyiket MetricsQueryResult a paraméter megfelelő erőforrásával resourceIds megegyező sorrendben adja vissza. Ha több különböző metrikát kérdez le, a rendszer az elküldés sorrendjében metricNames adja vissza a metrikákat.

Példa a válasz kezelésére:

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

Az egyes Azure-erőforrástípusokhoz elérhető metrikák és dimenziók leltárát lásd: Támogatott metrikák a Azure Monitor.

Hibaelhárítás

A különböző hibaforgatókönyvek diagnosztizálásához tekintse meg a hibaelhárítási útmutatót.

Következő lépések

További információ a Azure Monitor: Azure Monitor szolgáltatás dokumentációja.

Közreműködés

Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót, amelyből többet is megtudhat a kód összeállításáról és teszteléséről.

Ennek a modulnak a tesztjei élő és egységtesztek keverékei, amelyekhez Azure Monitor-példányra van szükség. A tesztek végrehajtásához a következőt kell futtatnia:

  1. rush update
  2. rush build -t @azure/monitor-query-metrics
  3. cd into sdk/monitor/monitor-query-metrics
  4. Másolja a fájlt sample.env a .env
  5. Nyissa meg a fájlt .env egy szerkesztőben, és töltse ki az értékeket.
  6. npm run test.

További részletekért tekintse meg a tesztek mappát.