[ https://issues.apache.org/jira/browse/HADOOP-11182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14173091#comment-14173091 ]
Ravi Prakash commented on HADOOP-11182: --------------------------------------- Thanks a lot Sascha! The patch looks good to me. I'll commit it shortly. Its strange that you are unable to run test-patch successfully. On my laptop it usually takes 15-20 minutes. I was then able to see the file newPatchFindbugsWarninghadoop-common.html in /tmp . I am uploading what was produced for your perusal (which btw I checked had no instance of metrics2) . I did get 67 warnings but I'm guessing that's probably an error in the test-patch. Its probably worthwhile to setup your dev environment properly if you plan on continuing to contribute. Unfortunately it is a bit of a chore right now :( > 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, > HADOOP-11182-v2.patch, HADOOP-11182-v3.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)