[
https://issues.apache.org/jira/browse/SLING-4849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14745199#comment-14745199
]
Bertrand Delacretaz commented on SLING-4849:
--------------------------------------------
Very interesting. I would suggest committing this under /contrib (at least) to
make it more visible.
> 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)