All the Azure Monitor metrics that need to be scraped are consolidated in one YAML file which is referred to as the metric declaration.

This declaration defines the overall Azure metadata and all the metrics you want to expose.

Every metric describes the Azure Monitor metric that it represents and what Azure resources that should be scraped. It allows you to statically declaring the resources to scrape and/or use automatic resource discovery.

Supported Azure Services

Generic Azure Resource allows you to scrape every Azure service supported by Azure Monitor.

We also provide a simplified way to scrape the following Azure resources:

Want to help out? Create an issue and contribute a new scraper.

General Declaration

As Promitor evolves we need to change the structure of our metrics declaration.

version: {version} - Version of declaration that is used. Allowed values are v1. (Required)

Azure

Metric Defaults

Metrics

Every metric that is being declared needs to define the following fields:

All resources provide the capability to override the default Azure metadata:

Additionally, the following fields are optional:

Example

Here is an example of how you can scrape two Azure Service Bus queues in different resource groups, one in the promitor resource group and one on the promitor-dev resource group:

version: v1
azureMetadata:
  tenantId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  subscriptionId: yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
  resourceGroupName: promitor
  cloud: China
metricDefaults:
  aggregation:
    interval: 00:05:00
  limit: 10
  labels:
    geo: china
    environment: dev
  scraping:
    # Every minute
    schedule: "0 * * ? * *"
metrics:
  - name: azure_service_bus_active_messages
    description: "The number of active messages on a service bus queue."
    resourceType: ServiceBusNamespace
    labels:
      app: promitor
      tier: messaging
    scraping:
      # Every 2 minutes
      schedule: "0 */2 * ? * *"
    azureMetricConfiguration:
      metricName: ActiveMessages
      limit: 5
      dimension:
        name: <dimension-name>
      aggregation:
        type: Total
        interval: 00:15:00
    resources: # Optional, required when no resource discovery is configured
      - namespace: promitor-messaging
        queueName: orders
      - namespace: promitor-messaging-dev
        resourceGroupName: promitor-dev
        subscriptionId: ABC
    resourceDiscoveryGroups: # Optional, requires Promitor Resource Discovery agent (https://promitor.io/concepts/how-it-works#using-resource-discovery)
    - name: service-bus-landscape

← back