У меня есть эта конфигурация в моем vmagent:
global:
scrape_interval: 60s
scrape_timeout: 60s
external_labels:
server_name: vmagent
scrape_configs:
- job_name: "kafka_exporter"
file_sd_configs:
- files:
- kafka_exporter.yml
metric_relabel_configs:
- if: '{__name__ = "kafka_consumergroup_lag_sum"}'
target_label: foo
replacement: 3
Я пытаюсь добавить ярлык только к одному показателю. Вот оно:
kafka_consumergroup_lag_sum{consumergroup = "test",topic = "elk"} 0
Но если я ищу метрики в моем VictoriaMetrics (удаленная запись в vmagent), то с этой меткой нет ничьих метрик. Вот они:
sum by(__name__)({__name__=~".+",foo = "3"}):
kafka_consumergroup_lag_sum{}
kafka_consumergroup_members{}
kafka_exporter_build_info{}
kafka_topic_partition_current_offset{}
kafka_topic_partition_in_sync_replica{}
kafka_topic_partition_leader{}
kafka_topic_partition_leader_is_preferred{}
kafka_topic_partition_oldest_offset{}
kafka_topic_partition_replicas{}
kafka_topic_partition_under_replicated_partition{}
kafka_topic_partitions{}
process_cpu_seconds_total{}
process_max_fds{}
process_open_fds{}
process_resident_memory_bytes{}
process_start_time_seconds{}
process_virtual_memory_bytes{}
process_virtual_memory_max_bytes{}
promhttp_metric_handler_requests_in_flight{}
promhttp_metric_handler_requests_total{}
Что я делаю не так? Почему другие показатели имеют такую же метку?
Если я попытаюсь сделать то же самое для другой метрики (kafka_topic_partitions), такой проблемы не будет (это неправда! См. «p.s.»). Конфигурация полностью та же:
- if: '{__name__ = "kafka_topic_partitions"}'
target_label: foo
replacement: 3
п.с. Я нашел образец. Теги добавляются ко всем метрикам после выбранного (например: kafka_consumergroup_lag_sum). Если я выберу kafka_topic_partitions, список будет таким:
sum by(__name__)({__name__=~".+",foo = "3"}):
kafka_topic_partitions{}
process_cpu_seconds_total{}
process_max_fds{}
process_open_fds{}
process_resident_memory_bytes{}
process_start_time_seconds{}
process_virtual_memory_bytes{}
process_virtual_memory_max_bytes{}
promhttp_metric_handler_requests_in_flight{}
promhttp_metric_handler_requests_total{}
Похоже, срабатывает один раз, чтобы определить точку реза.
Как добавить метку только к одному показателю?
@markalex, я хочу, чтобы только одна метрика имела метку foo=3, но их около 20. Я не понимаю, почему.
Ага, спасибо за разъяснения! Может быть, kafka_exporter.yml
содержит метку foo
?
Кроме того, быстрый способ проверить, не виновата ли здесь ваша конфигурация перемаркировки: измените в ней 3
, перезапустите сервер и проверьте результат запроса (и того же запроса, но с 4
).
@markalex, именно поэтому foo=3, а не 1 :) В вопросе я представил полную конфигурацию, метка "foo" содержится один раз
@markalex, я нашел закономерность. Теги добавляются ко всем метрикам после выбранного (например: kafka_consumergroup_lag_sum). Пожалуйста, смотрите «пс.с.» обсуждаемый.
Похоже на ошибку в VictoriaMetrics. Рассмотрите возможность регистрации проблемы в их системе отслеживания ошибок.
@markalex, спасибо большое. github.com/VictoriaMetrics/VictoriaMetrics/issues/6080
Ваша конфигурация выглядит правильно и должна работать, если в вашей фактической конфигурации нет опечатки. Вы можете это сделать, если хотите (это более элегантно, но так же, как и вы)
metric_relabel_configs:
- if: 'kafka_consumergroup_lag_sum'
target_label: foo
replacement: 3
Еще одна вещь, которую я заметил: если в вашем примере оператор не выровнен, но это все равно должно давать синтаксические ошибки, но сохраняйте его выравнивание следующим образом (что соответствует документации) →
scrape_configs:
- job_name: "kafka_exporter"
file_sd_configs:
- files:
- kafka_exporter.yml
metric_relabel_configs:
- if: '{__name__ = "kafka_consumergroup_lag_sum"}'
target_label: foo
replacement: 3
Но рекомендации не работают :( По иронии судьбы, все работает в my-vm-agent.com:9090/metric-relabel-debug Но на самом деле не работает
Я нашел образец. Теги добавляются ко всем метрикам после выбранного (например: kafka_consumergroup_lag_sum). Пожалуйста, смотрите «пс.с.» обсуждаемый.
@zentkhv, см. github.com/VictoriaMetrics/VictoriaMetrics/issues/…
@zentkhv это похоже на ошибку. Попробуйте другую версию VictoriaMetrics локально и посмотрите, работает ли она в противном случае.
Я открыл на GitHub вопрос об аналогичной проблеме (я хотел фильтровать метрики, теги были инструментом): https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6080
Это не баг, это действительно так работает, просто об этом нигде не написано. Не все участники об этом даже знают, но https://github.com/f41gh7 настоящий знаток ВМ!
В моем случае его нужно использовать для фильтрации показателей.
metric_relabel_configs:
- source_labels: [__name__]
action: keep
regex: '^kafka_consumergroup_lag_sum$'
Это не ответ на вопрос, как добавлять теги, но для меня вопрос решен. С тегами разобраться, зная все это, не сложно.
Можете ли вы объяснить, что заставляет вас думать, что что-то не так? Насколько я вижу, все так, как должно быть. Наличие
kafka_consumergroup_lag_sum
в результате вашего запроса говорит о том, что для метки foo установлено значение 3.