Перезапись меток
Тема дорожной карты · Prometheus
Перезапись меток в Prometheus — это процесс изменения, добавления или удаления меток опрашиваемых целей или метрик перед их сохранением в TSDB. Эта функция позволяет нормализовать метки между разными экспортёрами, обогащать метрики контекстной информацией и управлять кардинальностью меток. Эффективная перезапись меток является ключом к поддержанию хорошо организованного и эффективного конвейера сбора метрик.
Как это работает
Перезапись меток в Prometheus осуществляется с помощью двух конфигурационных блоков: relabel_configs и metric_relabel_configs. Первый блок (relabel_configs) предназначен для изменения метаданных целей перед опросом, а второй (metric_relabel_configs) — для изменения меток метрик после опроса, но до сохранения в TSDB.
Каждое правило перезаписи меток определяет следующие параметры:
source_labels: метки, по которым будет выполняться действие.regex: регулярное выражение, которое используется для выбора меток.replacement: строка, на которую будут заменены метки.target_label: метка, которая будет перезаписана.action: тип действия, который будет выполнен (например,replace,keep,drop,labelmap,labeldropилиlabelkeep).
Порядок применения правил важен, так как они обрабатываются последовательно. Это позволяет создавать сложные сценарии перезаписи меток, которые могут быть использованы для фильтрации данных, переименования меток или удаления ненужных меток.
Когда применять
metric_relabel_configs обычно используются для удаления меток, которые не должны быть экспонированы, например, метки с высокой кардинальностью или метки, которые несут временные или уникальные значения, такие как pod_template_hash в Kubernetes.
relabel_configs используются для фильтрации целей, например, для сохранения только тех целей, которые соответствуют определённому регулярному выражению. Это позволяет управлять теми целыми, которые будут опрошены, и теми метаданными, которые будут использованы для перезаписи меток.
Перед деплоем любых изменений в конфигурации Prometheus, рекомендуется протестировать их с помощью promtool check rules и promtool query для убедиться, что они работают корректно.
Типичные ошибки
Сложные цепочки перезаписи меток могут быть трудно поняты через некоторое время после их создания. Это может привести к проблемам в будущем, если комментарии и документация не будут обновлены. Также важно учитывать, что действия relabel_configs выполняются при опросе, а не при запросе данных. Это означает, что если вы используете labeldrop для удаления меток, исторические данные всё ещё будут содержать эти метки.