[
https://issues.apache.org/jira/browse/FLINK-4563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15525713#comment-15525713
]
Anton Mushin commented on FLINK-4563:
-------------------------------------
Hello.
Do I correct undestand this issue, what next tests will be passed
{code:java}
@Test
public void filteringForMultipleReporters() {
Configuration config = new Configuration();
config.setString(ConfigConstants.METRICS_SCOPE_NAMING_TM,
"A.B.C.D");
config.setString(ConfigConstants.METRICS_REPORTERS_LIST,
"test1,test2");
config.setString(ConfigConstants.METRICS_REPORTER_PREFIX +
"test1." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX,
TestReporter1.class.getName());
config.setString(ConfigConstants.METRICS_REPORTER_PREFIX +
"test2." + ConfigConstants.METRICS_REPORTER_CLASS_SUFFIX,
TestReporter2.class.getName());
MetricRegistry registry = new MetricRegistry(config);
TaskManagerMetricGroup tmGroup = new
TaskManagerMetricGroup(registry, "host", "id");
tmGroup.counter(1);
registry.shutdown();
}
public static class TestReporter1 extends TestReporter {
@Override
public String filterCharacters(String input) {
return input.replace("A", "a");
}
@Override
public void notifyOfAddedMetric(Metric metric, String
metricName, MetricGroup group) {
assertEquals("a.B.C.D.1",
group.getMetricIdentifier(metricName, this));
}
}
public static class TestReporter2 extends TestReporter {
@Override
public String filterCharacters(String input) {
return input.replace("B", "b");
}
@Override
public void notifyOfAddedMetric(Metric metric, String
metricName, MetricGroup group) {
assertEquals("A.b.C.D.1",
group.getMetricIdentifier(metricName,this));
}
}
{code}
and need save caching of scopeString in AbstractMetricGroup for each reporters ?
> [metrics] scope caching not adjusted for multiple reporters
> -----------------------------------------------------------
>
> Key: FLINK-4563
> URL: https://issues.apache.org/jira/browse/FLINK-4563
> Project: Flink
> Issue Type: Bug
> Components: Metrics
> Affects Versions: 1.1.0
> Reporter: Chesnay Schepler
> Assignee: Anton Mushin
>
> Every metric group contains a scope string, representing what entities
> (job/task/etc.) a given metric belongs to, which is calculated on demand.
> Before this string is cached a CharacterFilter is applied to it, which is
> provided by the callee, usually a reporter. This was done since different
> reporters have different requirements in regards to valid characters. The
> filtered string is cached so that we don't have to refilter the string every
> time.
> This all works fine with a single reporter; with multiple however it is
> completely broken as only the first filter is ever applied.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)