java - 向 heroku play framework 2.2.1 java app 添加新的遗物插件

标签 java heroku newrelic playframework-2.2 newrelic-platform

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

**问题/问题:**

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

1) 我可以使用插件的 heroku 命令添加插件“heroku addons:add newrelic:stark” 我在 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 配置:设置 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=更精细 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 应用程序仪表板,单击我的应用程序以查看附加组件并单击新遗留物,然后我来到一个要求我设置我的应用程序的屏幕 -

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

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

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

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

2) 使用

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

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

4) 使用

安装 jar
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 add 不应该选择我的应用程序,因为我已经在第 3 步添加了 api 和 java agent 作为插件吗??

感谢任何帮助或指导。

最佳答案

问题已解决。这是步骤。

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 

(根据需要更改其他设置,保持新遗物设置不变,不要忘记将您的应用程序名称替换为“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) 将自动检测新遗物,设置页面将显示相关指标。

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

关于java - 向 heroku play framework 2.2.1 java app 添加新的遗物插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21231687/

相关文章:

java - 使用输出流序列化对象

python - heroku run python manage.py 如何迁移?

ruby - Heroku 数据库 :pull Taps Load Error: no such file to load -- pg

java - 新遗物 Maven 异常

wordpress - 如何在 New Relic 上启用 PHP 代理?

java - 如何在 JFrameMenu 子菜单中并行放置两个元素?

javascript - Google map + 街景问题 - 如何禁用 Photo Sphere

java - JAX-RS:解析服务器上链接资源的 URI

Heroku pgAdmin4 隐藏我不允许访问的数据库

ruby - New Relic 与 goliath 的整合