Комментарии 3
Спасибо за пост, интересно было почитать детектив :)
А RED (конкретно duration) метрики и борды не помогли?
Если их нет, то имхо это задача номер один :)
Поможет не по косвенным признакам (повышенное потребление cpu) искать причины
Учитывая зацикливание, должны были быть видны долгие джобы на борде, а если к ним добавить индикаторы и алерты, то совсем будет хорошо.
Спасибо за предложение!
Базовые метрики длительности выполнения джобов есть, но, к сожалению, в данном сценарии они не помогли. В текущей реализации они настроены на отображение периода от начала до завершения, которого не происходило в зависших джобах, из-за чего метрика не проливалась :(
Возможно стоит сохранять метрику в finally, чтобы при graceful shutdown, когда k8s уничтожает контейнер с превышающей квотой CPU, метрика все равно записывалась. Главное, потом отыскать это значение, так как оно точно не попадет в 99.9 перцентиль в аналогичных сценариях :)
Борды с разностью метрик запущенных и завершенных джобов тоже не показали проблемы, так как за пол часа корректно завершалось примерно на одну джобу меньше, чем запускалось, что в общем объеме (несколько десятков тысяч) сводилось к погрешности
Обязательно рассмотрим покрытие метриками и пересмотр их сбора, а также подумаем про таймауты на время выполнения джобов, спасибо!
И Бритва Оккама такая – а что, я всего лишь принцип, не закон.
Спасибо за статью! Приятное чтиво. Хороший слог, формулировки. "Интересно было почитать детектив" – вот присоединяюсь =)
Я календарь переверну — и снова 5 апреля: CPU-утилизация во имя интернационализации