Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/315#discussion_r206595985 --- Diff: phoenix-core/src/it/java/org/apache/phoenix/monitoring/PhoenixMetricsIT.java --- @@ -204,6 +230,45 @@ private static void resetGlobalMetrics() { } } + // Phoenix Client Metrics are transported via Hadoop-metrics2 sink + // The test sink is defined at GlobalPhoenixMetricsTestSink + // Configuration for Hadoop-metrics2 comes from hadoop-metrics2.properties file located in test/resources + private boolean verifyMetricsFromSink() throws InterruptedException { + Map<String, Long> expectedMetrics = new HashMap<>(); + for (GlobalMetric m : PhoenixRuntime.getGlobalPhoenixClientMetrics()) { + expectedMetrics.put(m.getMetricType().name(), m.getTotalSum()); + } + + for (int i = 0; i < MAX_RETRIES; i++) { + LOG.info("Verifying Global Metrics from Hadoop Sink, Retry: " + (i + 1)); + if (verifyMetricsFromSinkOnce(expectedMetrics)) { + LOG.info("Values from Hadoop Metrics Sink match actual values"); + return true; + } + Thread.sleep(1000); --- End diff -- Change this to: ``` try { Thread.sleep(1000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); return false; } ``` Then, remove the `throws InterruptedException`. We should be catching, re-setting the interrupted state and just returning ASAP. Likely, this code never gets invoked in a unit-test context, but good practice.
---