Vert.X application code not being profiled

Please provide a [permalink]
https://rpm.newrelic.com/accounts/1873980/applications/485436641?tw[end]=1574949325&tw[start]=1574947400

Feel free to add screenshots of any errors, or what you think the issue could be:
No profiling of application code and no details of external dependencies like DB2, Redis, Email so on

Add your Java agent version here
newrelic-agent-4.12.1.jar

  • Rule out some possible causes with our [New Relic Diagnostics tool]
    One error is shown
    {
    “Identifier”: {
    “Name”: “VendorsVersions”,
    “Category”: “Java”,
    “Subcategory”: “JVM”
    },
    “Override”: false,
    “Result”: {
    “Status”: “Failure”,
    “Summary”: “There are 2 Java process(es) running on this server. We detected:\n2 process(es) with an unsupported vendor/version combination.\nPlease see nrdiag-output.json results for the Java/JVM/VendorsVersions task for more details.”,
    “URL”: “https://docs.newrelic.com/docs/agents/java-agent/getting-started/compatibility-requirements-java-agent#jvm”,
    “FilesToCopy”: null,
    “Payload”: [
    {
    “PID”: 17236,
    “Vendor”: “unknown”,
    “Version”: “unknown”,
    “Supported”: 0
    },
    {
    “PID”: 20632,
    “Vendor”: “unknown”,
    “Version”: “unknown”,
    “Supported”: 0
    }
    ]
    }
    }
    We are using OpenJDK on Windows 10
    openjdk version “1.8.0_222”
    OpenJDK Runtime Environment (build 1.8.0_222-b10)
    Eclipse OpenJ9 VM (build openj9-0.15.1, JRE 1.8.0 Windows 10 amd64-64-Bit Compressed References 20190717_421 (JIT enabled, AOT enabled)
    OpenJ9 - 0f66c6431
    OMR - ec782f26
    JCL - f147086df1e based on jdk8u222-b10)

Is this a configuration issue?
Need guidance

Are you not seeing data? What frameworks are you using?
vertx-web version 3.8.0

Describe what you are seeing:
After setting enable_auto_transaction_naming: false, we are seeing our endpoints being logged.
If this attribute is true, we see only /NettyDispatcher

How does what you are seeing differ from what you expect to see?
Our application classes are not being profiled to know the bottlenecks
Our external dependencies and time taken in them like db connection fetch, query execute time is not being displayed

In using the link you provided, I checked the Environment information we have here and I see vert.x classes picked up

I then looked at the metric data we are collecting and I see a number of classes/methods instrumented that are branded vert.x

Verbose logging should reveal what the agent is picking up from the application for the calls you are seeking. Support can even assist with the log analysis through a Support ticket, if needed. Be sure you’re pushing traffic through the calls when you are trying to get the logging information so that the agent has every opportunity to see the calls. Information on generating verbose logging can be found at https://docs.newrelic.com/docs/agents/java-agent/troubleshooting/generate-debug-logs-troubleshooting-java.

I also need to caution you on setting enable_auto_transaction_naming to false as it causes the agent to resort to using the URI for naming transactions and could generate an MGI condition with the application. There’s helpful information regarding this at Relic Solution: Naming web transactions in Java (or "how to self-mitigate Java MGIs")

Further troubleshooting steps beyond logging include reviewing how the calls you expect to see are being made and whether the agent can trace that activity with a transaction. Any snippets or information you provide can help with the investigation.

Hey @Jeanie_Swan

Thanks for the inputs, we upgraded to newrelic agent 5.8.0
In the yml file, we just updated the license key and app_name and now we are seeing more profiling regarding the vert.x classes

However, we are not seeing the following profiled

  1. Our application classes
  2. External Services like DB2, Redis
  3. The endpoint names are strange and not readable e.g. /cc-api/\Q/v1/accounts/\E(?<p0>[^!*’();@&amp;+$/?#[]]*)? (GET)

please do help us understand how to proceed

do we need to add @Trace to all the functions in our codebase?

do let me know if you need any additional data to help debug our issue

You may not necessarily need to use @Trace annotation. Start by running a 10 minute (most granular) Thread profile while pushing traffic through those calls you want to see. If the agent has visibility, they should show up. You can use the Custom Instrumentation Editor with the thread profile to apply instrumentation. If neither of those work, then you may need to annotate the code to make the agent see those calls.