[
https://issues.apache.org/jira/browse/FLINK-4245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15439359#comment-15439359
]
ASF GitHub Bot commented on FLINK-4245:
---------------------------------------
Github user StephanEwen commented on the issue:
https://github.com/apache/flink/pull/2418
Actually, it may be possible, and not too bad if we assume the Hashtable is
immutable. Something like this:
```java
public class HashtableWrapper extends Hashtable<String, String> {
private final Map<String, String> backingMap;
private final String name;
public HashtableWrapper(Map<String, String> backingMap, String name) {
super(1);
this.backingMap = backingMap;
this.name = name;
}
@Override
public synchronized V get(Object key) {
if ("name".equals(key)) {
return name;
} else {
return backingMap.get(key);
}
}
@Override
public synchronized String put(String key, String value) {
throw new UnsupportedOperationException("immutable hashtable");
}
// wrappers for Iterator to Enumeration
@Override
public synchronized Enumeration<String> keys() {
return new IteratorToEnumeration(backingMap.keySet());
}
@Override
public synchronized Enumeration<String> elements() {
return new IteratorToEnumeration(backingMap.valueSet());
}
// and so on ...
}
```
> Metric naming improvements
> --------------------------
>
> Key: FLINK-4245
> URL: https://issues.apache.org/jira/browse/FLINK-4245
> Project: Flink
> Issue Type: Improvement
> Components: Metrics
> Reporter: Stephan Ewen
>
> A metric currently has two parts to it:
> - The name of that particular metric
> - The "scope" (or namespace), defined by the group that contains the metric.
> A metric group actually always implicitly has a map of naming "tags", like:
> - taskmanager_host : <some-hostname>
> - taskmanager_id : <id>
> - task_name : "map() -> filter()"
> We derive the scope from that map, following the defined scope formats.
> For JMX (and some users that use JMX), it would be natural to expose that map
> of tags. Some users reconstruct that map by parsing the metric scope. JMX, we
> can expose a metric like:
> - domain: "taskmanager.task.operator.io"
> - name: "numRecordsIn"
> - tags: { "hostname" -> "localhost", "operator_name" -> "map() at
> X.java:123", ... }
> For many other reporters, the formatted scope makes a lot of sense, since
> they think only in terms of (scope, metric-name).
> We may even have the formatted scope in JMX as well (in the domain), if we
> want to go that route.
> [~jgrier] and [~Zentol] - what do you think about that?
> [~mdaxini] Does that match your use of the metrics?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)