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

chesnay pushed a commit to branch release-1.11
in repository https://gitbox.apache.org/repos/asf/flink.git

commit 4daa859e2f3015cd81d11661dec3a11ed24e045d
Author: Chesnay Schepler <[email protected]>
AuthorDate: Fri Jun 26 14:42:17 2020 +0200

    [FLINK-18435][metrics] Adjust reporter factories to intercept 
reflection-based instantiations
---
 .../prometheus/tests/PrometheusReporterEndToEndITCase.java        | 8 ++++++++
 .../apache/flink/metrics/datadog/DatadogHttpReporterFactory.java  | 2 ++
 .../apache/flink/metrics/graphite/GraphiteReporterFactory.java    | 2 ++
 .../apache/flink/metrics/influxdb/InfluxdbReporterFactory.java    | 2 ++
 .../java/org/apache/flink/metrics/jmx/JMXReporterFactory.java     | 2 ++
 .../metrics/prometheus/PrometheusPushGatewayReporterFactory.java  | 2 ++
 .../flink/metrics/prometheus/PrometheusReporterFactory.java       | 2 ++
 .../java/org/apache/flink/metrics/slf4j/Slf4jReporterFactory.java | 2 ++
 .../org/apache/flink/metrics/statsd/StatsDReporterFactory.java    | 2 ++
 9 files changed, 24 insertions(+)

diff --git 
a/flink-end-to-end-tests/flink-metrics-reporter-prometheus-test/src/test/java/org/apache/flink/metrics/prometheus/tests/PrometheusReporterEndToEndITCase.java
 
b/flink-end-to-end-tests/flink-metrics-reporter-prometheus-test/src/test/java/org/apache/flink/metrics/prometheus/tests/PrometheusReporterEndToEndITCase.java
index 44ad63d..dbcad2a 100644
--- 
a/flink-end-to-end-tests/flink-metrics-reporter-prometheus-test/src/test/java/org/apache/flink/metrics/prometheus/tests/PrometheusReporterEndToEndITCase.java
+++ 
b/flink-end-to-end-tests/flink-metrics-reporter-prometheus-test/src/test/java/org/apache/flink/metrics/prometheus/tests/PrometheusReporterEndToEndITCase.java
@@ -135,11 +135,19 @@ public class PrometheusReporterEndToEndITCase extends 
TestLogger {
                                FACTORY),
                        TestParams.from("Jar in 'plugins'",
                                builder -> {},
+                               REFLECTION),
+                       TestParams.from("Jar in 'plugins'",
+                               builder -> {},
                                FACTORY),
                        TestParams.from("Jar in 'lib' and 'plugins'",
                                builder -> {
                                        builder.copyJar(PROMETHEUS_JAR_PREFIX, 
JarLocation.PLUGINS, JarLocation.LIB);
                                },
+                               REFLECTION),
+                       TestParams.from("Jar in 'lib' and 'plugins'",
+                               builder -> {
+                                       builder.copyJar(PROMETHEUS_JAR_PREFIX, 
JarLocation.PLUGINS, JarLocation.LIB);
+                               },
                                FACTORY)
                );
        }
diff --git 
a/flink-metrics/flink-metrics-datadog/src/main/java/org/apache/flink/metrics/datadog/DatadogHttpReporterFactory.java
 
b/flink-metrics/flink-metrics-datadog/src/main/java/org/apache/flink/metrics/datadog/DatadogHttpReporterFactory.java
index d4e2e86..a7dce94 100644
--- 
a/flink-metrics/flink-metrics-datadog/src/main/java/org/apache/flink/metrics/datadog/DatadogHttpReporterFactory.java
+++ 
b/flink-metrics/flink-metrics-datadog/src/main/java/org/apache/flink/metrics/datadog/DatadogHttpReporterFactory.java
@@ -18,6 +18,7 @@
 
 package org.apache.flink.metrics.datadog;
 
+import org.apache.flink.metrics.reporter.InterceptInstantiationViaReflection;
 import org.apache.flink.metrics.reporter.MetricReporter;
 import org.apache.flink.metrics.reporter.MetricReporterFactory;
 
@@ -26,6 +27,7 @@ import java.util.Properties;
 /**
  * {@link MetricReporterFactory} for {@link DatadogHttpReporter}.
  */
