Java Play 2.2不支持javaagent

时间:2013-09-28 19:16:06

标签: playframework newrelic playframework-2.2

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

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

随着2.2的发布,Play团队已经显着改变了启动脚本。据我所知,它不再支持javaagents。有没有其他人使用Java Play 2.2+运行NewRelic?播放很棒,但如果你无法在生产环境中监控它,它就是无用的技术......

4 个答案:

答案 0 :(得分:13)

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

$ bin/<app> -J-javaagent:lib/newrelic.jar

在脚本本身中发现了这一点,但在使用摘要中注明了这一点:

$ bin/<app> -h
Usage:  [options]    
...
  -J-X               pass option -X directly to the java runtime
                     (-J is stripped)
...

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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"

答案 3 :(得分:0)

适用于PlayFramework 2.3.x. 我将代理jar + yml配置文件复制到PLAY_APP_ROOT / lib

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