We have a handful of legacy apps which deploy to Weblogic. And, oddly, some more that deploy to Wildfly (I’ll pretend this isn’t the case and refer exclusively to WebLogic going forward). In all cases, there are multiple applications (deployed as EAR files) on each Weblogic cluster, and each runs within the same JVM.
Following NR’s documentation for instrumenting Weblogic applications by modifying the start script only gives us per-cluster visibility. Ditto for Wildfly. This makes sense, of course, as it’s per-JVM.
Is there a way I can tell the NR agent that I want it to use a different application name for each EAR?
I have a couple options I’m aware of:
-
Use auto-app-naming such that the agent will use servlet names and such to customize the app name. I believe this will work, and we’re working on setting that up now to try it out. But most of our apps have multiple servlets, and so this will end up breaking things down farther than I want, which will complicate aggregation at the per-app level (which for our use case is the level that’s the most important). Plus, any code that runs outside an auto-app-naming-supported context (e.g. initialization at startup) will still report itself as belonging to the entire Weblogic cluster.
-
Split up our Weblogic cluster’s servers so that there is only one app per JVM. This will require some custom targeting for each application and will complicate our infrastructure a bit, but then apps and JVMs would be 1:1, and each could have a unique newrelic.yml and therefore a unique app name.
Frankly, I don’t really like either of these options. Is there another? What I’m really looking for is the ability to specify a single app name per EAR, and have the NR agent honor that, regardless of the number of EARs running within the JVM, and without having to alter our deployment topology.