Bagikan melalui


Pustaka klien Metrik Kueri Azure Monitor untuk JavaScript - versi 1.0.0

Pustaka klien Metrik Kueri Azure Monitor digunakan untuk menjalankan kueri baca-saja terhadap platform data metrik Azure Monitor:

  • Metrik - Mengumpulkan data numerik dari sumber daya yang dipantau ke dalam database deret waktu. Metrik adalah nilai numerik yang dikumpulkan secara berkala dan menggambarkan beberapa aspek sistem pada waktu tertentu. Metrik ringan dan mampu mendukung skenario mendekati real-time, membuatnya berguna untuk memperingatkan dan mendeteksi masalah dengan cepat.

Bermigrasi dari @azure/monitor-query penasihat ⚠️

Lihat Panduan Migrasi untuk petunjuk terperinci tentang cara memperbarui kode aplikasi Anda dari paket asli @azure/monitor-query ke @azure/monitor-query-metrics pustaka.

Sumber daya:

Memulai Langkah Pertama

Lingkungan yang didukung

Untuk informasi selengkapnya, lihat kebijakan dukungan kami.

Prasyarat

  • langganan Azure
  • Implementasi TokenCredential, seperti jenis kredensial pustaka Azure Identity .
  • Untuk mengkueri Metrik, Anda memerlukan sumber daya Azure dalam bentuk apa pun (Akun Penyimpanan, Key Vault, Cosmos DB, dll.).

Pasang paketnya

Instal pustaka klien Metrik Kueri Azure Monitor untuk JavaScript dengan npm:

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

Membuat klien

Klien yang diautentikasi diperlukan untuk mengkueri Metrik. Untuk mengautentikasi, contoh berikut menggunakan DefaultAzureCredential dari paket @azure/identitas .

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

Mengonfigurasi klien untuk azure sovereign cloud

Secara default, klien pustaka dikonfigurasi untuk menggunakan Azure Public Cloud. Untuk menggunakan sovereign cloud, berikan nilai titik akhir dan audiens yang benar saat membuat instans klien. Contohnya:

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

Menjalankan kueri

Untuk contoh kueri Metrik, lihat bagian Contoh .

Konsep utama

Struktur data metrik

Setiap set nilai metrik adalah rangkaian waktu dengan karakteristik berikut:

  • Waktu nilai dikumpulkan
  • Sumber daya yang terkait dengan nilai
  • Namespace layanan yang bertindak seperti kategori untuk metrik
  • Nama metrik
  • Nilai itu sendiri
  • Beberapa metrik memiliki beberapa dimensi seperti yang dijelaskan dalam metrik multi-dimensi. Metrik kustom dapat memiliki hingga 10 dimensi.

Contoh

Kueri metrik

Untuk mengkueri metrik untuk satu atau beberapa sumber daya Azure, gunakan queryResources metode MetricsClient. Metode ini memerlukan titik akhir regional saat membuat klien. Contohnya, https://westus3.metrics.monitor.azure.com.

Setiap sumber daya Azure harus berada di:

  • Wilayah yang sama dengan titik akhir yang ditentukan saat membuat klien.
  • Langganan Azure yang sama.

ID sumber daya harus berupa sumber daya yang metriknya sedang dikueri. Ini biasanya dari format /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>.

Untuk menemukan ID/URI sumber daya:

  1. Navigasi ke halaman sumber daya Anda di portal Microsoft Azure.
  2. Pilih tautan JSON View di bagian Gambaran Umum .
  3. Salin nilai di kotak teks ID Sumber Daya di bagian atas tampilan JSON.

Selanjutnya:

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

Menangani respons kueri metrik

API kueri metrik mengembalikan daftar MetricsQueryResult objek. Objek berisi MetricsQueryResult properti seperti daftar Metricobjek -typed, granularity, namespace, dan timespan. Metric Daftar objek dapat diakses menggunakan metrics properti. Setiap Metric objek dalam daftar ini berisi daftar TimeSeriesElement objek. Setiap TimeSeriesElement objek berisi data dan metadatavalues properti. Dalam bentuk visual, hierarki objek respons menyerupai struktur berikut:

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)

Nota: Masing-masing MetricsQueryResult dikembalikan dalam urutan yang sama dengan sumber daya yang sesuai dalam resourceIds parameter. Jika beberapa metrik berbeda dikueri, metrik dikembalikan dalam urutan pengiriman metricNames .

Contoh respons penanganan:

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

Untuk inventaris metrik dan dimensi yang tersedia untuk setiap jenis sumber daya Azure, lihat Metrik yang didukung dengan Azure Monitor.

Penyelesaian Masalah

Untuk mendiagnosis berbagai skenario kegagalan, lihat panduan pemecahan masalah.

Langkah selanjutnya

Untuk mempelajari selengkapnya tentang Azure Monitor, lihat dokumentasi layanan Azure Monitor.

Berpartisipasi

Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.

Pengujian modul ini adalah campuran pengujian langsung dan unit, yang mengharuskan Anda memiliki instans Azure Monitor. Untuk menjalankan pengujian, Anda harus menjalankan:

  1. rush update
  2. rush build -t @azure/monitor-query-metrics
  3. cd into sdk/monitor/monitor-query-metrics
  4. Salin sample.env file ke .env
  5. Buka .env file di editor dan isi nilainya.
  6. npm run test.

Untuk detail selengkapnya, lihat folder pengujian kami.