Java 如何测量Kamon对Prometheus的WSClient请求的处理时间?

Java 如何测量Kamon对Prometheus的WSClient请求的处理时间?,java,playframework,kamon,Java,Playframework,Kamon,我正在使用Kamon(Kamon.io)和Play framework 2.8 我尝试根据“”和“”设置Kamon,然后它将度量暴露为Prometheus格式 但是,它只公开了与服务器相关的指标,如下所示: span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",

我正在使用Kamon(Kamon.io)和Play framework 2.8

我尝试根据“”和“”设置Kamon,然后它将度量暴露为Prometheus格式

但是,它只公开了与服务器相关的指标,如下所示:

span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.005",component="play.server.akka-http",http_method="GET"} 2.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.01",component="play.server.akka-http",http_method="GET"} 3.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.025",component="play.server.akka-http",http_method="GET"} 3.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.05",component="play.server.akka-http",http_method="GET"} 3.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.075",component="play.server.akka-http",http_method="GET"} 3.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.1",component="play.server.akka-http",http_method="GET"} 3.0
我希望获得客户端(即WSClient)指标,特别是请求的处理时间

我能得到这些指标吗?如果是,我该怎么做


基础项目是。完整项目如下:

代码和配置提示如下所示:

span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.005",component="play.server.akka-http",http_method="GET"} 2.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.01",component="play.server.akka-http",http_method="GET"} 3.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.025",component="play.server.akka-http",http_method="GET"} 3.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.05",component="play.server.akka-http",http_method="GET"} 3.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.075",component="play.server.akka-http",http_method="GET"} 3.0
span_processing_time_seconds_bucket{operation="/",span_kind="server",http_status_code="200",error="false",le="0.1",component="play.server.akka-http",http_method="GET"} 3.0
构建.sbt

name := """play-java-hello-world-tutorial"""
organization := "com.example"

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava, JavaAgent)

scalaVersion := "2.13.5"
val kamonVersion = "2.1.15"

libraryDependencies += guice
libraryDependencies += ws
libraryDependencies += "io.kamon" %% "kamon-bundle" % kamonVersion
libraryDependencies += "io.kamon" %% "kamon-prometheus" % kamonVersion
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.8")
addSbtPlugin("io.kamon" % "sbt-kanela-runner-play-2.8" % "2.0.10")
application.conf

play.http.secret.key="secret-secret-secret"

kamon {
  prometheus {
    include-environment-tags = true
    embedded-server {
      hostname = 0.0.0.0
      port = 9095
    }
  }
}
plugins.sbt

name := """play-java-hello-world-tutorial"""
organization := "com.example"

version := "1.0-SNAPSHOT"

lazy val root = (project in file(".")).enablePlugins(PlayJava, JavaAgent)

scalaVersion := "2.13.5"
val kamonVersion = "2.1.15"

libraryDependencies += guice
libraryDependencies += ws
libraryDependencies += "io.kamon" %% "kamon-bundle" % kamonVersion
libraryDependencies += "io.kamon" %% "kamon-prometheus" % kamonVersion
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.8.8")
addSbtPlugin("io.kamon" % "sbt-kanela-runner-play-2.8" % "2.0.10")
HomeController.java

包控制器;
导入play.mvc.*;
导入play.libs.ws.WSClient;
导入com.google.inject.inject;
导入java.util.concurrent.ExecutionException;
公共类HomeController扩展控制器{
私有静态wsws客户端;
@注入
公共HomeController(最终WSClient WSClient){
this.ws=wsClient;
}
public Result index()引发ExecutionException、InterruptedException{
返回ok(ws.url(“http://127.0.0.1:9095/metrics)。get().toCompletableFuture().get().getBody());
}
}