アプリのどこからでもこのコンテキストにアクセスできるように、各リクエストを検査し、コンテキストにヘッダー値を保存するように kamon を構成したいと考えています。kamon ドキュメントから例を挙げました: https://kamon.io/docs/latest/core/context/
私の webapp は、lagom といくつかのカスタム プレイ ルートで構築されています。これは、application.conf の kamon コンテキストの構成です。
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
}
ヘッダーでcurlを作成するとき、Kamonは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コンテキストを使用する方法を知っていますか?
どうもありがとうございました!