начала и окончания запроса или есть стандартные компоненты, например, некий middleware?
не думаю что есть. Но написать свою по идее тривиально
env_logger::Builder::from_env(Env::default().default_filter_or("info")).init(); let logs_fmt = "%a \"%r\" status=%s size_bytes=%b execution_time=%T referred_by=\"%{Referer}i\" "; ... App.new() // logging middleware .wrap(Logger::new(logs_fmt)) %T отвечает за время исполнения. Это есть в их доке.
спасибо. но мне еще надо получить саму цифру, чтобы отправить в prometheus
Их мидлваря хитрит. Судя по исходникам, она замеряет время от первого полла до момента рендера в текст (записи лога), что не совсем "время исполнения запроса". Можно и свою написать в таком случае.
Обсуждают сегодня