Skip to main content

Azure Metrics

Microsoft Azure Pull

Synopsis

Creates an Azure Metrics client that collects metric data from Azure Monitor. Queries metrics from specified Azure resources with configurable aggregation types, time intervals, and filtering options.

Schema

- id: <numeric>
name: <string>
description: <string>
type: azmetrics
tags: <string[]>
pipelines: <pipeline[]>
status: <boolean>
properties:
tenant_id: <string>
client_id: <string>
client_secret: <string>
resource_uri: <string>
namespace: <string>
metrics: <string>
aggregation: <string>
interval: <string>
order_by: <string>
filter: <string>
result_type: <string>
batch_size: <numeric>

Configuration

The following fields are used to define the device.

Device

FieldRequiredDefaultDescription
idYUnique identifier
nameYDevice name
descriptionN-Optional description
typeYMust be azmetrics
tagsN-Optional tags
pipelinesN-Optional pre-processor pipelines
statusNtrueEnable/disable the device

Authentication

FieldRequiredDefaultDescription
tenant_idYAzure tenant ID
client_idYAzure client ID
client_secretYAzure client secret

Resource

FieldRequiredDefaultDescription
resource_uriYAzure resource ID to query metrics from
namespaceN-Metric namespace to filter results

Query Options

FieldRequiredDefaultDescription
metricsN-Specific metric names to collect (comma-separated or array)
aggregationN-Aggregation type: Average, Count, Maximum, Minimum, None, Total
intervalNPT1MTime grain for metric aggregation (ISO 8601 duration)
order_byNTimeStamp ascSort order for results
filterN-OData filter expression to refine results
result_typeN-Result type: Data or Metadata
batch_sizeN10000Maximum number of metric values per request

Examples

The following are commonly used configuration types.

Basic

The minimum required configuration:

Collecting metrics from an Azure VM...

devices:
- id: 1
name: basic_azmetrics
type: azmetrics
properties:
tenant_id: "00000000-0000-0000-0000-000000000000"
client_id: "11111111-1111-1111-1111-111111111111"
client_secret: "your-client-secret"
resource_uri: "/subscriptions/sub-id/resourceGroups/rg-name/providers/Microsoft.Compute/virtualMachines/vm-name"

Specific Metrics

Collecting specific metrics with aggregation:

Targeting CPU and memory metrics with average aggregation...

devices:
- id: 2
name: vm_performance_metrics
type: azmetrics
properties:
tenant_id: "00000000-0000-0000-0000-000000000000"
client_id: "11111111-1111-1111-1111-111111111111"
client_secret: "your-client-secret"
resource_uri: "/subscriptions/sub-id/resourceGroups/rg-name/providers/Microsoft.Compute/virtualMachines/vm-name"
namespace: "Microsoft.Compute/virtualMachines"
metrics: "Percentage CPU,Available Memory Bytes"
aggregation: "Average"
interval: "PT5M"
note

Available metrics vary by resource type. See the Azure Monitor metrics reference for supported metrics per resource.

Storage Account Metrics

Monitoring Azure Storage performance:

Collecting storage transaction metrics...

devices:
- id: 3
name: storage_metrics
type: azmetrics
pipelines:
- storage_analysis
properties:
tenant_id: "00000000-0000-0000-0000-000000000000"
client_id: "11111111-1111-1111-1111-111111111111"
client_secret: "your-client-secret"
resource_uri: "/subscriptions/sub-id/resourceGroups/rg-name/providers/Microsoft.Storage/storageAccounts/storage-name"
namespace: "Microsoft.Storage/storageAccounts"
metrics: "Transactions,Ingress,Egress"
aggregation: "Total"
interval: "PT1H"
filter: "ResponseType eq 'Success'"

High-Resolution Collection

Fine-grained metric collection for detailed analysis:

Collecting metrics at 1-minute intervals with maximum values...

devices:
- id: 4
name: high_res_metrics
type: azmetrics
properties:
tenant_id: "00000000-0000-0000-0000-000000000000"
client_id: "11111111-1111-1111-1111-111111111111"
client_secret: "your-client-secret"
resource_uri: "/subscriptions/sub-id/resourceGroups/rg-name/providers/Microsoft.Web/sites/app-name"
metrics: "CpuTime,MemoryWorkingSet,Http5xx"
aggregation: "Maximum"
interval: "PT1M"
batch_size: 500
warning

High-resolution metric collection with short intervals increases API calls and may impact Azure Monitor costs. Use appropriate intervals based on monitoring requirements.