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

Ian Boston commented on OAK-3654:
---------------------------------


Metrics provides "bad stats" because its being given "bad data", have a look at 
the patch to the methods, copied here.

{code}
@@ -622,14 +623,14 @@ public class SessionDelegate {
         if (op.isUpdate()) {
             sessionCounters.writeTime = t0;
             sessionCounters.writeCount++;
-            writeCounter.incrementAndGet();
-            writeDuration.addAndGet(dt);
+            writeCounter.mark();
+            writeDuration.update(dt, TimeUnit.MILLISECONDS);
             updateCount++;
         } else {
             sessionCounters.readTime = t0;
             sessionCounters.readCount++;
-            readCounter.incrementAndGet();
-            readDuration.addAndGet(dt);
+            readCounter.mark();
+            readDuration.update(dt, TimeUnit.MILLISECONDS);
         }
{code}

It should be using 

{code}
Context c = metric.time();
....
c.stop();
{code}

IIRC if done that way Metrics uses nanoseconds. 
Internally Metics will probably use nanoseconds even it it reports in 
microseconds.


As mentioned earlier, using the context.stop() pattern avoids inadvertent bugs.

> Integrate with Metrics for various stats collection 
> ----------------------------------------------------
>
>                 Key: OAK-3654
>                 URL: https://issues.apache.org/jira/browse/OAK-3654
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: core
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>             Fix For: 1.3.12
>
>         Attachments: OAK-3654-v1.patch, query-stats.png
>
>
> As suggested by [~ianeboston] in OAK-3478 current approach of collecting 
> TimeSeries data is not easily consumable by other monitoring systems. Also 
> just extracting the last moment data and exposing it in simple form would not 
> be useful. 
> Instead of that we should look into using Metrics library [1] for collecting 
> metrics. To avoid having dependency on Metrics API all over in Oak we can 
> come up with minimal interfaces which can be used in Oak and then provide an 
> implementation backed by Metric.
> This task is meant to explore that aspect and come up with proposed changes 
> to see if its feasible to make this change
> * metrics-core ~100KB in size with no dependency
> * ASL Licensee
> [1] http://metrics.dropwizard.io



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to