Done. The module is located under experimental, now. I just updated a lot yesterday:
New measurements: * request handler detach / respond (time) * loadable detachable models load (time) * wicket tag create (mark) * IResource create (mark) mark - count if an event occurs time - count + time the operation lasts kind regards Tobias > Am 14.03.2016 um 10:45 schrieb Martijn Dashorst <[email protected]>: > > It could also live as a wicket-experimental module in both wicket-8 > and wicket 7 branches. > > Martijn > >> On Sun, Mar 13, 2016 at 9:55 AM, Martin Grigorov <[email protected]> >> wrote: >> Hi Tobias, >> >> Good work! >> >> I've added some comments to the PullRequest ( >> https://github.com/apache/wicket/pull/164). >> >> I am not a big fan of auto-generated code (AOP) but I agree this is the >> most unobtrusive way to provide such kind of metrics. >> >> This module doesn't depend on Wicket 8 so it could be used with earlier >> versions too. I would suggest to add it to WicketStuff so people can start >> using it now and report bugs and ideas for improvements. >> Making it possible to enable/disable specific metrics with settings and to >> add custom aspects would make it a very good candidate for Apache Wicket >> module! >> >> But let's wait for some more opinions! >> >> >> >> Martin Grigorov >> Wicket Training and Consulting >> https://twitter.com/mtgrigorov >> >> On Fri, Mar 11, 2016 at 10:12 PM, Tobias Soloschenko < >> [email protected]> wrote: >> >>> Changes are made - I also add a chapter in the Wicket User Guide! The new >>> measure functionalities are great. >>> >>> So if user now do time expensive operations in constructors of components >>> - metrics will show it! :-D >>> >>> I also managed to get Graphite working with wicket-metrics and had a look >>> at measures in the web interface (instructions are also in the guide) >>> >>> It is awesome! >>> >>> kind regards >>> >>> Tobias >>> >>>>> Am 11.03.2016 um 08:41 schrieb Francois Meillet < >>>> [email protected]>: >>>> >>>> Thanks Tobias ! >>>> >>>> Very good. >>>> >>>> François >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>>> Le 10 mars 2016 à 21:39, Tobias Soloschenko < >>> [email protected]> a écrit : >>>>> >>>>> Hi all, >>>>> >>>>> I just want to discuss a new module I would like to see in Wicket. It >>> is mentioned in the list of ideas in Confluence for Wicket 8: >>>>> >>>>> https://cwiki.apache.org/confluence/display/WICKET/Ideas+for+Wicket+8.0 >>>>> >>>>> The Module is going to provide metrics to see how often requests have >>> been handled from a webapp, how many render calls have been processed and >>> other metrics: >>>>> >>>>> https://github.com/klopfdreh/wicket/tree/wicket_metrics >>>>> >>>>> I used the framework mentioned in the Confluence article and did a lot >>> of research not to create a big performance and code impact because of >>> changing every class in Wicket Core. >>>>> >>>>> As you can see in the commits I used AspectJ. To get the Code working >>> for you, you have to do the following steps: >>>>> >>>>> 1. Fetch the branch >>> https://github.com/klopfdreh/wicket/tree/wicket_metrics >>>>> >>>>> 2. Just drop the jars of aspectjrt and aspectjweaver into the tomcat 8 >>> lib folder >>>>> http://mvnrepository.com/artifact/org.aspectj/aspectjrt/1.8.8 >>>>> http://mvnrepository.com/artifact/org.aspectj/aspectjweaver/1.8.8 >>>>> >>>>> 4. Add the java agent to the jvm start options: >>> -javaagent:/pathToServer/lib/aspectjweaver-1.8.8.jar >>>>> >>>>> the metrics dependency is shipped with the project >>>>> >>>>> 5. Add the maven dependency wicket-metrics to your project (and install >>> the snapshot locally before) and write WicketMetrics.startJmxReporter(); in >>> your applications init(); >>>>> >>>>> 6. Do a request to your project >>>>> >>>>> 7. Open jvisualvm and the tomcat process and have a look at metrics >>> mbeans (mbean plugin has to be installed) >>>>> >>>>>>>>> So now the reason why I used Aspectj: >>>>> >>>>> 1. The metrics code does not pull down the performance because of a lot >>> of additional method invocations if not needed >>>>> >>>>> 2. If the metrics project is not resolved Wicket acts like nothing >>> changed >>>>> >>>>> 3. Because of aspects also components written by the developers are >>> also measured. So if a component extends Component the render method and >>> the constructor calls are measured (for example). The developer dont have >>> to take care of the statistics (See example) >>>>> >>>>> 4. It is clearly visible which Aspect is providing metrics about a >>> component and you dont have to dig through the whole Wicket Code to find >>> the measurement implementations >>>>> >>>>> 5. If there is an error in the statistics they can be turned off easily >>>>> >>>>> Example class: >>> https://github.com/klopfdreh/wicket/blob/wicket_metrics/wicket-metrics/src/main/java/org/apache/wicket/metrics/aspects/ComponentAspect.java >>>>> >>>>> In my opinion this is the right way to implement it - even if this >>> means to do a little setup before. (jvm-parameter,copy jars) >>>>> >>>>> Just try it out and let me know what are the results! :-) >>>>> >>>>> kind regards >>>>> >>>>> Tobias > > > > -- > Become a Wicket expert, learn from the best: http://wicketinaction.com
