Как хранить и получать доступ к специфичным для запроса данным в Akka HTTP?

#scala #api #request #akka-http

#scala #API #запрос #akka-http

Вопрос:

Мне нужен механизм для хранения и доступа к конкретным данным запроса в Akka HTTP. Возможно ли это без отправки значений каждому участнику, вызываемому из маршрута?

Допустим, я хочу регистрировать выполнение всех операций, включая идентификатор запроса, чтобы я мог искать журналы по идентификатору запроса. Поэтому при входе в систему внутри actor было бы здорово сделать что-то вроде Request.id .

Обратите внимание, что API не реализует сеанс, поскольку это специфическая служба, которая работает за основным API (которая выполняет аутентификацию и т. Д.).

Есть ли какая-либо библиотека или встроенный способ, подходящий для этого?

Заранее спасибо

Комментарии:

1. То, что вам нужно, это MDC.

2. вы можете использовать kamon prometheus для регистрации интересующих вас показателей, которые могут быть интегрированы с grafana или kibana.

3. мы используем Kibana, но это скорее наш внутренний логин

4. @MateuszKubuszok не могли бы вы немного уточнить?

5. @MateuszKubuszok Если я использую MDC для хранения контекстной информации, такой как идентификатор запроса и другие вещи, я бы очищал ее после каждого запроса. Это означает, что я должен добавить четкую логику в конце каждого из моих более чем 100 маршрутов? Кроме того, мне нужно настроить его, когда запрос сначала поступает на маршрут? Я попробую, это избавит от необходимости передавать идентификатор запроса в качестве параметра сообщения субъекту…