当前位置: 首页 > 知识库问答 >
问题:

向heroku play framework 2.2.1 java应用程序添加new relic插件

裴曜灿
2023-03-14

这就是我想做的--

**问题/问题:**

这些是我迄今为止所做的步骤。

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

2) 添加newrelic。yml文件。添加了newrelic。yml文件作为附件保存在play framework的conf文件夹中(如果存在application.conf文件)。我捡到的文件来自https://gist.github.com/anfuerer/6169040(刚刚更新了许可证和应用程序信息)

3) 由于其播放2.2.1,更改了构建。sbt文件以添加依赖项。

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

4) heroku所需的My Procfile指定了JAVA\u OPTS,JAVA\u OPTS是使用命令设置的

heroku config:set JAVA\u OPTS=”-Xmx384m-Xss512k-XX:UseCompressedOops-Dfile。编码=UTF-8-javaagent:target/staged/newrelic-agent-3.4.0。jar-Dnewrelic。bootstrap\u classpath=true-Dnewrelic。配置。文件=/形态/新遗迹。yml newrelic。配置。log\u level=更精细的newrelic。调试=真“

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|grepNEW_RELIC”来检查,这给了我输出-

NEW_RELIC_LOG=stdout
NEW_RELIC_LICENSE_KEY=00000000000000000000000000000
NEW_RELIC_APP_NAME=test_application

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

我单击setup,但这需要我下载Java代理,它希望我将Java代理安装到Web服务器上。

根据@Jeanie的评论,尝试在Play app framework上安装java newrelic

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

2) 解压到play framework应用程序文件夹(项目文件夹)(这是否需要是play framework文件夹,其中包含play build文件??)使用

unzip newrelic_agent3.4.0.zip -d /path/to/appserver/

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

4)使用安装罐子

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 framework应用程序,我希望newrelic插件在heroku上工作,而不是在我的机器上本地工作。

问题:

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

2) heroku和new relic add-on是否应该选择我的应用程序,因为我已经在步骤3中添加了api和java代理作为附加组件??

感谢您的帮助或指导。

共有2个答案

王轶
2023-03-14

只是想把它弄清楚,这样我们就不会问你同样的基本问题了。你有没有违反https://devcenter.heroku.com/articles/newrelic并密切关注https://devcenter.heroku.com/articles/newrelic#java-配置?这应该会让你朝着正确的方向前进。

让我们知道这是否奏效,或者您是否需要进一步的帮助。如果需要,我们可以继续进行进一步的故障排除。

艾和通
2023-03-14

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

1) 获取Heroku上的附加组件

$ heroku addons:add newrelic:stark

2) 转到应用程序仪表板并单击资源。然后单击new relic插件。这将带您进入一个页面,它将要求您进行设置。

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

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

5) 编辑Heroku程序文件,如下所示:

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 

(根据您的需要更改其他设置,保持新的遗迹设置不变,不要忘记在“目标/通用/阶段/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应用程序,需要部署在weblogic服务器中。我目前正在为该应用程序制作ear文件。我的ear文件中有一个ejb jar。我想将log4j2 jar添加到此应用程序中。所以我的文件夹结构是 目前,我已经将JAR放在APP-INF文件夹/lib和META-INF/application中。xml我把JAR放在了模块中。这是我的申请表。xml 但它不接受log4j罐子。有什么解决方案吗

  • 我想知道是否可以将spring的其他参数(如)添加到spring boot app中,以便将其作为服务运行。 我检查了由自动生成的脚本: 所以也许它可以通过maven插件的选项来完成,但是除了JVM参数之外找不到其他的,这不是那么有用...

  • 这与我的问题相反,在OpenDayLight中安装自定义功能或模块?。我希望使用Hello World应用程序并添加以下功能的: ODL-RestConf ODL-MDSal-APIDOCS ODL-openflowplugin-flow-services ODL-openflowplugin-app-table-miss-enforcer ODL-OpenFlowPlugin-NXM-Exten

  • 我想为我的cordova android应用程序启用应用程序索引,如下所述:https://developers.google.com/app-indexing/webmasters/app 不幸的是,我找不到留档如何做一个科尔多瓦的应用程序。有一个插件收听和广播意向,但我不认为这将帮助我在这种情况下:https://github.com/Initsogar/cordova-webintent 我

  • 我正在尝试以编程方式设置一个spring boot应用程序上下文根。上下文根的原因是我们希望从访问应用程序,并将所有控制器路径附加到它。 下面是Web-App的应用程序配置文件。 这是主页面的索引控制器。 应用程序的新根应该位于,但它仍然位于。 我错过了什么导致spring boot没有在请求映射之前添加上下文根?