[
https://issues.apache.org/jira/browse/HADOOP-11182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14166704#comment-14166704
]
Sascha Coenen commented on HADOOP-11182:
----------------------------------------
Thanks Ravi. I have attached a patch but it's been the first time for me. I'm
insecure as to whether I have done the right thing.
I created the patch relative to the trunk of the following SVN repository
(http://svn.apache.org/repos/asf/hadoop/common/trunk), which was linked to from
the official hadoop website. However, the most recent commits in there seem to
be 6 weeks old.
> GraphiteSink emits wrong timestamps
> -----------------------------------
>
> Key: HADOOP-11182
> URL: https://issues.apache.org/jira/browse/HADOOP-11182
> Project: Hadoop Common
> Issue Type: Bug
> Affects Versions: 2.5.0, 2.5.1
> Reporter: Sascha Coenen
> Attachments: HADOOP-11182-GraphiteSink-v1.patch
>
>
> the org.apache.hadoop.metrics2.sink.GraphiteSink class emits metrics at the
> configured time period, but the timestamps written only change every 128
> seconds, even it the configured time period in the configuration file is much
> shorter.
> This is due to a bug in line 93:
> {code:java}
> 092 // Round the timestamp to second as Graphite accepts it in
> such format.
> 093 int timestamp = Math.round(record.timestamp() / 1000.0f);
> {code}
> The timestamp property is a long and is divided by a float which yields a
> result that is not precise enough and yields same valued results for
> timestamps that lie up to 128 seconds apart. Also, the result is then written
> into an int variable.
> One solution would be to divide by 1000.0d, but the best fix would be to not
> even convert to a decimal format in the first place. Instead one could
> replace the line with the following:
> {code:java}
> long timestamp = record.timestamp() / 1000L;
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)