Repository: beam Updated Branches: refs/heads/master e5f1a6479 -> fe2369933
[BEAM-1803] Fixed bug in metrics filtering. Project: http://git-wip-us.apache.org/repos/asf/beam/repo Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/b436263e Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/b436263e Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/b436263e Branch: refs/heads/master Commit: b436263e01c32f9e8b648b8422c094ad7c56d2a6 Parents: e5f1a64 Author: Pablo <pabl...@google.com> Authored: Fri Mar 24 12:53:10 2017 -0700 Committer: Aviem Zur <aviem...@gmail.com> Committed: Sat Mar 25 12:15:55 2017 +0300 ---------------------------------------------------------------------- .../beam/sdk/metrics/MetricNameFilter.java | 3 +- .../beam/sdk/metrics/MetricFilteringTest.java | 73 ++++++++++++++++++++ 2 files changed, 74 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/beam/blob/b436263e/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/MetricNameFilter.java ---------------------------------------------------------------------- diff --git a/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/MetricNameFilter.java b/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/MetricNameFilter.java index a2c3798..489b703 100644 --- a/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/MetricNameFilter.java +++ b/sdks/java/core/src/main/java/org/apache/beam/sdk/metrics/MetricNameFilter.java @@ -54,7 +54,6 @@ public abstract class MetricNameFilter { public static MetricNameFilter named(Class<?> namespace, String name) { checkNotNull(namespace, "Must specify a inNamespace"); checkNotNull(name, "Must specify a name"); - return new AutoValue_MetricNameFilter(namespace.getSimpleName(), name); + return new AutoValue_MetricNameFilter(namespace.getName(), name); } } - http://git-wip-us.apache.org/repos/asf/beam/blob/b436263e/sdks/java/core/src/test/java/org/apache/beam/sdk/metrics/MetricFilteringTest.java ---------------------------------------------------------------------- diff --git a/sdks/java/core/src/test/java/org/apache/beam/sdk/metrics/MetricFilteringTest.java b/sdks/java/core/src/test/java/org/apache/beam/sdk/metrics/MetricFilteringTest.java index 3e6a499..dc2fa0a 100644 --- a/sdks/java/core/src/test/java/org/apache/beam/sdk/metrics/MetricFilteringTest.java +++ b/sdks/java/core/src/test/java/org/apache/beam/sdk/metrics/MetricFilteringTest.java @@ -40,6 +40,79 @@ public class MetricFilteringTest { } @Test + public void testMatchCompositeStepNameFilters() { + // MetricsFilter with a Class-namespace + name filter + step filter. + // Successful match. + assertTrue(MetricFiltering.matches( + MetricsFilter.builder().addNameFilter( + MetricNameFilter.named(MetricFilteringTest.class, "myMetricName")) + .addStep("myStep").build(), + MetricKey.create( + "myBigStep/myStep", MetricName.named(MetricFilteringTest.class, "myMetricName")))); + + // Unsuccessful match. + assertFalse(MetricFiltering.matches( + MetricsFilter.builder().addNameFilter( + MetricNameFilter.named(MetricFilteringTest.class, "myMetricName")) + .addStep("myOtherStep").build(), + MetricKey.create( + "myOtherStepNoMatch/myStep", + MetricName.named(MetricFilteringTest.class, "myMetricName")))); + } + + @Test + public void testMatchStepNameFilters() { + // MetricsFilter with a Class-namespace + name filter + step filter. + // Successful match. + assertTrue(MetricFiltering.matches( + MetricsFilter.builder().addNameFilter( + MetricNameFilter.named(MetricFilteringTest.class, "myMetricName")) + .addStep("myStep").build(), + MetricKey.create("myStep", MetricName.named(MetricFilteringTest.class, "myMetricName")))); + + // Unsuccessful match. + assertFalse(MetricFiltering.matches( + MetricsFilter.builder().addNameFilter( + MetricNameFilter.named(MetricFilteringTest.class, "myMetricName")) + .addStep("myOtherStep").build(), + MetricKey.create("myStep", MetricName.named(MetricFilteringTest.class, "myMetricName")))); + } + + @Test + public void testMatchClassNamespaceFilters() { + // MetricsFilter with a Class-namespace + name filter. Without step filter. + // Successful match. + assertTrue(MetricFiltering.matches( + MetricsFilter.builder().addNameFilter( + MetricNameFilter.named(MetricFilteringTest.class, "myMetricName")).build(), + MetricKey.create("anyStep", MetricName.named(MetricFilteringTest.class, "myMetricName")))); + + // Unsuccessful match. + assertFalse(MetricFiltering.matches( + MetricsFilter.builder().addNameFilter( + MetricNameFilter.named(MetricFilteringTest.class, "myMetricName")).build(), + MetricKey.create("anyStep", MetricName.named(MetricFiltering.class, "myMetricName")))); + } + + @Test + public void testMatchStringNamespaceFilters() { + // MetricsFilter with a String-namespace + name filter. Without step filter. + // Successful match. + assertTrue( + MetricFiltering.matches( + MetricsFilter.builder().addNameFilter( + MetricNameFilter.named("myNamespace", "myMetricName")).build(), + MetricKey.create("anyStep", MetricName.named("myNamespace", "myMetricName")))); + + // Unsuccessful match. + assertFalse( + MetricFiltering.matches( + MetricsFilter.builder().addNameFilter( + MetricNameFilter.named("myOtherNamespace", "myMetricName")).build(), + MetricKey.create("anyStep", MetricName.named("myNamespace", "myMetricname")))); + } + + @Test public void testMatchesSubPath() { assertTrue("Match of the first element", matchesSubPath("Top1/Outer1/Inner1/Bottom1", "Top1"));