【问题标题】:adding new relic addon to heroku play framework 2.2.1 java app向heroku play framework 2.2.1 java app添加新的relic插件
【发布时间】:2014-02-09 11:40:12
【问题描述】:

这就是我想要做的。 --> 在 Heroku 上部署一个 play framework (2.2.1) Java web 应用程序,并使用 newrelic 作为插件。

**问题/问题:**

这些是我到目前为止所做的步骤。

1) 我可以使用 addon "heroku addons:add newrelic:stark" 的 heroku 命令添加插件,我在 heroku 资源中看到了插件。

2) 添加 newrelic.yml 文件。添加 newrelic.yml 文件作为附件并保存在播放框架的 conf 文件夹中(是否存在 application.conf 文件)。我提取的文件来自https://gist.github.com/anfuerer/6169040(刚刚更新了许可证和应用信息)

3) 作为它的play 2.2.1,更改了built.sbt 文件以添加依赖项。

"com.newrelic.agent.java" % "newrelic-agent" % "3.4.0",
  "com.newrelic.agent.java" % "newrelic-api" % "3.4.0"

4) 我的 Heroku 所需的 Procfile 指定了 JAVA_OPTS,并使用命令设置了 JAVA_OPTS

heroku config:set JAVA_OPTS=”-​​Xmx384m -Xss512k -XX:+UseCompressedOops -Dfile.encoding=UTF-8 -javaagent:target/staged/newrelic-agent-3.4.0.jar -Dnewrelic.bootstrap_classpath=true - Dnewrelic.config.file=./conf/newrelic.yml newrelic.config.log_level=finer newrelic.debug=true”

5) 显然所有更改都添加到 git 并在通过命令“git heroku push master”推送到 heroku 之前提交。

6) 一些基本的健全性测试.. 我在 heroku config 命令之后看到我的配置 -

JAVA_OPTS:             -Xmx384m -Xss512k -XX:+UseCompressedOops -Dfile.encoding=UTF-8 -javaagent:target/staged/newrelic-agent-3.4.0.jar -Dnewrelic.bootstrap_classpath=true -Dnewrelic.config.file=./conf/newrelic.yml newrelic.config.log_level=finer newrelic.debug=true
NEW_RELIC_APP_NAME:   test_application
NEW_RELIC_LICENSE_KEY: 000000000000000000000000000000000  (changed offcourse)
NEW_RELIC_LOG:         stdout
PATH:                  .jdk/bin:.sbt_home/bin:/usr/local/bin:/usr/bin:/bin
REPO:                  /app/.sbt_home/.ivy2/cache
SBT_OPTS:              -Xmx384m -Xss512k -XX:+UseCompressedOops

还尝试通过“heroku run env | grep NEW_RELIC”进行检查,这给了我输出 -

NEW_RELIC_LOG=stdout
NEW_RELIC_LICENSE_KEY=00000000000000000000000000000
NEW_RELIC_APP_NAME=test_application

现在我转到我的 Heroku 应用程序仪表板,单击我的应用程序以查看附加组件,然后单击新的 relic,然后我来到一个屏幕,要求我设置我的应用程序-

我单击设置,但它需要我下载 Java 代理,并且它要我将 Java 代理安装到网络服务器上。

#################编辑

根据@Jeanie 的评论,尝试在 Play 应用框架上安装 java newrelic

1) 在下载文件夹中下载新的 relic java 代理。

2)使用

解压到播放框架应用文件夹(项目文件夹)(这需要是播放构建文件所在的播放框架文件夹吗??)
unzip newrelic_agent3.4.0.zip -d /path/to/appserver/

3) 将目录更改为 /appfolder/newrelic/

4) 使用

安装 jars
java -jar newrelic.jar install

5) 这是我收到的信息。

Jan 20, 2014 12:48:39 -0700 [6935 1] com.newrelic INFO: Agent is using Logback
***** ( ( o))  New Relic Java Agent Installer
***** Installing version 3.4.0 ...
Could not edit start script because:
 .:. Could not locate a Tomcat, Jetty, JBoss, JBoss7 or Glassfish instance in /home/amit/Applications/play-2.2.1/appfolder/
