30. vmagent. Добавление глобальных меток к собираемым метрикам

1. Задание будущих значений глобальным меткам

1.1. Географический регион vlan’а

Эта метка позволит фильтровать ресурсы по местоположению.

  1. Вручную задайте регион расположения VLAN’а:

    VLAN_REGION='moscow'
    #VLAN_REGION='kirov'

1.2. Числовой номер vlan’а

Есть вероятность, что в hostname vmagent’а может не быть номера vlan, поэтому сможем получить номер vlan’а из этой переменной.

  1. В следующем скрипте происходит вычленение номера VLAN из имени текущей машины, иначе задайте номер вручную:

    # Убираем всё до "ctl"
    part1="${HOSTNAME#*ctl}"
    # Убираем всё после числа (включая "p" и дальше)
    number="${part1%%p*}"
    
    VLAN_NUM=${number}
    #VLAN_NUM='0617'

1.3. Окружение по умолчанию для vlan’а

Предполагается, что в одном vlan все машины предназначены для одного окружения, например продуктового. То есть эта метка позволит фильтровать метрики по признаку окружения.

  1. Вручную задайте переменную VLAN_ENV, где укажите преимущественное окружение для этой VLAN. Если на уровне target будет использована одноимённая метка, но с другим значение, то это новое значение будет присвоено соответствующим метрикам этого target.

    VLAN_ENV='prod'
    #VLAN_ENV='dev'
    #VLAN_ENV='test'

2. Добавление глобальных лейблов 'scraper_*' к собираемым метрикам

vmagent. Добавление глобальных меток ко всем метрикам, собираемым с помощью скрейпинга.

2.1. Добавление глобальных метрик в основной config-файла vmagent’а

  1. Добавьте в "основной" конфиг-файл:

    set -u; cat << EOF >> /etc/victoriametrics/vmagent.yml
      external_labels:
        scraper_hostname: %{SYSTEMD_HOSTNAME}
        scraper_region: "${VLAN_REGION}"
        scraper_vlan_num: "${VLAN_NUM}"
        scraper_vlan_env: "${VLAN_ENV}"
    EOF

    Пример ожидаемого содержимого результативного файла. Заметьте, что значение переменной %SYSTEMD_HOSTNAME присваивается из перменной %H в systemd-юните.

    scrape_config_files:
    - vmagent.d/*.yml
    
    global:
      scrape_interval: 15s
      external_labels:
        scraper_hostname: "%{SYSTEMD_HOSTNAME}"
        scraper_region: "moscow"
        scraper_vlan_num: "0617"
        scraper_vlan_env: "prod"