Is the screen snapshot from your running instance? If so , it looks like jamon is wired up correctly. I see SQL stats, and garbage collection stats so that is good. Your problem is probably the most common one that I see (almost 100%). If your code is executing and not throwing exceptions that means it is finding the jamon jar, but you probably have the jamon jar deployed twice 1. Your application is writing to one jamon jar (yourapp->jamonjar1) 2. The jamon web app is reading from a different jamon...
Hi, I've got a Java application that I want to monitor. I've added the API MonitorFactory.start("nameofmethod") and stop() to all methods. When I open the Jamon interface, I see different calls and not the ones I was expecting (the ones with the name of my methods). Am I missing some configuration?
All wonderful to hear, and thanks so much for responding so quickly with that simple improvement.
Sorry, for the ridiculously late/pointless response, but thought I would answer in case others look. I hope to update all the libraries jamon uses including hazelcast relatively soon. If you don't have hazelcast jars in your classpath it won't call any of the hazelcast code. You can also explicitly configure the jamonpersister in the jamon properties file to ensure hazelcast code is not called. If you would like you can safely remove all hazelcast classes from the jar. I could work with you on t...
awesome!
Thank you for your fast response. The problem was the missing jar in the lib folder.
Thanks so much for your input. Over the years I haven't had much input from my user community, and so your post is welcome. First, do you realize that the "donate" button on the sourceforge site here fails? No. I put it up a long time ago and never really got donations so more or less forgot about it. I will look into that - who knows I may be leaving millions on the table :). Second, as indicated in one of the reviews (and I've heard it from others), some struggle with finding more on the tool....
Hi, Steve. Great to see you responding today. There are a couple of things I've wanted to suggest. First, do you realize that the "donate" button on the sourceforge site here fails? It gets "We can't complete your donation. This organization's account is inactive." Seems a missed/golden opportunity. :-) Second, as indicated in one of the reviews (and I've heard it from others), some struggle with finding more on the tool. You do offer it, but it's on another site, http://jamonapi.sourceforge.net/....
Hi, Steve. Great to see you responding today. There are a couple of things I've wanted to suggest. First, do you realize that the "donate" button on the sourceforge site here fails? It gets "We can't complete your donation. This organization's account is inactive." Seems a missed/golden opportunity. :-) Second, as indicated in one of the reviews (and I've heard it from others), some struggle with finding more on the tool. You do offer it, but it's on another site, http://jamonapi.sourceforge.net/....
Sorry for the delay in responding. I must have missed the email sourceforge sent me. Good suggestion. I hope to update the older libraries jamon uses soon, so I will put this on the list. Thanks for the references.
That class is one of the first loaded and is in jamon-2.82.jar. So it sounds like the jar is not being found by tomcat. Can you give a few more details? 1. What version of tomcat are you using? 2. Where did you put jamon-2.82.jar? 3. Did you do any other configuration steps such as those specified here: https://jamonapi.sourceforge.net/http_monitoring.html Thanks, Steve
Hi, I'm trying to deploy the jamon war on my tomcat but I get the error java.lang.ClassNotFoundException: com.jamonapi.distributed.JamonServletContextListener. What am I missing?
Java EE is no longer maintained, so it would be a good idea to migrate from javax namespace to jakarta namespace. Refs (taken from https://github.com/apache/shardingsphere/issues/26041): Jakarta EE Maven Coordinates Transition from Java EE to Jakarta EE Javax to Jakarta Namespace Ecosystem Progress
changing version to 2.82
Merge pull request #28 from stevensouza/dependabot/maven/org.apache.logging.log4j-log4j-core-2.17.1
Bump log4j-core from 2.13.3 to 2.17.1
Merge pull request #20 from carehart/carehart-patch-1
Merge pull request #19 from stevensouza/dependabot/maven/junit-junit-4.13.1
replace link to defunct jamonapi.com
Bump junit from 4.11 to 4.13.1
Merge pull request #18 from stevensouza/dependabot/maven/log4j.version-2.13.3
Bump log4j.version from 2.13.1 to 2.13.3
The TimeMonNano monitor was not tracking firstAccess and lastAccess correctly. I opted to document that more clearly, add unit tests for it and explain the logic of not providing that capability.
After looking into this nanotime has no relation to clock time (and in fact it can vary from jvm to jvm) and it is only useful when calculating the difference between 2 nanotimes (startTime-endTime). There is no useful meaning in nanotime unless you do a difference. This means clock time can not be calculated from nanotime. This is not true of millisecond times. They are based on clock time (since 1970). I am going to opt not to fix this as one wouldn't use nanotime timers unless the time you are...
Hi Steve, Not urgent for me. Thank you for the follow up. Regards, Christophe Le 23 oct. 2021 à 17:23, Steve Souza stevesouza@users.sourceforge.net a écrit : You are right there is a problem here. How urgent is the problem for you? A short term work around may be to directly set the values that are not being updated automatically. FirstAccess and LastAccess dates invalid when using nano Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/jamonapi/discussion/334831/...
You are right there is a problem here. How urgent is the problem for you? A short term work around may be to directly set the values that are not being updated automatically.
Hi Steve, yes I am stopping the monitor. Here is the result of the simple code execution : Monitor mon = MonitorFactory.startNano("test"); System.out.println(mon.stop()); JAMon Label=test, Units=ns., InstanceName=local: (LastValue=6858.0, Hits=1.0, Avg=6858.0, Total=6858.0, Min=6858.0, Max=6858.0, Active=0.0, Avg Active=1.0, Max Active=1.0, First Access=Mon Jan 05 00:20:57 UTC 1970, Last Access=Mon Jan 05 00:20:57 UTC 1970) When using milliseconds : Monitor mon = MonitorFactory.start("test - ms");...
Did you stop the monitor? Those values are set when you stop the monitor only. Also, just to confirm you called the startNano method with a lable. The label is required: MonitorFactory.startNano("label") Monitor mon = MonitorFactory.startNano(); System.out.println(mon.stop()); Please post your full code and what is printed...
Did you stop the monitor? Those values are set when you stop the monitor only. Monitor mon = MonitorFactory.startNano(); System.out.println(mon.stop());
Hi, When using nanoseconds through MonitorFactory.startNano(), the values for firstAccess and lastAccess are set to 1/1/1970. Am I doing something wrong ? Regards, Christophe
changing version to 2.82
fixed unit test error when running from command line (didn't happen when running from intellij)
changing version to 2.82
Fixed bug that was giving incorrect results when displaying jamon fifo buffer after calling distributed aggregation capability
added some comments
Added a test
mostly added some comments
fixed the fact that getReport was incorrectly returrniing the instance name as the last column instead of the label.
Added a test
added lost import
fixed failing log4j unit test - wasn't resetting after each run
added ability to copy last N values from fifo buffer on aggregation
added property to dynamically configury summary buffer size forr aggregation
added unit tests
working on hazelcast persister and combiner to persist with hazelcast distributed name
added unit test
changes to jsp to better display data
changed keys and details of log4j monitoring
changed log4j documentation
changed detail buffer for log4j
fixed serialization/deserialization failure of log4jbuffer by just using fifobuffer
added trace call to log4j.jsp
changed label for details in JAMonAppender and also changed poms
changed label for log4j and added unit tests for JAMonAppender
added unit tests for JAMonAppender
removing bugs from JAMonAppender
fixed unit tests for JAMonAppender
upgrading JAMonAppender to log4j2
monmanage.jsp was not showing key in screen properly and other small problems
various small changes. biggest was missing import in jamonadmin.jsp
various small changes. biggest was missing import in jamonadmin.jsp
changed default buffer size for an instance buffer
changed buffer names
accidentally deleted an import statement
time aggregated instances and added fifobuffer
fixed Log4jBufferListener to properly display the instance name and changed some comments
Changes primarily related to having the extra column of 'InstanceName' show up for the default JAMonBufferListener
added instance name to aggregated buffer listeners
added unit test to ensure combiner aggregation and creation of buffer listeners is working
fixed test to be determinant
for aggregation from multiple instances worked on copying jamon buffer from the source monitor on each server to the summary monitor
started working on copying of JAMonListeners for aggregated report
updated hazelcast
removed stale debug code
Added test for MonitorCompositeCombiner.aggregate
Disabled FactoryEnabled exception buffer listener and cleaned up code
MonitorCompositeCombiner fixed some bugs and made it more efficient
Cleaned up MonitorCompositeCombiner
Cleaned up code regarding aggregating multiple jamon MonitorComposite instances and added unit tests
added fifobuffer for summary rows - needs cleanup but works
added min/max methods for dates
working on merging monitors
moved merge method into combiner as it is more clear there
started coding for aggregating multiple MonitorComposites.
The security scans for our product have identified a vulnerability in hazelcast-all, which is a dependency of jamon. See https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10750 Could you please either update hazelcast-all to version 3.11 or later and publish a new release, or else post a statement to this forum indicating that jamon is not affected by this vulnerability? Thanks.
Hi, In the AppMap class convertKey method uses toLowerCase(). As you may see in the Javadocs in Turkish encoding "I".toLowerCase() != "i". So with Turkish encoding keys stored are broken. The fix for this is to use toLowerCase(Locale_Param) with anything other than Turkish.
Sounds good. The library doesn't write data as csv, but the web application can. LocalJamonFilePersister would probably be a good place to work from. Still it might be useful to serialize the jamon data as it will give you the whole web of jamon objects including stack traces as well as all the other data. You could write both the serialized data and the csv. The advantage of the jamon serialized data is you can move it to the jvm that has jamon war and view all of the jamon data without doing any...
Thanks for the speedy answer. Regrettably I do not want to use hazelcast at this moment. This has to do with network topology, infra structure support and a low as possible impact. It looks like the best intial route to take will be to write a reporter (if it is not in the library) that writes out the data in CSV format in fixed intervals, which we then can initially analyse with excel or different tooling. From its name, LocalJamonFilePersister might be a good example to work from, but will look...
I will type something shorter this time and wait for follow on questions from you. 1) Jamon allows you to look at various jvm instances jamon stats with the war if you use have hazelcast in your classpath. See this page for more info. There is also a video link that talks about configuration at the end of the video: http://jamonapi.sourceforge.net/distributed_jamon.html 2) Alternatively you can take advantage of the fact that jamon statistics are serializable. The jamon war can look in the 'jjamonDataPersister.directory'...
Unfortunately I typed a long response to your question complete with links and sourceforge lost it when i posted.
Hi, I've been working with Jamon in the past, which served us very well during perfomance improvements and day to day monitoring. We used a quite old version there, that had no web interface etc. but we logged the aggregated results every five minutes and used Splunk to analyse the results. This helped us a lot (together with some other datasources also available in Splunk). I am on a different project now, and as usual there is a need to get more insight into the applications hot spot. We are horizontally...
Great. Let me know if the problem reappears.
Just finished testing the update to 2.81 and so far, it seems like the NPE is gone. :) I'll let it stay idle for a while before trying to click on that checkbox again. Thanks!
Ok, I see you mentioned upgrading the jamon version. Let me know how that goes and I can help you further.
Ok, I see you mentioned upgrading the jamon version. Let me know how that goes and I can help you further.
Is there any reason why you are using 2.75? That is a very old version. I believe changes have been made to this part of the code since 2.75.
I have this as part of my project (in Spring). I've seen it (monmanage.jsp) working once (shows some options for listener) but after a while, it throws http 500 regardless of refresh performed on jamonadmin.jsp. :( I'll test the update to see how it goes :)