azureansibleprometheusvictoriametrics

VictoriaMetrics - pass filters in azure_sd_config like ec2_sd_config


I have to make it work for azure platform, the solution for scrape_config of vmagent was working fine with AWS but unable to find similar solution in Azure. In this particular snippet we have configured scraping config for node_exporter from VMs having tag key: mon_exporters with value: node. Checked the official documentation https://docs.victoriametrics.com/sd_configs.html#azure_sd_configs but couldn't find any mention of filter option

Is there any way I can filter out the VMs basis my needs because right now it fetches all the VMs in that particular Subscription

- job_name: 'node_exporter'
    honor_timestamps: true
    scrape_interval: 1m
    scrape_timeout: 15s
    metrics_path: /metrics
    scheme: http
    follow_redirects: true
    azure_sd_configs:
    - subscription_id: 'xxxxx'
      authentication_method: 'ManagedIdentity'
      environment: 'AzurePublicCloud'
      refresh_interval: 5m
      port: 9100
      filters:
        - name: 'tag:mon_exporters'
          values: ["*node*"]


Solution

  • azure_sd_config in VictoriaMetrics doesn't support filters option. But you can keep needed targets with action: keep relabeling on __meta_azure_machine_tag_mon_exporters label. Try the following config:

    - job_name: 'node_exporter'
      scrape_interval: 1m
      azure_sd_configs:
      - subscription_id: 'xxxxx'
        authentication_method: 'ManagedIdentity'
        port: 9100
      relabel_configs:
      - action: keep
        if: '{__meta_azure_machine_tag_mon_exporters="node"}'
    

    See more details about this type of relabeling here