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

Chesnay Schepler commented on FLINK-6053:
-----------------------------------------

I can see the merit and would be in favor of doing that; i do consider the 
current Gauge definition a mistake. But we would first need a plan on what to 
do with the existing metrics that rely on the current interface.

What we could right now though is the following:

Step 1:
Add a new class:
{code:java}
class NumberGauge extends Gauge<Number> {
}
{code}

Step 2:
Migrate all existing gauges that return numbers to this class.

Step 3:
You can now check for instanceof NumberGauge in the reporter, similar to other 
metrics. Since we have to make instanceof checks anyway (because FLINK-5095 is 
still open)
this shouldn't be soooo terrible.

This does not break the API since all reporters that are unaware of this new 
type will simply handle it as a gauge.
Note that a reporter that wants to use this must not extend AbstractReporter 
since we can't change that class to account for this new type.

> 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: 2.0.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