Skip to content

Ability to determine name_prefix in http input

Input http aktualnie sam ustala prefix dla metryk na podstawie nazwy:

name_prefix = "{{ _loop_telegraf_plugin.options.name }}_"

Potrzebowałbym jednak możliwość zdefiniowania tego prefixu (z defaultem na to co jest, żeby nie była konieczna zmiana u innych).

Przykład użycia:

Wykorzystując tags_extra https://projects.task.gda.pl/citask/monitoring/roles/telegraf#variables definiowane jest n inputów typu http, z różnymi tagami.

- name: "{{ n }}_http"
  type: "http"
  timeout: ".."
  interval: ".."
  endpoints: [..]
  tags_extra:
    name: "tag{{ n }}"
    value: "value{{ n }}"

W rezultacie tworzone jest n plików z inputami http, każdy z różnym prefixem, tj: name_prefix = "{{ n }}_http" co daje n różnych metryk w monitoringu - {{ n }}_http. Zważywszy że te wartości już się różnią tagami (z powodu użycia tag_extra) mogłyby one trafiać do jednej metryki, np. mój_http.

Możliwość definicji name_prefix z poziomu definiowania inputu nam to umożliwi:

name_prefix = "{{ _loop_telegraf_plugin.options.name_prefix | default(_loop_telegraf_plugin.options.name) }}_"
- name: "{{ n }}_http"
  name_prefix: "mój"
  type: "http"
  timeout: ".."
  interval: ".."
  endpoints: [..]
  tags_extra:
    name: "tag{{ n }}"
    value: "value{{ n }}"