Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A biblioteca de clientes de Métricas de Consulta do Azure Monitor é usada para executar consultas somente leitura na plataforma de dados de métricas do Azure Monitor:
- Métricas - Coleta dados numéricos de recursos monitorados em um banco de dados de série temporal. Métricas são valores numéricos que são coletados a intervalos regulares e descrevem algum aspecto de um sistema em um determinado momento. As métricas são leves e capazes de dar suporte a cenários quase em tempo real, tornando-as úteis para alertas e detecção rápida de problemas.
Migrando de @azure/monitor-query consultoria ⚠️
Confira o Guia de migração para obter instruções detalhadas sobre como atualizar o código do aplicativo do pacote original @azure/monitor-query para a @azure/monitor-query-metrics biblioteca.
Recursos
- código-fonte
- Pacote (npm)
- Documentação de referência da API
- Documentação de serviço
- Amostras
- Registro de alterações
Como começar
Ambientes com suporte
- Versões LTS do Node.js
- Versões mais recentes do Safari, Chrome, Microsoft Edge e Firefox
Para obter mais informações, consulte nossa política de suporte.
Pré-requisitos
- Uma assinatura do Azure
- Uma implementação de TokenCredential, como um tipo de credencial de biblioteca de identidade do Azure.
- Para consultar métricas, você precisa de um recurso do Azure de qualquer tipo (Conta de Armazenamento, Cofre de Chaves, Cosmos DB etc.).
Instalar o pacote
Instale a biblioteca de clientes de Métricas de Consulta do Azure Monitor para JavaScript com npm:
npm install --save @azure/monitor-query-metrics
Criar o cliente
Um cliente autenticado é necessário para consultar Métricas. Para autenticar, o exemplo a seguir usa DefaultAzureCredential do pacote @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);
Configurar o cliente para a nuvem soberana do Azure
Por padrão, os clientes da biblioteca são configurados para usar a Nuvem Pública do Azure. Em vez disso, para usar uma nuvem soberana, forneça o ponto de extremidade correto e o valor de audiência ao instanciar um cliente. Por exemplo:
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",
});
Executar a consulta
Para obter exemplos de consultas do Metrics, consulte a seção Exemplos .
Conceitos principais
Estrutura de dados de métricas
Cada conjunto de valores de métrica é uma série temporal com as seguintes características:
- A hora em que o valor foi coletado
- O recurso associado ao valor
- Um namespace que atua como uma categoria para a métrica
- Um nome de métrica
- O valor em si
- Algumas métricas têm várias dimensões, conforme descrito em métricas multidimensionais. As métricas personalizadas podem ter até 10 dimensões.
Exemplos
Consulta de métricas
Para consultar métricas para um ou mais recursos do Azure, use o queryResources método de MetricsClient. Esse método requer um ponto de extremidade regional ao criar o cliente. Por exemplo, https://westus3.metrics.monitor.azure.com.
Cada recurso do Azure deve residir em:
- A mesma região que o ponto de extremidade especificado ao criar o cliente.
- A mesma assinatura do Azure.
As IDs de recurso devem ser as dos recursos para os quais as métricas estão sendo consultadas. Normalmente é do formato /subscriptions/<id>/resourceGroups/<rg-name>/providers/<source>/topics/<resource-name>.
Para localizar a ID/URI do recurso:
- Navegue até a página do recurso no portal do Azure.
- Selecione o link Exibição JSON na seção Visão geral .
- Copie o valor na caixa de texto ID do recurso na parte superior da exibição JSON.
Além disso:
- O usuário deve estar autorizado a ler dados de monitoramento no nível da assinatura do Azure. Por exemplo, a função Leitor de Monitoramento na assinatura a ser consultada.
- O namespace de métrica que contém as métricas a serem consultadas deve ser fornecido. Para obter uma lista de namespaces de métrica, consulte Métricas com suporte e categorias de log por tipo de recurso.
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}`);
}
Lidar com a resposta da consulta de métricas
A API de consulta de métricas retorna uma lista de MetricsQueryResult objetos. O MetricsQueryResult objeto contém propriedades como uma lista de Metricobjetos -typed, granularity, namespacee timespan. A Metric lista de objetos pode ser acessada usando a metrics propriedade. Cada Metric objeto nesta lista contém uma lista de TimeSeriesElement objetos. Cada TimeSeriesElement objeto contém data e metadatavalues propriedades. Na forma visual, a hierarquia de objetos da resposta se assemelha à seguinte estrutura:
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: Cada um MetricsQueryResult é retornado na mesma ordem que o recurso correspondente no resourceIds parâmetro. Se várias métricas diferentes forem consultadas, as métricas serão retornadas na ordem dos metricNames enviados.
Exemplo de resposta de manipulação:
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}`);
}
}
Para obter um inventário de métricas e dimensões disponíveis para cada tipo de recurso do Azure, consulte Métricas com suporte com o Azure Monitor.
Resolução de problemas
Para diagnosticar vários cenários de falha, consulte o guia de solução de problemas.
Próximas etapas
Para saber mais sobre o Azure Monitor, consulte a documentação do serviço do Azure Monitor.
Contribuindo
Se você quiser contribuir com essa biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Os testes deste módulo são uma mistura de testes dinâmicos e de unidade, que exigem que você tenha uma instância do Azure Monitor. Para executar os testes, você precisará executar:
rush updaterush build -t @azure/monitor-query-metricscd into sdk/monitor/monitor-query-metrics- Copie o
sample.envarquivo para.env - Abra o
.envarquivo em um editor e preencha os valores. -
npm run test.
Para obter mais detalhes, consulte nossa pasta de testes .
Projetos relacionados
- do SDK do Microsoft Azure para JavaScript
- Azure Monitor
Azure SDK for JavaScript