+@InterceptInstantiationViaReflection(reporterClassName = 
"org.apache.flink.metrics.datadog.DatadogHttpReporter")
 public class DatadogHttpReporterFactory implements MetricReporterFactory {
 
        @Override
diff --git 
a/flink-metrics/flink-metrics-graphite/src/main/java/org/apache/flink/metrics/graphite/GraphiteReporterFactory.java
 
b/flink-metrics/flink-metrics-graphite/src/main/java/org/apache/flink/metrics/graphite/GraphiteReporterFactory.java
index b8357d9..bda681d 100644
--- 
a/flink-metrics/flink-metrics-graphite/src/main/java/org/apache/flink/metrics/graphite/GraphiteReporterFactory.java
+++ 
b/flink-metrics/flink-metrics-graphite/src/main/java/org/apache/flink/metrics/graphite/GraphiteReporterFactory.java
@@ -18,6 +18,7 @@
 
 package org.apache.flink.metrics.graphite;
 
+import org.apache.flink.metrics.reporter.InterceptInstantiationViaReflection;
 import org.apache.flink.metrics.reporter.MetricReporter;
 import org.apache.flink.metrics.reporter.MetricReporterFactory;
 
@@ -26,6 +27,7 @@ import java.util.Properties;
 /**
  * {@link MetricReporterFactory} for {@link GraphiteReporter}.
  */
+@InterceptInstantiationViaReflection(reporterClassName = 
"org.apache.flink.metrics.graphite.GraphiteReporter")
 public class GraphiteReporterFactory implements MetricReporterFactory {
 
        @Override
diff --git 
a/flink-metrics/flink-metrics-influxdb/src/main/java/org/apache/flink/metrics/influxdb/InfluxdbReporterFactory.java
 
b/flink-metrics/flink-metrics-influxdb/src/main/java/org/apache/flink/metrics/influxdb/InfluxdbReporterFactory.java
index 7659362..c272a6f 100644
--- 
a/flink-metrics/flink-metrics-influxdb/src/main/java/org/apache/flink/metrics/influxdb/InfluxdbReporterFactory.java
+++ 
b/flink-metrics/flink-metrics-influxdb/src/main/java/org/apache/flink/metrics/influxdb/InfluxdbReporterFactory.java
@@ -18,6 +18,7 @@
 
 package org.apache.flink.metrics.influxdb;
 
+import org.apache.flink.metrics.reporter.InterceptInstantiationViaReflection;
 import org.apache.flink.metrics.reporter.MetricReporter;
 import org.apache.flink.metrics.reporter.MetricReporterFactory;
 
@@ -26,6 +27,7 @@ import java.util.Properties;
 /**
  * {@link MetricReporterFactory} for {@link InfluxdbReporter}.
  */
+@InterceptInstantiationViaReflection(reporterClassName = 
"org.apache.flink.metrics.influxdb.InfluxdbReporter")
 public class InfluxdbReporterFactory implements MetricReporterFactory {
 
        @Override
diff --git 
a/flink-metrics/flink-metrics-jmx/src/main/java/org/apache/flink/metrics/jmx/JMXReporterFactory.java
 
b/flink-metrics/flink-metrics-jmx/src/main/java/org/apache/flink/metrics/jmx/JMXReporterFactory.java
index 128fb6b..31d9110 100644
--- 
a/flink-metrics/flink-metrics-jmx/src/main/java/org/apache/flink/metrics/jmx/JMXReporterFactory.java
+++ 
b/flink-metrics/flink-metrics-jmx/src/main/java/org/apache/flink/metrics/jmx/JMXReporterFactory.java
@@ -17,6 +17,7 @@
 
 package org.apache.flink.metrics.jmx;
 
+import org.apache.flink.metrics.reporter.InterceptInstantiationViaReflection;
 import org.apache.flink.metrics.reporter.MetricReporterFactory;
 
 import java.util.Properties;
@@ -24,6 +25,7 @@ import java.util.Properties;
 /**
  * {@link MetricReporterFactory} for {@link JMXReporter}.
  */
+@InterceptInstantiationViaReflection(reporterClassName = 
"org.apache.flink.metrics.jmx.JMXReporter")
 public class JMXReporterFactory implements MetricReporterFactory {
 
        static final String ARG_PORT = "port";
diff --git 
a/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusPushGatewayReporterFactory.java
 
b/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusPushGatewayReporterFactory.java
index 7b7372e..176ce17 100644
--- 
a/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusPushGatewayReporterFactory.java
+++ 
b/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusPushGatewayReporterFactory.java
@@ -17,6 +17,7 @@
 
 package org.apache.flink.metrics.prometheus;
 
+import org.apache.flink.metrics.reporter.InterceptInstantiationViaReflection;
 import org.apache.flink.metrics.reporter.MetricReporterFactory;
 
 import java.util.Properties;
@@ -24,6 +25,7 @@ import java.util.Properties;
 /**
  * {@link MetricReporterFactory} for {@link PrometheusPushGatewayReporter}.
  */
+@InterceptInstantiationViaReflection(reporterClassName = 
"org.apache.flink.metrics.prometheus.PrometheusPushGatewayReporter")
 public class PrometheusPushGatewayReporterFactory implements 
MetricReporterFactory {
 
        @Override
diff --git 
a/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusReporterFactory.java
 
b/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusReporterFactory.java
index a1ad365..fecc755 100644
--- 
a/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusReporterFactory.java
+++ 
b/flink-metrics/flink-metrics-prometheus/src/main/java/org/apache/flink/metrics/prometheus/PrometheusReporterFactory.java
@@ -17,6 +17,7 @@
 
 package org.apache.flink.metrics.prometheus;
 
+import org.apache.flink.metrics.reporter.InterceptInstantiationViaReflection;
 import org.apache.flink.metrics.reporter.MetricReporterFactory;
 
 import java.util.Properties;
@@ -24,6 +25,7 @@ import java.util.Properties;
 /**
  * {@link MetricReporterFactory} for {@link PrometheusReporter}.
  */
+@InterceptInstantiationViaReflection(reporterClassName = 
"org.apache.flink.metrics.prometheus.PrometheusReporter")
 public class PrometheusReporterFactory implements MetricReporterFactory {
 
        @Override
diff --git 
a/flink-metrics/flink-metrics-slf4j/src/main/java/org/apache/flink/metrics/slf4j/Slf4jReporterFactory.java
 
b/flink-metrics/flink-metrics-slf4j/src/main/java/org/apache/flink/metrics/slf4j/Slf4jReporterFactory.java
index 2acb236..2b2a9f6 100644
--- 
a/flink-metrics/flink-metrics-slf4j/src/main/java/org/apache/flink/metrics/slf4j/Slf4jReporterFactory.java
+++ 
b/flink-metrics/flink-metrics-slf4j/src/main/java/org/apache/flink/metrics/slf4j/Slf4jReporterFactory.java
@@ -17,6 +17,7 @@
 
 package org.apache.flink.metrics.slf4j;
 
+import org.apache.flink.metrics.reporter.InterceptInstantiationViaReflection;
 import org.apache.flink.metrics.reporter.MetricReporter;
 import org.apache.flink.metrics.reporter.MetricReporterFactory;
 
@@ -25,6 +26,7 @@ import java.util.Properties;
 /**
  * {@link MetricReporterFactory} for {@link Slf4jReporter}.
  */
+@InterceptInstantiationViaReflection(reporterClassName = 
"org.apache.flink.metrics.slf4j.Slf4jReporter")
 public class Slf4jReporterFactory implements MetricReporterFactory {
 
        @Override
diff --git 
a/flink-metrics/flink-metrics-statsd/src/main/java/org/apache/flink/metrics/statsd/StatsDReporterFactory.java
 
b/flink-metrics/flink-metrics-statsd/src/main/java/org/apache/flink/metrics/statsd/StatsDReporterFactory.java
index e409ce3..cda9504 100644
--- 
a/flink-metrics/flink-metrics-statsd/src/main/java/org/apache/flink/metrics/statsd/StatsDReporterFactory.java
+++ 
b/flink-metrics/flink-metrics-statsd/src/main/java/org/apache/flink/metrics/statsd/StatsDReporterFactory.java
@@ -18,6 +18,7 @@
 
 package org.apache.flink.metrics.statsd;
 
+import org.apache.flink.metrics.reporter.InterceptInstantiationViaReflection;
 import org.apache.flink.metrics.reporter.MetricReporter;
 import org.apache.flink.metrics.reporter.MetricReporterFactory;
 
@@ -26,6 +27,7 @@ import java.util.Properties;
 /**
  * A {@link MetricReporterFactory} implementation that creates a {@link 
StatsDReporter} instance.
  */
+@InterceptInstantiationViaReflection(reporterClassName = 
"org.apache.flink.metrics.statsd.StatsDReporter")
 public class StatsDReporterFactory implements MetricReporterFactory {
 
        @Override

Reply via email to