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

Bowen Li commented on FLINK-6053:
---------------------------------

hm.... I found in Flink's Gauge class is used like this in 
`org.apache.flink.runtime.checkpoint.CheckpointStatsTracker`, which doesn't 
make much sense to me....

```
private class LatestCompletedCheckpointExternalPathGauge implements 
Gauge<String> {
                @Override
                public String getValue() {
                        CompletedCheckpointStats completed = 
latestSnapshot.getHistory().getLatestCompletedCheckpoint();
                        if (completed != null) {
                                return completed.getExternalPath();
                        } else {
                                return "n/a";
                        }
                }
        }
```

> Gauge<T> should only take subclasses of Number, rather than everything
> ----------------------------------------------------------------------
>
>                 Key: FLINK-6053
>                 URL: https://issues.apache.org/jira/browse/FLINK-6053
>             Project: Flink
>          Issue Type: Improvement
>          Components: Metrics
>    Affects Versions: 1.2.0
>            Reporter: Bowen Li
>             Fix For: 1.3.0
>
>
> Currently, Flink's Gauge is defined as 
> ```java
> public interface Gauge<T> extends Metric {
>       T getValue();
> }
> ```
> But it doesn't make sense to have Gauge take generic types other than Number. 
> And it blocks I from finishing FLINK-6013, because I cannot assume Gauge is 
> only about Number. So the class should be like
> ```java
> public interface Gauge<T extends Number> extends Metric {
>       T getValue();
> }
> ```



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to