[ 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)