Author: mreutegg
Date: Wed Jan 29 12:15:07 2020
New Revision: 1873302

URL: http://svn.apache.org/viewvc?rev=1873302&view=rev
Log:
OAK-8878: Expose downloaded (and uploaded) blob bytes as metrics, not only as 
time series

Apply contribution by Axel Hanikel

Modified:
    
jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStats.java
    
jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStatsTest.java

Modified: 
jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStats.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStats.java?rev=1873302&r1=1873301&r2=1873302&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStats.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStats.java
 Wed Jan 29 12:15:07 2020
@@ -230,14 +230,14 @@ public class BlobStoreStats extends Anno
         this.uploadHisto = sp.getHistogram(BLOB_UPLOADS, StatsOptions.DEFAULT);
         this.uploadCount = sp.getMeter(BLOB_UPLOAD_COUNT, 
StatsOptions.DEFAULT);
         this.uploadErrorCount = sp.getMeter(BLOB_UPLOAD_ERROR_COUNT, 
StatsOptions.DEFAULT);
-        this.uploadSizeSeries = sp.getMeter(BLOB_UPLOAD_SIZE, 
StatsOptions.TIME_SERIES_ONLY);
-        this.uploadTimeSeries = sp.getMeter(BLOB_UPLOAD_TIME, 
StatsOptions.TIME_SERIES_ONLY);
+        this.uploadSizeSeries = sp.getMeter(BLOB_UPLOAD_SIZE, 
StatsOptions.DEFAULT);
+        this.uploadTimeSeries = sp.getMeter(BLOB_UPLOAD_TIME, 
StatsOptions.DEFAULT);
         this.uploadRateSeries = getAvgTimeSeries(BLOB_UPLOAD_SIZE, 
BLOB_UPLOAD_TIME);
 
         this.downloadHisto = sp.getHistogram(BLOB_DOWNLOADS, 
StatsOptions.DEFAULT);
         this.downloadCount = sp.getMeter(BLOB_DOWNLOAD_COUNT, 
StatsOptions.DEFAULT);
-        this.downloadSizeSeries = sp.getMeter(BLOB_DOWNLOAD_SIZE, 
StatsOptions.TIME_SERIES_ONLY);
-        this.downloadTimeSeries = sp.getMeter(BLOB_DOWNLOAD_TIME, 
StatsOptions.TIME_SERIES_ONLY);
+        this.downloadSizeSeries = sp.getMeter(BLOB_DOWNLOAD_SIZE, 
StatsOptions.DEFAULT);
+        this.downloadTimeSeries = sp.getMeter(BLOB_DOWNLOAD_TIME, 
StatsOptions.DEFAULT);
         this.downloadRateSeries = getAvgTimeSeries(BLOB_DOWNLOAD_SIZE, 
BLOB_DOWNLOAD_TIME);
         this.downloadErrorCount = sp.getMeter(BLOB_DOWNLOAD_ERROR_COUNT, 
StatsOptions.DEFAULT);
 

Modified: 
jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStatsTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStatsTest.java?rev=1873302&r1=1873301&r2=1873302&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStatsTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/BlobStoreStatsTest.java
 Wed Jan 29 12:15:07 2020
@@ -23,13 +23,19 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.jackrabbit.api.stats.RepositoryStatistics;
 import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
 import org.apache.jackrabbit.oak.stats.DefaultStatisticsProvider;
 import org.apache.jackrabbit.oak.stats.StatisticsProvider;
+import org.apache.jackrabbit.oak.stats.StatsOptions;
 import org.junit.After;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 public class BlobStoreStatsTest {
     private ScheduledExecutorService executor = 
Executors.newSingleThreadScheduledExecutor();
@@ -76,4 +82,24 @@ public class BlobStoreStatsTest {
         stats.downloadCompleted("foo");
         assertEquals(2, stats.getDownloadCount());
     }
+
+    @Test
+    public void uploadStatsWithDefaultOptions() {
+        RepositoryStatistics repoStats = mock(RepositoryStatistics.class);
+        statsProvider = mock(StatisticsProvider.class);
+        when(statsProvider.getStats()).thenReturn(repoStats);
+        stats = new BlobStoreStats(statsProvider);
+        verify(statsProvider).getMeter(eq("BLOB_UPLOAD_SIZE"), 
eq(StatsOptions.DEFAULT));
+        verify(statsProvider).getMeter(eq("BLOB_UPLOAD_TIME"), 
eq(StatsOptions.DEFAULT));
+    }
+
+    @Test
+    public void downloadStatsWithDefaultOptions() {
+        RepositoryStatistics repoStats = mock(RepositoryStatistics.class);
+        statsProvider = mock(StatisticsProvider.class);
+        when(statsProvider.getStats()).thenReturn(repoStats);
+        stats = new BlobStoreStats(statsProvider);
+        verify(statsProvider).getMeter(eq("BLOB_DOWNLOAD_SIZE"), 
eq(StatsOptions.DEFAULT));
+        verify(statsProvider).getMeter(eq("BLOB_DOWNLOAD_TIME"), 
eq(StatsOptions.DEFAULT));
+    }
 }
\ No newline at end of file


Reply via email to