akka-http未在NewRelic中显示指标

时间:2016-03-11 01:15:34

标签: sbt akka newrelic sbt-native-packager akka-http

我正在尝试使用NewRelic

监控我的akka​​-http Rest网络服务

该应用只有一个 GET网址(使用akka-http定义)

我在 plugins.sbt

中有以下配置
logLevel := Level.Warn
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.4")
addSbtPlugin("com.gilt.sbt" % "sbt-newrelic" % "0.1.4")

我在 build.sbt

中有以下配置
scalaVersion := "2.11.7"
name := "recommender-api"

...blablabla...

libraryDependencies += "com.typesafe.akka" % "akka-actor_2.11" % "2.4.2"
libraryDependencies += "com.typesafe.akka" % "akka-http-experimental_2.11" % "2.4.2"
libraryDependencies += "com.typesafe.akka" % "akka-http-spray-json-experimental_2.11" % "2.4.2"
libraryDependencies += "com.typesafe.akka" % "akka-slf4j_2.11" % "2.4.2"

newrelicIncludeApi := true
newrelicAppName := name.toString
enablePlugins(JavaServerAppPackaging, UniversalDeployPlugin, NewRelic)

我用 sbt universal:publish 编译(并部署)代码,它创建一个.zip,在.zip中有一个可执行文件。

我通过环境传递newRelic licenceKey(NEW_RELIC_LICENSE_KEY)

程序启动并且一切正常,找到newRelic键(因为日志没有说它没有找到密钥)

aplication在newRelic监视系统中以正确的名称显示

但NewRelic不显示任何指标

我需要做些什么来查看NewRelic的一些指标?

2 个答案:

答案 0 :(得分:1)

当您将newrelicAppName的值指定为name.toString时,您的效果并不理想。

namesbt.SettingKey类型的值,其中包含设置名称,类型的详细信息以及密钥用途的简短说明。

实际包含值的类型是sbt.Setting。您可以通过调用Setting方法从SettingKey(在当前项目和配置中)获得.value

所以当你设置这样的值时:

newrelicAppName := name.toString

值看起来像这样:

$ show newrelicAppName
[info] sbt.SettingKey$$anon$4@54ec2887

是的,这实际上是一个包含许多奇怪字符的字符串。

另一方面,如果你使用.value电话:

newrelicAppName := name.value

该值看起来像:

$ show newrelicAppName
[info] my-project

我最好的猜测是New Relic不喜欢带有奇怪字符的应用程序名称(如美元符号和&符号)。通过设置更正常的字符串,您更有可能New Relic会接受这样的名称作为输入。

注意: newrelicAppName的默认值是包含项目的名称,因此在第一个示例中根本不设置值可能会“正常工作”我喜欢。

答案 1 :(得分:0)

我真的不知道我做了什么让它发挥作用,我所做的改变是:

在build.sbt

newrelicVersion := "3.26.1"
newrelicAppName := "recommenders-jobs-api-monitor"

在plugin.sbt

addSbtPlugin("com.gilt.sbt" % "sbt-newrelic" % "0.1.5")

(我更新了de sbt-newrelic版本)
(我扼杀了新遗物应用程序的名称)
(我指定了Java代理的版本)