[NO ISSUE][OTH] Expose IRequestProfiler from ICloudClient
- user model changes: no
- storage format changes: no
- interface changes: yes
Details:
- Expose the object requests counts from IRequestProfiler.
Change-Id: I6964af27bf66717661cb450de793ca7d06bb9eaf
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18364
Reviewed-by: Hussain Towaileb <hussainht@gmail.com>
Tested-by: Ali Alsuliman <ali.al.solaiman@gmail.com>
diff --git a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/ICloudClient.java b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/ICloudClient.java
index 89f3c81..209245b 100644
--- a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/ICloudClient.java
+++ b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/ICloudClient.java
@@ -25,6 +25,7 @@
import java.util.Set;
import org.apache.asterix.cloud.IWriteBufferProvider;
+import org.apache.asterix.cloud.clients.profiler.IRequestProfiler;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.io.FileReference;
import org.apache.hyracks.control.nc.io.IOManager;
@@ -42,6 +43,11 @@
int getWriteBufferSize();
/**
+ * @return the requests profiler
+ */
+ IRequestProfiler getProfiler();
+
+ /**
* Creates a cloud buffered writer
*
* @param bucket bucket to write to
diff --git a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
index 2eae455..5ce1f43 100644
--- a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
+++ b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/aws/s3/S3CloudClient.java
@@ -105,6 +105,11 @@
}
@Override
+ public IRequestProfiler getProfiler() {
+ return profiler;
+ }
+
+ @Override
public ICloudWriter createWriter(String bucket, String path, IWriteBufferProvider bufferProvider) {
ICloudBufferedWriter bufferedWriter = new S3BufferedWriter(s3Client, profiler, guardian, bucket, path);
return new CloudResettableInputStream(bufferedWriter, bufferProvider);
diff --git a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/google/gcs/GCSCloudClient.java b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/google/gcs/GCSCloudClient.java
index accf3c9..2874b4e 100644
--- a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/google/gcs/GCSCloudClient.java
+++ b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/google/gcs/GCSCloudClient.java
@@ -91,6 +91,11 @@
}
@Override
+ public IRequestProfiler getProfiler() {
+ return profiler;
+ }
+
+ @Override
public ICloudWriter createWriter(String bucket, String path, IWriteBufferProvider bufferProvider) {
return new GCSWriter(bucket, path, gcsClient, profiler);
}
diff --git a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/CountRequestProfiler.java b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/CountRequestProfiler.java
index 624395b..3fc378c 100644
--- a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/CountRequestProfiler.java
+++ b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/CountRequestProfiler.java
@@ -95,6 +95,41 @@
log();
}
+ @Override
+ public long objectsListCount() {
+ return listObjectsCounter.get();
+ }
+
+ @Override
+ public long objectGetCount() {
+ return getObjectCounter.get();
+ }
+
+ @Override
+ public long objectWriteCount() {
+ return writeObjectCounter.get();
+ }
+
+ @Override
+ public long objectDeleteCount() {
+ return deleteObjectCounter.get();
+ }
+
+ @Override
+ public long objectCopyCount() {
+ return copyObjectCounter.get();
+ }
+
+ @Override
+ public long objectMultipartUploadCount() {
+ return multipartUploadCounter.get();
+ }
+
+ @Override
+ public long objectMultipartDownloadCount() {
+ return multipartDownloadCounter.get();
+ }
+
private void log() {
if (LOGGER.isEnabled(LOG_LEVEL)) {
long currentTime = System.nanoTime();
diff --git a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/IRequestProfiler.java b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/IRequestProfiler.java
index 9d1d86e..a23a78f 100644
--- a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/IRequestProfiler.java
+++ b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/IRequestProfiler.java
@@ -32,4 +32,19 @@
void objectMultipartUpload();
void objectMultipartDownload();
+
+ long objectsListCount();
+
+ long objectGetCount();
+
+ long objectWriteCount();
+
+ long objectDeleteCount();
+
+ long objectCopyCount();
+
+ long objectMultipartUploadCount();
+
+ long objectMultipartDownloadCount();
+
}
diff --git a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/NoOpRequestProfiler.java b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/NoOpRequestProfiler.java
index 2ef2769..f7e89c3 100644
--- a/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/NoOpRequestProfiler.java
+++ b/asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/profiler/NoOpRequestProfiler.java
@@ -58,4 +58,39 @@
public void objectMultipartDownload() {
// NoOp
}
+
+ @Override
+ public long objectsListCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectGetCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectWriteCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectDeleteCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectCopyCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectMultipartUploadCount() {
+ return 0;
+ }
+
+ @Override
+ public long objectMultipartDownloadCount() {
+ return 0;
+ }
}