[ 
https://issues.apache.org/jira/browse/SLING-4849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15374896#comment-15374896
 ] 

Bertrand Delacretaz commented on SLING-4849:
--------------------------------------------

Thanks for your explanations. I tried instrumenting  the current sling 
launchpad/builder by loading this bundle at start level 1 and using the 
metrics.yaml found at 
https://gist.github.com/bdelacretaz/775b06330bcb9feeafd28d6f4a1d95f0

The instrumentation doesn't work for me with this config, the logs says

{code}
org.apache.sling.metrics Adding Metrics to method 
org.apache.sling.jcr.api.SlingRepository getDefaultWorkspace
org.apache.sling.metrics Adding Metrics to method 
org.apache.sling.jcr.api.SlingRepository loginAdministrative
org.apache.sling.metrics Adding Metrics to method 
org.apache.sling.jcr.api.SlingRepository loginService
org.apache.sling.metrics Adding Metrics to method 
org.apache.sling.jcr.api.SlingRepository impersonateFromService
org.apache.sling.metrics Unused Config for 
org.apache.sling.jcr.api.SlingRepository getDefaultWorkspace timer
org.apache.sling.metrics Unused Config for 
org.apache.sling.jcr.api.SlingRepository loginService timer
org.apache.sling.metrics Unused Config for 
org.apache.sling.jcr.api.SlingRepository impersonateFromService timer
org.apache.sling.metrics Unused Config for 
org.apache.sling.jcr.api.SlingRepository loginAdministrative counter
{code}

And although a TimerAdapter class is created for the {{getDefaultWorkspace}} 
method, its {{onMethodEnter}} method is never called.

Is something wrong in my config?

> 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)

Reply via email to