flink-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FLINK-4245) Metric naming improvements
Date Wed, 27 Jul 2016 09:41:20 GMT

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


    [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`
     * 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:


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 <chesnay@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

View raw message