This is an automated email from the ASF dual-hosted git repository.
etudenhoefner pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/master by this push:
new 1a2e334ca8 AWS, Dell, GCP: Skip stack trace log for missing Hadoop
dependency (#8359)
1a2e334ca8 is described below
commit 1a2e334ca8a15dbf37f3f6944811d4c0ec7eb052
Author: Bryan Keller <[email protected]>
AuthorDate: Mon Aug 21 01:37:53 2023 -0700
AWS, Dell, GCP: Skip stack trace log for missing Hadoop dependency (#8359)
---
.../java/org/apache/iceberg/aws/s3/S3FileIO.java | 12 ++++----
.../org/apache/iceberg/dell/ecs/EcsFileIO.java | 8 +++--
.../java/org/apache/iceberg/gcp/gcs/GCSFileIO.java | 35 ++++++++++++----------
3 files changed, 31 insertions(+), 24 deletions(-)
diff --git a/aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIO.java
b/aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIO.java
index 9ba2f545b2..fa75906088 100644
--- a/aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIO.java
+++ b/aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIO.java
@@ -379,21 +379,23 @@ public class S3FileIO
}
}
+ initMetrics(properties);
+ }
+
+ @SuppressWarnings("CatchBlockLogException")
+ private void initMetrics(Map<String, String> props) {
// Report Hadoop metrics if Hadoop is available
try {
DynConstructors.Ctor<MetricsContext> ctor =
DynConstructors.builder(MetricsContext.class)
- .loader(S3FileIO.class.getClassLoader())
.hiddenImpl(DEFAULT_METRICS_IMPL, String.class)
.buildChecked();
MetricsContext context = ctor.newInstance("s3");
- context.initialize(properties);
+ context.initialize(props);
this.metrics = context;
} catch (NoClassDefFoundError | NoSuchMethodException | ClassCastException
e) {
LOG.warn(
- "Unable to load metrics class: '{}', falling back to null metrics",
- DEFAULT_METRICS_IMPL,
- e);
+ "Unable to load metrics class: '{}', falling back to null metrics",
DEFAULT_METRICS_IMPL);
}
}
diff --git a/dell/src/main/java/org/apache/iceberg/dell/ecs/EcsFileIO.java
b/dell/src/main/java/org/apache/iceberg/dell/ecs/EcsFileIO.java
index 54b11e8b37..687d848ce0 100644
--- a/dell/src/main/java/org/apache/iceberg/dell/ecs/EcsFileIO.java
+++ b/dell/src/main/java/org/apache/iceberg/dell/ecs/EcsFileIO.java
@@ -86,7 +86,11 @@ public class EcsFileIO implements FileIO {
this.dellProperties = new DellProperties(properties);
this.dellClientFactory = DellClientFactories.from(properties);
this.s3 = dellClientFactory::ecsS3;
+ initMetrics(properties);
+ }
+ @SuppressWarnings("CatchBlockLogException")
+ private void initMetrics(Map<String, String> properties) {
// Report Hadoop metrics if Hadoop is available
try {
DynConstructors.Ctor<MetricsContext> ctor =
@@ -98,9 +102,7 @@ public class EcsFileIO implements FileIO {
this.metrics = context;
} catch (NoClassDefFoundError | NoSuchMethodException | ClassCastException
e) {
LOG.warn(
- "Unable to load metrics class: '{}', falling back to null metrics",
- DEFAULT_METRICS_IMPL,
- e);
+ "Unable to load metrics class: '{}', falling back to null metrics",
DEFAULT_METRICS_IMPL);
}
}
diff --git a/gcp/src/main/java/org/apache/iceberg/gcp/gcs/GCSFileIO.java
b/gcp/src/main/java/org/apache/iceberg/gcp/gcs/GCSFileIO.java
index 1c99bd78f2..1e164f059d 100644
--- a/gcp/src/main/java/org/apache/iceberg/gcp/gcs/GCSFileIO.java
+++ b/gcp/src/main/java/org/apache/iceberg/gcp/gcs/GCSFileIO.java
@@ -152,24 +152,27 @@ public class GCSFileIO implements FileIO,
SupportsBulkOperations, SupportsPrefix
builder.setCredentials(OAuth2Credentials.create(accessToken));
});
- // Report Hadoop metrics if Hadoop is available
- try {
- DynConstructors.Ctor<MetricsContext> ctor =
- DynConstructors.builder(MetricsContext.class)
- .hiddenImpl(DEFAULT_METRICS_IMPL, String.class)
- .buildChecked();
- MetricsContext context = ctor.newInstance("gcs");
- context.initialize(properties);
- this.metrics = context;
- } catch (NoClassDefFoundError | NoSuchMethodException |
ClassCastException e) {
- LOG.warn(
- "Unable to load metrics class: '{}', falling back to null
metrics",
- DEFAULT_METRICS_IMPL,
- e);
- }
-
return builder.build().getService();
};
+
+ initMetrics(properties);
+ }
+
+ @SuppressWarnings("CatchBlockLogException")
+ private void initMetrics(Map<String, String> props) {
+ // Report Hadoop metrics if Hadoop is available
+ try {
+ DynConstructors.Ctor<MetricsContext> ctor =
+ DynConstructors.builder(MetricsContext.class)
+ .hiddenImpl(DEFAULT_METRICS_IMPL, String.class)
+ .buildChecked();
+ MetricsContext context = ctor.newInstance("gcs");
+ context.initialize(props);
+ this.metrics = context;
+ } catch (NoClassDefFoundError | NoSuchMethodException | ClassCastException
e) {
+ LOG.warn(
+ "Unable to load metrics class: '{}', falling back to null metrics",
DEFAULT_METRICS_IMPL);
+ }
}
@Override