Метрики Puma и Side...
 
Уведомления
Очистить всё

Метрики Puma и Sidekiq в Prometheus: что смотреть в первую очередь?

2 Сообщения
2 Пользователи
0 Реакции
128 Просмотры
IlyaKudryavtsev
Сообщения: 1
Автор темы
Пишет в irb SRE
Присоединился: 2 месяца назад
[#126]

Я SRE, недавно в команде с Rails-монолитом, до этого работал с сервисами на Go. Метрики собираем в Prometheus, в Grafana уже есть доски по хостам. Что из Puma и Sidekiq стоит вывести в первую очередь, чтобы не утонуть в сотне графиков?


1 ответ
armen_pet
Сообщения: 30
Собрал свой gem DevOps-инженер
Присоединился: 4 года назад

Из Puma: сколько потоков занято из доступных и длина очереди запросов. Puma.stats отдаёт это в JSON, есть готовые экспортёры, но можно и самому:

stats = JSON.parse(Puma.stats)
stats["worker_status"].each do |w|
  last = w["last_status"]
  busy = last["max_threads"] - last["pool_capacity"]
  puts "worker=#{w["index"]} busy=#{busy} backlog=#{last["backlog"]}"
end

Если backlog растёт, а CPU свободен, потоки ждут базу или внешние вызовы. Из Sidekiq: latency каждой очереди, размер retry set и dead set. Latency лучше любого счётчика джоб показывает, что что-то пошло не так. И по времени ответа держите p95 и p99, а не среднее: два процента запросов по пять секунд среднее почти не сдвинут, а люди уже жалуются.


Ответ