Kamon配置错误'要求-aspectj'

时间:2017-11-11 20:57:48

标签: akka aspectj kamon

我已将kamon添加到我的独立 akka 应用程序中,并且我收到此错误:

com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'requires-aspectj'上的

Kamon.start()错误。

这是 application.conf 的相对内容。

{
...
  modules {
    kamon-akka {
      auto-start = no
    }
    kamon-statsd {
      auto-start = no
    }
    kamon-system-metric {
      auto-start = no
      requires-aspectj = no
      extension-id = "kamon.system.SystemMetrics"
    }
  }
}

application.conf: 36: requires-aspectj has type STRING rather than OBJECT

但是,当我包含被要求的财产时

{
  modules {
    requires-aspectj = no
  ...
  }
}

我收到此错误:application.conf: 36: requires-aspectj has type STRING rather than OBJECT

如果我删除Kamon.start()我的应用程序照常启动

这是我的 build.sbt 的摘录:

lazy val root = (project in file("."))
  .settings(name := "kamon-akka")
  .settings(Seq(scalaVersion := "2.11.8"))
  .settings(libraryDependencies ++= Seq(
    akka.Http,
    akka.slf4jApi,
    akka.akkaSlf4j,
    kamon.Core,
    kamon.Akka,
    kamon.LogReporter,
    kamon.SystemMetrics,
    aspectj.aspectjtools,
    aspectj.aspectjweaver,
    aspectj.aspectjrt
  ))
  .settings(aspectjSettings: _*)

PS:

  • kamon = 0.6.7
  • aspectj = 1.8.9
  • sbt 0.13.13
  • scala 2.12.3
  • 我也使用此插件addSbtPlugin("com.typesafe.sbt" % "sbt-aspectj" % "0.9.4")

任何想法?

1 个答案:

答案 0 :(得分:1)

首先,您的application.conf看起来很奇怪,因为它似乎没有kamon命名空间。它应该如下所示(注意第一行):

kamon {
  ...
  modules {
    kamon-akka {
      ...
    }
    kamon-statsd {
      ...
    }
    kamon-system-metrics {
      ...
    }
  } 
}

其次,由于您使用的是sbt-aspectj插件,请将以下内容添加到build.sbt(来源:http://kamon.io/documentation/get-started/):

import com.typesafe.sbt.SbtAspectj._

// Bring the sbt-aspectj settings into this build
aspectjSettings

// Here we are effectively adding the `-javaagent` JVM startup
// option with the location of the AspectJ Weaver provided by
// the sbt-aspectj plugin.
javaOptions in run <++= AspectjKeys.weaverOptions in Aspectj

// We need to ensure that the JVM is forked for the
// AspectJ Weaver to kick in properly and do it's magic.
fork in run := true