Значения по умолчанию при замене релабеля - PullRequest
0 голосов
/ 27 марта 2019

Если source_labels пуст или регулярное выражение ничего не перехватывает, возможно ли установить значение по умолчанию для замены?

Например, что-то вроде этого:

    - source_labels:
      - __address__
      - __meta_openstack_tag_prometheus_io_port
      action: replace
      regex: ([^:]+)(?::\d+)?;(\d+)
      replacement: $1:$2
      target_label: __address__

Если __meta_openstack_tag_prometheus_io_port не определен, могу ли я установить $ 2 в значение по умолчанию?

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Насколько я понимаю, не за один шаг, но вы можете сделать это, используя временную метку:

 - target_label: __tmp_port
   replacement: 42
 - source_labels: [__meta_openstack_tag_prometheus_io_port]
   target_label: __tmp_port
   regex: (\d+)
 - source_labels:
      - __address__
      - __tmp_port
      action: replace
      regex: ([^:]+)(?::\d+)?;(\d+)
      replacement: $1:$2
      target_label: __address__

Сначала мы устанавливаем значение по умолчанию в __tmp_port, затем перезаписываем его с __meta_openstack_tag_prometheus_io_port, есливозможно, затем используйте __tmp_port с любым значением для последнего действия.

0 голосов
/ 27 марта 2019

Один из способов - выполнить действие после него, например:

- source_labels: [__address__, __meta_openstack_tag_prometheus_io_port]
  regex: ([^:]+)(?::\d+)?;
  replacement: $1:default
  target_label: __address__
...