我想在我的flink项目中集成newrelic。我从我的帐户下载了我的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代理(如果是,如何?)。请帮我解决这个问题。
答案 0 :(得分:0)
您应该只需要可访问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所在目录的日志文件夹中检查新的遗留日志。