cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Configure JVM Heap space memory monitoring to split by host

Afrezal_Karim
Contributor

Dear Dynatrace Warriors.
Hope you guys are doing well. 

Is it possible to Configure JVM Heap space memory monitoring and splitting by host/server? Instead of monitoring the overall server process, how can I focus on the JVM heap space only for a specific server? I would like to get the details of this and showcase this on the Dashboard so that my team can monitor and review this. 

Look forward to your guys' response on this. Thank you so much for helping out guys. 

Appreciate it as always. 
Thanks, 

Regards, 
Afrezal Karim

 

 

 

6 REPLIES 6

AntonPineiro
DynaMight Guru
DynaMight Guru

Hi,

I am not sure if I understand you but can you execute this in data explorer?

builtin:tech.jvm.memory.pool.used:splitBy("dt.entity.process_group_instance"):sort(value(auto,descending)):parents

If you choose table visualization for example, you should see 3 columns:

  • Hostname.
  • Process.
  • JVM heap memory pool used bytes.

Best regards

❤️ Emacs ❤️ Vim ❤️ Bash ❤️ Perl

Hi @AntonPineiro ,

Thank you so much for your response on this.  I've tried to execute the query in the Data Explorer and it works like a charm!. 

Thanks for helping out. I appreciate it!. 

By the way any idea how do i filter by hostname?.  was trying to use the :filter and eq("dt.entity.host","HOST-001") still not able to get the specific host to be filter. 

Hi @Afrezal_Karim 

Here is an example for filter host. In this case you should also use parents transformation and filter together.

builtin:tech.jvm.memory.pool.used:parents:filter(and(or(in("dt.entity.host",entitySelector("type(host),entityName(~"YOUR HOST NAME ~")"))))):splitBy("dt.entity.process_group_instance","dt.entity.host"):sort(value(auto,descending))

Or you can use the dynamic filter on the dashboard as I mentioned before. 

I hope it helps.

Best regards,

Mizső

Dynatrace Community RockStar 2024, Certified Dynatrace Professional

Mizső
DynaMight Leader
DynaMight Leader

Hi @Afrezal_Karim 

@AntonPineiro  answer is perfect. 

If you would like to provide more extra, useful information about the jvm behaviour to the IT operation guys I reccomend these metrics: suspension time and garbage collection total time.

Mizs_0-1694702835800.png

You can also collect some extra jmx metrics at different types of jvms (jboss, tomcat, weblogic etc...) which ones could be useful for IT ops.

Eg. at weblogic: hogging thread, pending requests or connection pool metrics waiting threads and failed db connects...

Mizs_1-1694703045940.png

Mizs_2-1694703105745.png

Mizs_3-1694703235176.png

And it could be useful if you use the dynamic filter on dashboards:

eg.

Mizs_4-1694703332533.png

I hope it helps to provide better service to your teams.

Best regards,

Mizső

Dynatrace Community RockStar 2024, Certified Dynatrace Professional

Hey @Mizső ,

Thats a pretty cool Dashboard you've created. Looks awesome. 
Do you mind sharing the details of the builtin query keyword that i can use similar like yours ?.  
Still learning and trying to understand which one is good to be put in the Dashboard.

Again thanks for sharing and and also helping on this. Appreciate it. 

Hi @Afrezal_Karim,

These are the metric expressions:

 

In bulilt basic metric:

builtin:tech.jvm.memory.gc.suspensionTime:splitBy("dt.entity.process_group_instance"):max:sort(value(max,descending))

builtin:tech.jvm.memory.gc.collectionTime:splitBy("dt.entity.process_group_instance"):max:sort(value(max,descending))

 

WL specific in built:

builtin:tech.weblogic.connectionPool.WaitingForConnectionCurrentCount:splitBy("dt.entity.process_group_instance"):sum:sort(value(sum,descending))

builtin:tech.weblogic.connectionPool.FailedReserveRequestCount:splitBy("dt.entity.process_group_instance"):sum:sort(value(sum,descending))

 

WL extra jmx metrics:

ext:custom.jmx.HoggingThreadCount.metric_HoggingThreadCount_1601572768674:splitBy("dt.entity.process_group_instance"):max:sort(value(max,descending))

ext:custom.jmx.PendingRequestCount_JMX.metric_PendingRequestCount_1601790848493:splitBy("dt.entity.process_group_instance"):max:sort(value(max,descending))

 

Oracle extension metric:

builtin:tech.oracleDb.cd.sessions.active:splitBy("dt.entity.custom_device"):sum:sort(value(sum,descending))

 

I hope it helps.

Best regards,

Mizső

Dynatrace Community RockStar 2024, Certified Dynatrace Professional

Featured Posts