1

我想将 kamon 配置为检查每个请求并将标头值存储在上下文中,以便从应用程序中的任何位置访问此上下文。我从 kamon docs 中举了一个例子: 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
      }

使用标头制作卷曲时,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