Java JMX metrika NonHeapMemoryMax ukazuje -1

Java JMX metrika NonHeapMemoryMax ukazuje -1
« kdy: 08. 06. 2020, 18:12:00 »
Pisu ted jednoduchy monitorovaci skript na dohled java aplikace pres JMX.

MBean java.lang:type=Memory - atribut  NonHeapMemoryUsage.max mi ukazuje -1.
Pricemz u  HeapMemoryUsage.max tam mam normalni hodnotu.

Potrebuju vyrobit procentualni metriku used/max memory a v pripade NonHeapMemory to nejsem schopen spocist, kvuli tomu nemyslu -1.
Cova se to stejne v JDK8 i JDK11

Google mi nevratil nic.

Vite nekdo proc, to vraci nesmysl -1?
Je to chyba nebo nejaky tajny zamer?

Dik za jakekoliv info.


Re:Java JMX metrika NonHeapMemoryMax ukazuje -1
« Odpověď #1 kdy: 08. 06. 2020, 19:04:28 »
Pisu ted jednoduchy monitorovaci skript na dohled java aplikace pres JMX.

MBean java.lang:type=Memory - atribut  NonHeapMemoryUsage.max mi ukazuje -1.
Pricemz u  HeapMemoryUsage.max tam mam normalni hodnotu.

Potrebuju vyrobit procentualni metriku used/max memory a v pripade NonHeapMemory to nejsem schopen spocist, kvuli tomu nemyslu -1.
Cova se to stejne v JDK8 i JDK11

Google mi nevratil nic.

Vite nekdo proc, to vraci nesmysl -1?
Je to chyba nebo nejaky tajny zamer?

Dik za jakekoliv info.

Moc jsem toho taky nenasel.

jmx["java.lang:type=Memory",NonHeapMemoryUsage.used]: We already monitored the heap memory usage on the gateway; this will monitor the non-heap memory usage v knize Zabbix 4 Network Monitoring - Third Edition

Kdyz se divam na nasu tomcat, tak je tam taky -1.

Co takhle pouzit committed, vidim to jako prvni atribut NonHeapMemoryUsage.
Nebo pouzij volnou pamet systemu misto max, -1 je asi bez omezeni, takze by to mohlo davat i realne hodnoty?

Re:Java JMX metrika NonHeapMemoryMax ukazuje -1
« Odpověď #2 kdy: 08. 06. 2020, 19:54:43 »
Pisu ted jednoduchy monitorovaci skript na dohled java aplikace pres JMX.

MBean java.lang:type=Memory - atribut  NonHeapMemoryUsage.max mi ukazuje -1.
Pricemz u  HeapMemoryUsage.max tam mam normalni hodnotu.

Potrebuju vyrobit procentualni metriku used/max memory a v pripade NonHeapMemory to nejsem schopen spocist, kvuli tomu nemyslu -1.
Cova se to stejne v JDK8 i JDK11

Google mi nevratil nic.

Vite nekdo proc, to vraci nesmysl -1?
Je to chyba nebo nejaky tajny zamer?

Dik za jakekoliv info.

Moc jsem toho taky nenasel.

jmx["java.lang:type=Memory",NonHeapMemoryUsage.used]: We already monitored the heap memory usage on the gateway; this will monitor the non-heap memory usage v knize Zabbix 4 Network Monitoring - Third Edition

Kdyz se divam na nasu tomcat, tak je tam taky -1.

Co takhle pouzit committed, vidim to jako prvni atribut NonHeapMemoryUsage.
Nebo pouzij volnou pamet systemu misto max, -1 je asi bez omezeni, takze by to mohlo davat i realne hodnoty?

Dik za snahu.
Este jsem nasel u garbage collectoru, atribut LastGCInfo, kde je i stav pameti po pslednim provedemen GC. Tam numera sice jsou, ale netusim, jake pameti se to tyka.
A je na vyber se dvou GC implemetaci (v JDK8 je to MarkSweep a Scavenge), pricemz u MarkSweep tam mam prazdny Composite object, u Scavenge realne data. A netusim, cim se GC voli, tusim ze je mozno nejak pomoct JAVAOPTS.
Vsude u kazdeho atributu jako description ciste hovno.

Cekal bych, ze Oracle bude mit tyhle triviality aspon nekde zadokumentovane, co a jak se ma monitorovat,  tohle je tuseni stinu.

Dival jsem se na Zabbix, ti maji v default templatech uz uplne nesmysle, ktere vedou leda k tomu, ze pulka itemu sviti unsupported.


Re:Java JMX metrika NonHeapMemoryMax ukazuje -1
« Odpověď #3 kdy: 09. 06. 2020, 09:08:27 »
Jestli se snažíš monitorovat nějakou aplikaci použij hotovou applikaci například ten Zabbix u novějších JDK se dá použít Java Flight Recorder.

Ještě používáme JavaMelody https://github.com/javamelody/javamelody/wiki
 JavaMelody používáme už mnoho let jako záložní monitoring, pokud zákazníci nic nepoužívají a mají problém, tak máme aspoň nějaké věrohodné informace.

Pokud se učíš - hraješ si, tak bych považoval JavaMelody za dobrý základ, kam můžeš přidávat další funkcionalitu.
Autor nemá problém s pull requestama pokud vytvoříš něco užitečného.

Dobrý zdroj informací o monitoringu a performance v jave najdeš třeba v této knize
Java Performance, 2nd Edition by Scott Oaks Published by O'Reilly Media, Inc., 2020