Перекрытие метрик container_memory_rss для kubelet из загруженного модуля

#kubernetes #prometheus #kubelet

#kubernetes #prometheus #kubelet

Вопрос:

Я расследую удаление одной из служб в моем кластере kubernetes из-за ООМ.

Одна из первых вещей, которые я сделал, это посмотрел на график использования памяти grafana для модуля, который был уничтожен, и, к моему удивлению, я увидел большой всплеск использования памяти сразу после ООМ. Произошло. Однако сам модуль в то время не выполнял никаких вычислений, поэтому такой всплеск был очень запутанным (у самого модуля была утечка памяти, из-за которой он медленно достигал предела памяти, но всплеск не был его частью).).

Я более внимательно изучил всплеск, используя Prometheus, и я узнал, что на короткое время, когда старый модуль заменяется новым, kubelet сообщает о метриках из обоих модулей, которые затем из-за sum by (container) использования на графике grafana показывают всплеск.

Без агрегации: ( container_memory_rss{pod="XXX", container!="POD", container!=""} ) container_memory_rss{pod=quot;XXXquot;, контейнер!=quot;PODquot;, контейнер!=quot;quot;}

С агрегацией: ( sum by(container) (container_memory_rss{pod="XXX", container!="POD", container!=""}) ) сумма по (контейнеру) (container_memory_rss{pod=quot;XXXquot;, контейнер!=quot;PODquot;, контейнер!=quot;quot;quot;})

Мне было интересно, можно ли как-то избежать перекрытия и связано ли это с какой-то неправильной конфигурацией на моей стороне или либо это поведение kubelet or prometheus , которого нельзя избежать.

Спасибо!