You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by si...@apache.org on 2022/01/11 05:31:42 UTC

[hudi] 06/06: [HUDI-3148] Create pushgateway client based on port (#4497)

This is an automated email from the ASF dual-hosted git repository.

sivabalan pushed a commit to branch release-0.10.1-rc1
in repository https://gitbox.apache.org/repos/asf/hudi.git

commit 358b43e3b18ea49a09ab83726a55e217c5fdbc06
Author: t0il3ts0ap <an...@yahoo.com>
AuthorDate: Tue Jan 11 04:39:47 2022 +0530

    [HUDI-3148] Create pushgateway client based on port (#4497)
    
    
    Co-authored-by: anoop narang <an...@navi.com>
    Co-authored-by: sivabalan narayanan <n....@gmail.com>
---
 .../prometheus/PushGatewayMetricsReporter.java        |  3 ++-
 .../hudi/metrics/prometheus/PushGatewayReporter.java  | 19 +++++++++++++++++--
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/prometheus/PushGatewayMetricsReporter.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/prometheus/PushGatewayMetricsReporter.java
index 17c4d7b..fa4c947 100644
--- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/prometheus/PushGatewayMetricsReporter.java
+++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/prometheus/PushGatewayMetricsReporter.java
@@ -50,7 +50,8 @@ public class PushGatewayMetricsReporter extends MetricsReporter {
         TimeUnit.SECONDS,
         TimeUnit.SECONDS,
         getJobName(),
-        serverHost + ":" + serverPort,
+        serverHost,
+        serverPort,
         deleteShutdown);
   }
 
diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/prometheus/PushGatewayReporter.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/prometheus/PushGatewayReporter.java
index 3b19882..5f82b66 100644
--- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/prometheus/PushGatewayReporter.java
+++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metrics/prometheus/PushGatewayReporter.java
@@ -29,6 +29,8 @@ import com.codahale.metrics.ScheduledReporter;
 import io.prometheus.client.CollectorRegistry;
 import io.prometheus.client.dropwizard.DropwizardExports;
 import io.prometheus.client.exporter.PushGateway;
+import java.net.MalformedURLException;
+import java.net.URL;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
 
@@ -51,17 +53,30 @@ public class PushGatewayReporter extends ScheduledReporter {
                                 TimeUnit rateUnit,
                                 TimeUnit durationUnit,
                                 String jobName,
-                                String address,
+                                String serverHost,
+                                int serverPort,
                                 boolean deleteShutdown) {
     super(registry, "hudi-push-gateway-reporter", filter, rateUnit, durationUnit);
     this.jobName = jobName;
     this.deleteShutdown = deleteShutdown;
     collectorRegistry = new CollectorRegistry();
     metricExports = new DropwizardExports(registry);
-    pushGateway = new PushGateway(address);
+    pushGateway = createPushGatewayClient(serverHost, serverPort);
     metricExports.register(collectorRegistry);
   }
 
+  private PushGateway createPushGatewayClient(String serverHost, int serverPort) {
+    if (serverPort == 443) {
+      try {
+        return new PushGateway(new URL("https://" + serverHost + ":" + serverPort));
+      } catch (MalformedURLException e) {
+        e.printStackTrace();
+        throw new IllegalArgumentException("Malformed pushgateway host: " + serverHost);
+      }
+    }
+    return new PushGateway(serverHost + ":" + serverPort);
+  }
+
   @Override
   public void report(SortedMap<String, Gauge> gauges,
                      SortedMap<String, Counter> counters,