Я использую модуль с двумя контейнерами: global-metrics-generator
и collectd-statsd
. В контейнере global-metrics-generator
я запускаю скрипт python в качестве cron, который отвечает за выборку всех модулей в кластере k8s и отправку показателей, связанных с процессором модуля и памятью, в localhost:28125
, который прослушивается процессом collectd, запущенным внутри контейнера collectd-statsd
. Я использую в своем скрипте клиент python statsd для передачи этих показателей из контейнера global-metrics-generator
в контейнер collectd-statsd
.
Я использую эту установку почти 1 год, и она работает без проблем. Но недавно я представил в своей системе модуль nginx-ingress, и каким-то образом, хотя я вижу, что скрипт python отправляет метрики процессора / памяти для модуля nginx-ingress
в collectd, метрика не собирается внутри папки /var/lib/collectd/
в контейнере collectd-statsd
. Для любого другого модуля в моем кластере k8s он работает должным образом.
Странная вещь:
Когда я меняю имя модуля nginx-ingress на любое другое, чтобы в нем не было слова ingress
, например: nginx-ingres
(обратите внимание на единственный s
), я вижу, что эта метрика собирается внутри папки /var/lib/collectd/
.
Структура моей последней метрики с прикрепленными настраиваемыми тегами выглядит так:
Что работает - [container=nginx-ingres,name=nginx-ingres-6bf8b67bb7-ndmjn,replicaset=nginx-ingres-6bf8b67bb7,ip=100.101.28.65,host_ip=10.36.40.229,Namespace=nginx-ingress]container.cpu.usage
Что не работает - [container=nginx-ingress,name=nginx-ingress-599c78d7b6-psxns,replicaset=nginx-ingress-599c78d7b6,ip=100.102.33.199,Namespace=nginx-ingress,host_ip=10.36.40.170]container.cpu.usage
Я не смог найти в Интернете ничего, связанного с этим, но зарезервировано ли слово ingress в collectd / statsd? Если да, то есть идеи, почему я могу передать тег Namespace=nginx-ingress
вместе с метрикой?
ingress
могло быть зарезервированным словом вроде здесь гдеingress
(как синоним входящего) используется в названиях показателей. Но это только мое предположение. Если он не упоминается в документации, возможно, вы сможете найти ответ, только проанализировав его код. Вы также можете подумать о создании новой проблемы на GitHub для этого конкретного проекта, который вы используете. Но есть интересные наблюдения, которыеingres
работают, аingress
нет. :) - person mario   schedule 30.07.2020