[ 
https://issues.apache.org/jira/browse/FLINK-4245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15395317#comment-15395317
 ] 

ASF GitHub Bot commented on FLINK-4245:
---------------------------------------

GitHub user zentol opened a pull request:

    https://github.com/apache/flink/pull/2300

    [FLINK-4245] Expose all possible variables

    This PR allows users and reporters to access a `Map<String, String>` of all 
defined variables and their associated values via 
`MetricGroup#getAllVariables()`.
    
    The following changes were made:
    * Every `AbstractMetricGroup` now has a parent field (previously, each 
`ComponentMetricGroup` had it's own field). For proper typing, both of these 
now have a generic type argument, denoting the type of the parent. 
     * For example: `TaskMetricGroup extends 
ComponentMetricGroup<TaskManagerJobMetricGroup>`
     * most super() calls had to be adjusted to pass the parent as well
    * The method `Map<String, String> getAllVariables()` was added to the 
`MetricGroup` interface
     * Non-`ComponentMetricGroup` implementations always forward the call to 
the parent or return an empty map.
     * A `ComponentMetricGroup` creates a new `HashMap` (if it wasn't created 
before), enters it's own variables (see next item), and adds the values 
returned by `parent.getAllVariables()`
    * The method `protected void putVariables(Map<String, String> variables)` 
was added to the `ComponentMetricGroup` class.
     * In this method the group adds it's varaibles and values into the map
    * The map is lazily computed.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/zentol/flink metrics_tags

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/2300.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #2300
    
----
commit a0d7b8bc7a518f981da91570f5b20f2d09a095eb
Author: zentol <ches...@apache.org>
Date:   2016-07-27T09:25:27Z

    [FLINK-4245] Expose all possible variables

----


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

Reply via email to