значений аннотаций для Пода в кубернетесе по которому
прометеус делает kubernetes_sd_config?
я имею ввиду вот это
prometheus.io/scrape: 'true'
prometheus.io/port: 8888
вот в этой доке НИФИГА не понятно
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config
как именно оно работает
prometheus.io/scrape: 'true' - это аннотация pod, в контексте ссылки на prometheus доку это __meta_kubernetes_pod_annotation_<annotationname>, соотественно это будет __meta_kubernetes_pod_annotation_prometheus_io_scrape: true, заменяются нижним подчеркиванием символы, которые не могут присутсвовать в названии label. Дальше через relabel_config выбирается pod у которого она присутствует и создается таргет. Что-то типа: - action: keep source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape] regex: true Все label с префиксом __ отбрасываются после relabel. Ну и label до relabeling можно посмотреть через /api/v1/targets, полезно для дебага.
Я это все понимаю :-) я просил ссылку на доку
Но в любом сокчае большое спасибо за пояснения
кроме этого, я не видел другой документации, код если только. Под капотом, оно получает разные кубернетес сущности и на основе их генерит таргеты для relabel. Самое важное это role: pod/service/endpoint - в зависимости от этого будет разный набор таргетов. Для service: pod, например, это комбинация container + ip + port. Если в поде 1 контейнер с двумя портами, то для него будет создано два разных таргета для relabeling.
Обсуждают сегодня