Шаблон соответствующих показателей VictoriaMetrics (VM Agent)

У меня есть эта конфигурация в моем 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{}

Похоже, срабатывает один раз, чтобы определить точку реза.

Как добавить метку только к одному показателю?

Можете ли вы объяснить, что заставляет вас думать, что что-то не так? Насколько я вижу, все так, как должно быть. Наличие kafka_consumergroup_lag_sum в результате вашего запроса говорит о том, что для метки foo установлено значение 3.

markalex 08.04.2024 08:21

@markalex, я хочу, чтобы только одна метрика имела метку foo=3, но их около 20. Я не понимаю, почему.

zentkhv 08.04.2024 09:35

Ага, спасибо за разъяснения! Может быть, kafka_exporter.yml содержит метку foo?

markalex 08.04.2024 12:44

Кроме того, быстрый способ проверить, не виновата ли здесь ваша конфигурация перемаркировки: измените в ней 3, перезапустите сервер и проверьте результат запроса (и того же запроса, но с 4).

markalex 08.04.2024 12:48

@markalex, именно поэтому foo=3, а не 1 :) В вопросе я представил полную конфигурацию, метка "foo" содержится один раз

zentkhv 09.04.2024 03:49

@markalex, я нашел закономерность. Теги добавляются ко всем метрикам после выбранного (например: kafka_consumergroup_lag_sum). Пожалуйста, смотрите «пс.с.» обсуждаемый.

zentkhv 09.04.2024 07:15

Похоже на ошибку в VictoriaMetrics. Рассмотрите возможность регистрации проблемы в их системе отслеживания ошибок.

markalex 09.04.2024 07:37

@markalex, спасибо большое. github.com/VictoriaMetrics/VictoriaMetrics/issues/6080

zentkhv 09.04.2024 08:05
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
8
282
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ваша конфигурация выглядит правильно и должна работать, если в вашей фактической конфигурации нет опечатки. Вы можете это сделать, если хотите (это более элегантно, но так же, как и вы)

    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 Но на самом деле не работает

zentkhv 09.04.2024 03:35

Я нашел образец. Теги добавляются ко всем метрикам после выбранного (например: kafka_consumergroup_lag_sum). Пожалуйста, смотрите «пс.с.» обсуждаемый.

zentkhv 09.04.2024 07:15

@zentkhv, см. github.com/VictoriaMetrics/VictoriaMetrics/issues/…

valyala 12.04.2024 17:23

@zentkhv это похоже на ошибку. Попробуйте другую версию VictoriaMetrics локально и посмотрите, работает ли она в противном случае.

dganesh2002 13.04.2024 00:37
Ответ принят как подходящий

Я открыл на 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$'

Это не ответ на вопрос, как добавлять теги, но для меня вопрос решен. С тегами разобраться, зная все это, не сложно.

Другие вопросы по теме