覆盖 Cloud Foundry java 构建包使用的 NewRelic 配置文件

Override NewRelic config file used by Cloud Foundry java build pack

我在 Cloud Foundry 中部署了一个 Spring 启动应用程序,使用标准 Java build pack。由于应用程序绑定到 NewRelic,因此构建包将 NewRelic 代理注入到环境中。

NewRelic 文档谈到在代理 jar 位置旁边添加一个 newrelic.yml 文件以自定义检测行为。 CF场景下,能否位于部署的Spring Boot jar的classpath中?如何启用此行为?

In the CF scenario, can it be located in the classpath of the deployed Spring Boot jar? How do I enable this behavior?

我不知道,但是你可以做两件事:

  1. 通过您绑定的用户提供的服务为 NewRelic 代理指定额外的配置选项。

    https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-new_relic_agent.md#user-provided-service-optional

    (Optional) Any additional entries will be applied as a system property appended to -Dnewrelic.config. to allow full configuration of the agent.

  2. 如果您要分叉 Java 构建包,您可以覆盖您自己的配置文件。

    https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-new_relic_agent.md#additional-resources

    您的自定义文件将放在这里:https://github.com/cloudfoundry/java-buildpack/blob/master/resources/new_relic_agent/newrelic.yml

您可能不想分叉构建包,因为这会造成一团糟的其他问题。

我想第三种选择可能是使用 .profile.d 脚本,但这对 Java 应用程序来说很麻烦,因为您必须将文件放在 JAR 文件的根目录下。虽然它可以工作。

https://docs.cloudfoundry.org/devguide/deploy-apps/deploy-app.html#profile

希望对您有所帮助!