Aracılığıyla paylaş


JavaScript için Azure İzleyici Sorgu Ölçümleri istemci kitaplığı - sürüm 1.0.0

Azure İzleyici Sorgu Ölçümleri istemci kitaplığı, Azure İzleyici'nin ölçüm veri platformunda salt okunur sorgular yürütmek için kullanılır:

  • Ölçümler - İzlenen kaynaklardan sayısal verileri bir zaman serisi veritabanına toplar. Ölçümler, düzenli aralıklarla toplanan ve belirli bir zamanda sistemin bazı yönlerini açıklayan sayısal değerlerdir. Ölçümler basittir ve neredeyse gerçek zamanlı senaryoları destekleyerek sorunları uyarmak ve hızlı algılamak için kullanışlı hale getirir.

Danışma belgesinden @azure/monitor-query⚠geçiş ️

Uygulama kodunuzu orijinal paketten kitaplığa nasıl güncelleyeceğinizle ilgili ayrıntılı yönergeler için @azure/monitor-query@azure/monitor-query-metrics göz atın.

Kaynaklar:

Başlangıç Yapmak

Desteklenen ortamlar

Daha fazla bilgi için destek politikamıza bakın.

Önkoşullar

Paketi yükle

npm ile JavaScript için Azure İzleyici Sorgu Ölçümleri istemci kitaplığını yükleyin:

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

İstemciyi oluşturma

Ölçümleri sorgulamak için kimliği doğrulanmış bir istemci gereklidir. Kimlik doğrulaması için aşağıdaki örnek, @azure/identity paketinden DefaultAzureCredential kullanır.

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

Azure bağımsız bulutu için istemci yapılandırma

Varsayılan olarak, kitaplığın istemcileri Azure Genel Bulutu kullanacak şekilde yapılandırılır. Bunun yerine bağımsız bir bulut kullanmak için, istemci örneği oluştururken doğru uç nokta ve hedef kitle değerini sağlayın. Örneğin:

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

Sorguyu yürütme

Ölçüm sorgularının örnekleri için Örnekler bölümüne bakın.

Temel kavramlar

Ölçümler veri yapısı

Her ölçüm değeri kümesi, aşağıdaki özelliklere sahip bir zaman serisidir:

  • Değerin toplandığı saat
  • Değerle ilişkilendirilmiş kaynak
  • Ölçüm için bir kategori gibi davranan bir ad alanı
  • Ölçüm adı
  • Değerin kendisi
  • Bazı ölçümlerin çok boyutlu ölçümlerde açıklandığı gibi birden çok boyutu vardır. Özel ölçümler en fazla 10 boyuta sahip olabilir.

Örnekler

Ölçümler sorgusu

Bir veya daha fazla Azure kaynağının ölçümlerini queryResources sorgulamak için yöntemini MetricsClientkullanın. Bu yöntem, istemciyi oluştururken bölgesel bir uç nokta gerektirir. Örneğin, https://westus3.metrics.monitor.azure.com.

Her Azure kaynağının şu durumlarda bulunması gerekir:

  • İstemci oluşturulurken belirtilen uç noktayla aynı bölge.
  • Aynı Azure aboneliği.

Kaynak kimlikleri, ölçümlerin sorgulandığı kaynakların kimlikleri olmalıdır. Normalde şu formattadır /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>: .

Kaynak kimliğini/URI'sini bulmak için:

  1. Azure portalında kaynağınızın sayfasına gidin.
  2. Genel Bakış bölümündeki JSON Görünümü bağlantısını seçin.
  3. JSON görünümünün üst kısmındaki Kaynak Kimliği metin kutusundaki değeri kopyalayın.

Ayrıca:

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

Ölçüm sorgu yanıtını işleme

Ölçüm sorgu API'si MetricsQueryResult bir nesne listesi döndürür. Nesne MetricsQueryResult , -typed nesnelerin listesi Metric, granularity, namespace, ve timespangibi özellikler içerir. Nesne Metric listesine özellik kullanılarak metrics erişilebilir. Bu listedeki her Metric nesne bir nesne listesi TimeSeriesElement içerir. Her TimeSeriesElement nesne ve metadatavalues özelliklerini içerirdata. Görsel biçimde, yanıtın nesne hiyerarşisi aşağıdaki yapıya benzer:

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)

Not: Her MetricsQueryResult biri, parametredeki resourceIds karşılık gelen kaynakla aynı sırada döndürülür. Birden çok farklı ölçüm sorgulanırsa, ölçümler gönderildiği metricNames sıraya göre döndürülür.

Yanıtı işleme örneği:

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

Her Azure kaynak türü için kullanılabilen ölçümlerin ve boyutların envanteri için bkz.

Sorun giderme

Çeşitli arıza senaryolarını tanılamak için sorun giderme kılavuzuna bakın.

Sonraki Adımlar

Azure İzleyici hakkında daha fazla bilgi edinmek için Azure İzleyici hizmet belgelerine bakın.

Katkıda Bulunmak

Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.

Bu modülün testleri, bir Azure İzleyici örneğine sahip olmanız gereken canlı ve birim testlerinin bir karışımıdır. Testleri yürütmek için şunları çalıştırmanız gerekir:

  1. rush update
  2. rush build -t @azure/monitor-query-metrics
  3. cd into sdk/monitor/monitor-query-metrics
  4. Dosyayı şuraya kopyalayın:sample.env.env
  5. .env Dosyayı bir düzenleyicide açın ve değerleri doldurun.
  6. npm run test.

Daha fazla ayrıntı için testler dosyamıza bakın.