Я бы хотел использовать Prometheus для отслеживания случаев появления системного убийцы OOM в Debian / Ubuntu. В частном случае Redis иногда прерывается из-за OOM, и уже существующее предупреждение о нехватке доступной памяти не срабатывает, потому что это происходит слишком быстро. Но я хотел бы сделать решение максимально разумным и универсальным, а также не тратить на него много времени, поэтому давайте не будем фокусироваться на самом Redis. У меня есть идеи:
- использовать существующие метрики Prometheus, связанные с памятью, запускать их только на очень низких значениях (ie. 1% памяти осталось) и на низких значениях for (* 1013). *. 5 секунд) - это решение может работать и его очень просто реализовать, но я считаю, что оно может быть ненадежным (необязательно запускать на всех OOM и только на OOM)
- периодически создавать скрипт bash для проверки dmesg и создание метрик на основе соответствующих результатов grep - вероятно, сработает, но проблема может заключаться в правильном распознавании сообщений dmesg, уже извлеченных из новых (не оповещать об одном и том же OOM дважды); также это решение не очень изящно
- создайте собственный экспортер Prometheus - если написанное правильно, вероятно, будет работать, как ожидалось, но создание этого может быть большой работой, которую я хотел бы избежать
Я хотел бы спросить ваши предложения и мнения. Спасибо!