akka-http 未在 NewRelic 中显示指标
akka-http not showing metrics in NewRelic
我正在尝试使用 NewRelic 监控我的 akka-http Rest 网络服务
应用只有一个GET url(用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密钥(因为日志没有说没有找到密钥)
新的Relic监控系统中出现正确名称的应用程序
但是 NewRelic 没有显示任何指标
我需要做什么才能在 NewRelic 上看到一些指标?
我真的不知道我做了什么让它起作用,我所做的改变是:
在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代理的版本)
当您将 newrelicAppName
的值指定为 name.toString
时,您没有按照预期进行操作。
name
是类型 sbt.SettingKey
的值,其中包含设置名称、类型的详细信息以及密钥用途的简短描述。
实际包含值的类型是sbt.Setting
。您可以通过调用 .value
方法从 SettingKey
(在当前项目和配置中)获取 Setting
。
所以当你像这样设置值时:
newrelicAppName := name.toString
值看起来像这样:
$ show newrelicAppName
[info] sbt.SettingKey$$anon@54ec2887
是的,那实际上是一个包含很多奇怪字符的字符串。
另一方面,如果您使用 .value
调用:
newrelicAppName := name.value
值看起来像:
$ show newrelicAppName
[info] my-project
我最好的猜测是 New Relic 不喜欢带有奇怪字符(如美元符号和&符号)的应用程序名称。通过设置更正常的字符串,您使 New Relic 更有可能接受这样的名称作为输入。
注意: newrelicAppName
的默认值是包含项目的名称,因此在第一个示例中根本不设置该值可能 "just worked" 如您所愿。
我正在尝试使用 NewRelic 监控我的 akka-http Rest 网络服务
应用只有一个GET url(用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密钥(因为日志没有说没有找到密钥)
新的Relic监控系统中出现正确名称的应用程序
但是 NewRelic 没有显示任何指标
我需要做什么才能在 NewRelic 上看到一些指标?
我真的不知道我做了什么让它起作用,我所做的改变是:
在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代理的版本)
当您将 newrelicAppName
的值指定为 name.toString
时,您没有按照预期进行操作。
name
是类型 sbt.SettingKey
的值,其中包含设置名称、类型的详细信息以及密钥用途的简短描述。
实际包含值的类型是sbt.Setting
。您可以通过调用 .value
方法从 SettingKey
(在当前项目和配置中)获取 Setting
。
所以当你像这样设置值时:
newrelicAppName := name.toString
值看起来像这样:
$ show newrelicAppName
[info] sbt.SettingKey$$anon@54ec2887
是的,那实际上是一个包含很多奇怪字符的字符串。
另一方面,如果您使用 .value
调用:
newrelicAppName := name.value
值看起来像:
$ show newrelicAppName
[info] my-project
我最好的猜测是 New Relic 不喜欢带有奇怪字符(如美元符号和&符号)的应用程序名称。通过设置更正常的字符串,您使 New Relic 更有可能接受这样的名称作为输入。
注意: newrelicAppName
的默认值是包含项目的名称,因此在第一个示例中根本不设置该值可能 "just worked" 如您所愿。