Playframework Java Play 2.2没有';不支持javaagent

Playframework Java Play 2.2没有';不支持javaagent,playframework,newrelic,playframework-2.2,Playframework,Newrelic,Playframework 2.2,使用Java Play框架的早期版本,我们可以提供一个命令行argent来加载监视代理。例如,NewRelic可以作为 ./path/to/start -javaagent:/path/to/newrelic.jar 随着2.2的发布,游戏团队已经显著改变了开始脚本。据我所知,它不再支持JavaAgent。还有其他人使用Java Play 2.2+运行NewRelic吗?Play很好,但是如果您不能在生产环境中监视它,它将是无用的技术…在Play Framework 2.2中使用新的本机打包程

使用Java Play框架的早期版本,我们可以提供一个命令行argent来加载监视代理。例如,NewRelic可以作为

./path/to/start -javaagent:/path/to/newrelic.jar

随着2.2的发布,游戏团队已经显著改变了开始脚本。据我所知,它不再支持JavaAgent。还有其他人使用Java Play 2.2+运行NewRelic吗?Play很好,但是如果您不能在生产环境中监视它,它将是无用的技术…

在Play Framework 2.2中使用新的本机打包程序,您需要在
Java\u OPTS
环境变量中设置Java选项。

您似乎可以在Java选项前面加上
-J
(以类似于使用
-D
的系统属性的方式):

$bin/-J-javaagent:lib/newrelic.jar
在查看脚本本身时发现了这一点,但在使用摘要中注意到了这一点:

$ bin/<app> -h
Usage:  [options]    
...
  -J-X               pass option -X directly to the java runtime
                     (-J is stripped)
...
$bin/-h
用法:[选项]
...
-J-X将选项-X直接传递到java运行时
(-J被剥离)
...

在Play Framework 2.2版中,应用程序启动脚本更改为其他目录。要加载javaagent库,必须指定其完整路径

例如,如果项目的lib目录中有heroku-javaagent-1.4.jar

heroku config:set JAVA_OPTS="-Xmx384m -Xss512k -XX:+UseCompressedOops -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCDateStamps -javaagent:/app/lib/heroku-javaagent-1.4.jar=stdout=true,lxmem=true"

这适用于PlayFramework 2.3.x 我将代理jar+yml配置文件复制到PLAY\u APP\u ROOT/lib

sbt start -J-javaagent:lib/newrelic.jar

您好,James-这是一个很好的建议。当我尝试这样做时,它对带-D标志的系统属性有效,但对-J java选项无效。当我将java_OPTS导出设置为“-J-javaagent:/path/to/newrelic.jar-Dnewrelic.bootstrap_classpath=true”时,javaagent没有启动。Bummer。我将调查这为什么不起作用。它似乎应该起作用。我只是设置了我的JAVA_OPTS=“-J-javaagent:path/JAVA.newrelic-agent-3.0.1.jar”,它就起作用了。(使用play2.2,newrelic,heroku)很棒的发现!!参数-J导致NewRelic代理加载。出于某种原因,NewRelic日志表明它正在发送数据,但NewRelic的web UI没有更新。我会在收到他们的支持团队的消息后立即报告。我现在似乎正在获取数据。讽刺的是,我认为收集失败了。有趣的是,我仍然没有获取数据和更新NewRelic支持团队说Play 2.2还不受支持。你使用的是什么版本的NewRelic库?我使用的是版本2.21.4(我刚刚从中注意到了最新版本)。它看起来确实可以工作;但我正在测试的应用程序很简单。它确实发现了一个异常(故意抛出)。这是我第一次使用New Relic(通过Heroku);我想最好等到正式支持Play 2.2。我已经开始工作了!现在我还有事务。我需要升级到最新的3.0.1代理。
sbt start -J-javaagent:lib/newrelic.jar