Try re-running the install command with the -s <AppServerRootDirectory> option or from <AppServerRootDirectory>/newrelic.
If that doesn't work, locate and edit the start script manually.
No need to create New Relic configuration file because:
 .:. A config file already exists: /home/amit/Applications/play-2.2.1/appfolder/newrelic/newrelic.yml
***** Install incomplete
***** Next steps:
For help completing the install, see https://newrelic.com/docs/java/new-relic-for-java

我在这里遗漏了什么吗?请注意,这是一个 Play 框架应用程序,我希望 newrelic 插件在 heroku 上工作,而不是在我的机器上本地工作。

#

问题:

1) 如何在 heroku 上安装 java 代理?我首先需要这样做吗?

2) heroku 和 new relic 不应该添加我的应用程序,因为我已经在步骤 3 中添加了 api 和 java 代理作为插件吗??

任何帮助或指导表示赞赏。

【问题讨论】:

    标签: java heroku newrelic playframework-2.2 newrelic-platform


    【解决方案1】:

    问题已解决。以下是步骤。

    1) 通过

    在 Heroku 上添加插件
    $ heroku addons:add newrelic:stark
    

    2) 转到您的应用仪表板并单击资源。然后点击新的遗物插件。这会将您带到一个页面,在该页面上会要求您进行设置。

    3) 点击设置,选择Java,点击查看你的许可证号并下载jar文件。

    4) 如设置页面所述,将 jars 文件解压缩到项目的根目录。不要运行安装程序,因为您需要在 Heroku 上工作的新遗物。

    5) 编辑 Heroku Procfile 如下:

    web: target/universal/stage/bin/myapp -Dhttp.port=${PORT} ${java_opts} -DapplyEvolutions.default=true -Ddb.default.driver=com.mysql.jdbc.Driver -Ddb.default.url=${CLEARDB_DATABASE_URL} -J-javaagent:newrelic/newrelic.jar -J-Dnewrelic.config.file=newrelic/newrelic.yml 
    

    (根据需要更改其他设置,保持新的relic设置不变,不要忘记将您的应用名称放在“target/universal/stage/bin/myapp”中的myapp位置)

    6) 将依赖项添加到 build.sbt 或 Build.scala

    "com.newrelic.agent.java" % "newrelic-agent" % "3.7.0"
    

    7) 使用git push heroku master将应用部署到heroku

    8) 新的遗物会被自动检测到,设置页面会显示相关的指标。

    如果有人遇到任何问题,请告诉我。

    【讨论】:

    • 应用您的路径时出现此错误:2014-02-13T23:09:17.185606+00:00 app[web.2]: FATAL ERROR in native method: processing of -javaagent failed
    • 当我将 newrelic 文件夹重命名为 lib 时,它起作用了。
    • @ÖmerFarukGül 完全相同的错误(本机中的致命错误...)并重命名为 libworked !任何解释为什么? Heroku 是否期望 lib 文件夹?
    【解决方案2】:

    只是为了避免妨碍我们向您询问相同的基本问题。你有没有按照https://devcenter.heroku.com/articles/newrelic 的说明,密切关注https://devcenter.heroku.com/articles/newrelic#java-configuration 的Java 配置?这应该会让你朝着正确的方向前进。

    让我们知道这是否有效,或者您是否需要进一步的帮助。有一张与此相关的票证,如果需要,我们可以继续进一步排除故障。

    【讨论】:

    • 嗨珍妮。在 Play 2 的设置文档中,它使用 -javaagent:target/staged/newrelic-agent-2.X.X.jar
    • 我觉得应该是target/universal/stage/lib/com.newrelic.agent.java.newrelic-agent-2.X.X.jar
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2014-09-06
    • 2014-03-22
    • 2019-02-13
    相关资源
    最近更新 更多