1

アプリのどこからでもこのコンテキストにアクセスできるように、各リクエストを検査し、コンテキストにヘッダー値を保存するように 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コンテキストを使用する方法を知っていますか?

どうもありがとうございました!

4

0 に答える 0