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

Kevin Conaway edited comment on KAFKA-4429 at 1/1/17 8:34 PM:
--------------------------------------------------------------

I think it may be worth rethinking how the metrics are collected and 
represented.  Currently, the return type for the`Measurable#measure` method is 
a primitive `double` which means that a value must be present.  For stat values 
that use Min and Max (like records-lag), this means that they default to 
positive (Min) or negative (Max) infinity when no value is present.

In these two cases, the infinity values are used to represent the absence of a 
real value.  IMO, when there is no value we should return `Null` as most 
reporting / metrics systems can handle null.  I know that Graphite cannot 
properly handle infinity values but I can't speak for other systems.

[~junrao] who is the right person to talk to about this?

This is also related to KAFKA-3241


was (Author: kevinconaway):
I think it may be worth rethinking how the metrics are collected and 
represented.  Currently, the return type for the`Measurable#measure` method is 
a primitive `double` which means that a value must be present.  For stat values 
that use Min and Max (like records-lag), this means that they default to 
positive or negative infinity as the case may be.

In these two cases, the infinity values are used to represent the absence of a 
real value.  IMO, when there is no value we should return `Null` as most 
reporting / metrics systems can handle null.  I know that Graphite cannot 
properly handle infinity values but I can't speak for other systems.

[~junrao] who is the right person to talk to about this?

This is also related to KAFKA-3241

> records-lag should be zero if FetchResponse is empty
> ----------------------------------------------------
>
>                 Key: KAFKA-4429
>                 URL: https://issues.apache.org/jira/browse/KAFKA-4429
>             Project: Kafka
>          Issue Type: Improvement
>            Reporter: Dong Lin
>            Assignee: Dong Lin
>
> In Fetcher we record records-lag in terms of number of records for any 
> partition. Currently this metric value is updated only if number of parsed 
> records is not empty. This means that if consumer has already fully caught up 
> and there is no new data into the topic, this metric's value will be negative 
> infinity and users can not rely on this metric to know if their consumer has 
> caught up.
> We can fix this problem by assuming the lag is zero is FetchResponse is empty.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to