Your data. Anywhere you go.

New Relic for iOS or Android


Download on the App Store    Android App on Google play


New Relic Insights App for iOS


Download on the App Store


Learn more

Close icon

JVM Data source is not displaying any metrics


#1

Hello,

We are using the NewRelic Agent 4.4.0 but still nothing metrics are getting displayed in this space.
Our application is Spring boot application and Jmx is enabled at the server side.

Premlink : https://rpm.newrelic.com/accounts/1542405/applications/119680343/instances?tw[end]=1536121056&tw[start]=1536119256#tab-instances_tabs_146829357=instance_app_server_data_sources-146829357

Can you please specify what exactly we are missing.

Regards,
Romender


New Relic edit

  • I want this, too
  • I have more info to share (reply below)
  • I have a solution for this

0 voters

We take feature ideas seriously and our product managers review every one when plotting their roadmaps. However, there is no guarantee this feature will be implemented. This post ensures the idea is put on the table and discussed though. So please vote and share your extra details with our team.


#2

Hi @Romender_Sardar, which app server are you using? and which version? You can find the list of app servers whose JVM Data source metrics are collected by the New Relic Java agent as listed in the below doc:
https://docs.newrelic.com/docs/agents/java-agent/features/jvm-metrics-page#dashboard-tabs

If the app server’s Data source metrics are not collected by default, you can manually implement custom JMX instrumentation as below doc described:
https://docs.newrelic.com/docs/agents/java-agent/custom-instrumentation/custom-jmx-instrumentation-yaml

Hope this helps!


#3

Hi @xlu,

Whether any specific connection pooling api will work with tomcat ?
In current application, I was trying with the DBCP connection pool setting with Tomcat as web server.
I was able to see all MBeans using JConsole.


#4

We were able to use the following in catalina.sh:

CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

We also used org.apache.tomcat.jdbc.pool.DataSourceFactory, whereas it looks like you are using org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection.

Perhaps you need to do take the steps outlined here? Would you try this out and see how it works?


#5

Hi,

I already mention that via JConsole, I was able to monitor the pool settings. Does the NewRelic looks at any specific port for the JMX configuration ? currently my application jmx is configured at 5000 port.

Attached the image of the connection pool from JConsole.


#6

Hi @Romender_Sardar

As Lucy noted, since you’re using org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection while the New Relic Java Agent looks for org.apache.tomcat.jdbc.pool.DataSourceFactory you’ll need to use Custom JMX Instrumentation to the connection pool information:

https://docs.newrelic.com/docs/agents/java-agent/custom-instrumentation/custom-jmx-instrumentation-yaml


#7

Hi,

I added this YAML to the extensions folder, but I can’t see it in metric explorer. Could you help?

name: TomcatCustom
version: 1.0
enabled: true
jmx: 
  - object_name: "org.apache.tomcat.jdbc.pool.jmx:name=dataSourceMBean,type=ConnectionPool"
    metrics:
      - attributes: Active, Idle, CreatedCount, BorrowedCount, Size, ReconnectedCount, ReleasedCount, ReleasedIdleCountZ

#8

Hey @george.secillano,

You should be able to check FINER level logs to see if the file is picked up. The entries should look something like this:

Apr 17, 2019 14:29:32 +0100 [44630 1] com.newrelic.agent.extension.ExtensionService FINER: Reading custom extension file /apps/newrelic/extensions/TomcatCustom.yml
Apr 17, 2019 14:29:32 +0100 [44630 1] com.newrelic.agent.extension.ExtensionService FINER: Adding extension with name TomcatCustom and version 1.0

If the file isn’t read, it should give an indication as to why.


#9

I have verified that it was read. Anything else I should check?


#10

Do you have a permalink to the application so we can take a look?

Thanks


#11

Hello all,

A support ticket was also created in parallel with this post where we used the information that was provided here by our awesome support engineers to look a bit further on this matter. I wanted to update this post regarding the outcome of the case so those who may come across the same question could find an answer here.

The Data Source feature of the JVM tab is populated by the default metrics that are captured by the agent using an out-of-the-box solution. This requires using the supported technologies that @xlu linked in her response earlier. As you are using DBCP connection pool setting with Tomcat as web server the agent is not able to identify the default metrics that it looks for to populate the Data Source section. You can find the List of default metrics that the agent looks for Tomcat application here.

@jfalleur suggested the correct path to use custom instrumentation for these JMX metrics, but keep in mind that this approach tells the agent to capture these metrics but it will not be placed in the Datasource tab as this feature only gets populated by the default metrics. Based on our conversation here and also in the ticket, a workaround for this is to use the above to capture the metrics and then leverage Insights Metrics Exolorer to create dashboards for these metrics.

Adding DBCP connection pool setting with Tomcat as web server to the supported list of technologies for Data Source is a feature request at this point and we will proceed with creating a poll for this feature in the community as well.

Cheers,