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").