я тут наверно уже всем надоел с описанием :) задача такая: начать собирать SLO/SLA с максимально близкого к клиенту балансировщика
есть AWS loadbalancer с которого я могу брать логи и преобразовывать в метрики (нужны более гранулированые метрики чем cloudwatch предоставляет, и единственный способ это брать их из логов)
проблема в том что существует только один способ получения этих логов - забирать из файлов генерируемых каждые 5 минут в s3 bucket
соответственно, получаются диапазоны в 5 минут при вставке метрик что не очень хорошо для гранулированости
выглядит так что пром не совсем подходящее решение в таком случае, но я не отчаиваюсь и хочу найти best practice для этой задачи в рамках prom/vm
велком если есть варианты, потому что я неопытный собиральщик метрик пока и могу не видеть то что другому бросается в глаза :)
Тут нормально подходят вм-овские гистограммы. Пишем сервис, который раз в пять минут выкачивает новые логи из s3, парсит их и обновляет гистограммы по времени выполнения каждого запроса. При этом записывает в вм счетчики по гистограммам для каждых 10 секунд логов. При записи в вм счетчики не сбрасываются, а продолжают накапливать новые значения. Это позволяет потом строить гистограммы по произвольным интервалам времени с гранулярностью 10 секунд.