我想将newrelic集成到我的flink项目中。我已经从我的帐户下载了我的 newrelic.yml 文件,并且只更改了应用程序名称,并且我在项目根文件夹中创建了一个名为 newrelic 的文件夹,并将 newrelic.yml 文件放入其中。
我还在我的buld.sbt文件中放置了以下依赖项:
"com.newrelic.agent.java" % "newrelic-api" % "3.0.0"
我正在使用以下命令来运行我的 jar:
flink run -m yarn-cluster -yn 2 -c Main /home/hadoop/test-assembly-0.2.jar
我想,我的代码无法读取我的 newrelic.yml 文件,因为我在 newrelic 中看不到我的应用程序名称。我是否需要在某处初始化新遗物代理(如果是,如何?请帮助我进行此集成。
你应该只需要 newrelic.jar 和 newrelic.yml 文件是可访问的,并且-javaagent:path/to/newrelic.jar
作为参数传递给 JVM。你可以尝试将newrelic.jar和newrelic.yml都放入lib/目录中,以便将它们复制到作业和任务管理器中,然后将其添加到conf/flink-conf.yaml中:
env.java.opts: -javaagent:lib/newrelic.jar
两个 New Relic 文件应该在同一个目录中,并且您应该能够从build.sbt文件中删除 New Relic 行。还要仔细检查您的许可证密钥是否在 newrelic.yml 文件中。
我还没有对此进行测试,但主要目标是让 .yml 和 .jar 在同一目录中可访问(yml 可以进入不同的目录,但需要传递其他 JVM 参数才能引用它(并将-javaagent:path/to/newrelic.jar
传递给 JVM 参数。如果遇到问题,请尝试在.jar所在目录的日志文件夹中检查新的遗物日志。