public class MetricFiltering
extends java.lang.Object
| Modifier and Type | Method and Description |
|---|---|
static boolean |
matches(MetricsFilter filter,
MetricKey key)
Matching logic is implemented here rather than in MetricsFilter because we would like
MetricsFilter to act as a "dumb" value-object, with the possibility of replacing it with a
Proto/JSON/etc.
|
static boolean |
matchesScope(java.lang.String actualScope,
java.util.Set<java.lang.String> scopes)
matchesScope(actualScope, scopes) returns true if the scope of a metric is matched by
any of the filters in scopes. |
static boolean |
subPathMatches(java.lang.String haystack,
java.lang.String needle)
subPathMatches(haystack, needle) returns true if needle represents a path
within haystack. |
public static boolean matches(MetricsFilter filter, MetricKey key)
filter - MetricsFilter with the matching information of an actual metrickey - MetricKey with the information of a metricpublic static boolean subPathMatches(java.lang.String haystack,
java.lang.String needle)
subPathMatches(haystack, needle) returns true if needle represents a path
within haystack. For example, "foo/bar" is in "a/foo/bar/b", but not "a/fool/bar/b" or
"a/foo/bart/b".public static boolean matchesScope(java.lang.String actualScope,
java.util.Set<java.lang.String> scopes)
matchesScope(actualScope, scopes) returns true if the scope of a metric is matched by
any of the filters in scopes. A metric scope is a path of type "A/B/D". A path is
matched by a filter if the filter is equal to the path (e.g. "A/B/D", or if it represents a
subpath within it (e.g. "A/B" or "B/D", but not "A/D").