[ https://issues.apache.org/jira/browse/SLING-4849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15376536#comment-15376536 ]
Ian Boston commented on SLING-4849: ----------------------------------- The branch has been re-homed to https://github.com/ieb/slingmetrics maintaining commit history only relating to this work using the guide provided at http://stackoverflow.com/questions/359424/detachmove-subdirectory-into-separate-git-repository. Please report issues at https://github.com/ieb/slingmetrics/issues License remains Apache2 > Create Metrics instumentation bundle using ASM. > ----------------------------------------------- > > Key: SLING-4849 > URL: https://issues.apache.org/jira/browse/SLING-4849 > Project: Sling > Issue Type: Improvement > Components: Extensions > Reporter: Ian Boston > Assignee: Ian Boston > Attachments: Screen Shot 2015-07-02 at 12.24.01.png, Screen Shot > 2015-07-02 at 12.24.18.png, Screen Shot 2015-07-02 at 12.24.27.png > > > Aim: To enable metrics for any method call in a Sling JVM without requiring > any code changes to existing bundles. > Method: OSGi 4.3 has a WeavingHook which is allows a byte code generator to > get in between the classloader and classloading. Using ASM it should be > possible to write code that enhances the byte code of any class to wrap > method calls in calls to the Dropwizard Metrics library. This should work > without any changes to the startup. The only requirement is the bundle is > loaded before the classloader loads the classes that need to be instrumented. > Quick tests indicate the method works and adds no more than 10 byte code > instructions to a method. It may be possible to reduce that further. > Instrumentation will be controlled by configuration, so classes that are not > instrumented are not modified at all when loading. > The metrics once available can be pushed into Graphite, Kibana or some other > collection service. Dumped to a file periodically or exposed in JMX as > counters. > Will work in a branch on github initially. -- This message was sent by Atlassian JIRA (v6.3.4#6332)