#scala #kamon
Вопрос:
Я хочу настроить kamon для проверки каждого запроса и сохранения значения заголовка в контексте, чтобы получить доступ к этому контексту из любой точки приложения. Я привел пример из документов камона: https://kamon.io/docs/latest/core/context/
Мое веб-приложение построено с использованием lagom и некоторых пользовательских игровых маршрутов. Это конфигурация для контекста kamon в приложении.conf
kamon.context.codecs {
string-keys {
request-id = "X-Request-ID"
}
}
и это пример моего маршрута
case GET(p"/helloWorld") =>
action(parser.default) { request =>
val xrequestKeyID = Context.key[String]("X-Request-ID", null)
val requestID1: String = Kamon.currentContext().get(xrequestKeyID)
println(s"requestID1=$requestID1")
val headers = request.headers.toString()
println(s"Header=${headers}")
Results.Accepted
}
при создании завитка с заголовком Камон не читает заголовок http.
curl --location --request GET 'http://localhost:11000/helloWorld' --header 'X-Request-ID: hello'
Вот результат в терминале.
requestID1=
Header=List((Timeout-Access,<function1>), (Remote-Address,127.0.0.1:56854), (Raw-Request-URI,/helloWorld), (Tls-Session-Info,[Session-1, SSL_NULL_WITH_NULL_NULL]), (Host,localhost:11000), (User-Agent,curl/7.58.0), (Accept,*/*), (X-Request-ID,hello))
Знаете ли вы, как использовать контекст kamon для широковещательных ключей?
Большое спасибо!