0

我正在学习如何使用 Kamon 库进行检测。

这是我的 build.sbt

libraryDependencies ++= Seq(
   "io.kamon" %% "kamon-core" % "0.6.7"
)

这是我的 plugins.sbt(在项目文件夹中)

addSbtPlugin("io.kamon" % "sbt-aspectj-runner" % "1.0.1")

这是我的代码

import kamon.Kamon

object KamonTest extends App {
   Kamon.start()
   val counter = Kamon.metrics.counter("foo")
   1 to 100000 foreach { x =>
      Thread.sleep(10)
      counter.increment()
   }
   readLine()
   print("press any key to exit")
   readLine()
   Kamon.shutdown()
}

现在,当我运行这个应用程序并运行jmc然后进入 MBEAN 浏览器时。我看到这个

在此处输入图像描述

所以我找不到我在代码中定义的计数器“foo”。

4

1 回答 1

0

我在 Kamon 的 gitter 频道的帮助下解决了这个问题

为了发布到 JMX 控制台,我们在 build.sbt 中还需要以下两个依赖项

"io.kamon" %% "kamon-scala" % "0.6.7",
"io.kamon" %% "kamon-jmx" % "0.6.7"

我们还需要 application.conf 中的以下条目

kamon.jmx {
  subscriptions {
    histogram       = [ "**" ]
    min-max-counter = [ "**" ]
    gauge           = [ "**" ]
    counter         = [ "**" ]
    trace           = [ "**" ]
    trace-segment   = [ "**" ]
    system-metric   = [ "**" ]
    http-server     = [ "**" ]
    kamon-mxbeans   = [ "**" ]
  }
}

kamon.modules {
  kamon-mxbeans {
    auto-start = yes
    requires-aspectj = no
    extension-class = "kamon.jmx.extension.JMXMetricImporter"
  }
}

kamon.kamon-mxbeans {
  mbeans = [
    { "name": "example-mbean", "jmxQuery": "example:type=myBean,name=*",
      "attributes": [
        { "name": "foo", "type": "counter" }
      ]
    }
  ],
  identify-delay-interval-ms = 1000,
  identify-interval-ms = 1000,
  value-check-interval-ms = 1000
}
于 2017-09-19T20:48:38.633 回答