-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/19388/#review38261
-----------------------------------------------------------


Thanks for the patch. Some comments.

1. For producer level stats (ie., not node or topic level), for jmx beans, the 
package name becomes kafka.producer (since the bean name is 
kafka.producer:type=client-id). For the topic and node level stats, jmx beans 
have the package name kafka.producer.client-id. Perhaps we can name the 
producer level stats under kafka.producer.client-id.aggregate?

2. Could we make the metrics.timeWindowNs and metrics.samples configurable?

3. Also, in Metrics, what's the purpose of eventWindow? It's not being used and 
I am not sure if there is a case when we will roll the window by count, instead 
of size.

4. When testing using console producer, I sent 1 message and expected the topic 
level message rate to be non-zero for at least 30 secs (on average, I expect 
the non-zero value to last 45 secs). However, in multiple tests, the number 
drops to 0 well before 30 secs.

5. Metric: Our measurement returns a double. However, we don't synchronize btw 
the reader and the writer of the double. Since double access is not guaranteed 
to be atomic in java, we could see incorrect value in the output.

6. Not sure why we need to change the license header. Perhaps we can have a 
separate jira to standardize all headers if there is inconsistency?


clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java
<https://reviews.apache.org/r/19388/#comment70316>

    Perhaps we could distinguish btw metadata request and produce request?



clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java
<https://reviews.apache.org/r/19388/#comment70317>

    Why this method needs nowNs while the ones above don't?



clients/src/main/java/org/apache/kafka/common/metrics/stats/SampledStat.java
<https://reviews.apache.org/r/19388/#comment70315>

    When I ran a producer producing at a constant rate of 1 msg/sec, 
occasionally, I saw a blip of -infinity on metrics like max-message-size in 
jconsole. I think this can be caused by the following. When switching to a new 
window, we first reset the sample in the new window and then update the new 
value. If the jmx reader sneaks in btw, it would read a sample with no data in 
it. For metrics like max, this translates to -infinity, which will result in 
-infinity when combined with other samples. To fix this, I am wondering if we 
should introduce a method like resetAndUpdate() so that we can do the reset and 
update atomically?



clients/src/main/java/org/apache/kafka/common/network/Selector.java
<https://reviews.apache.org/r/19388/#comment70313>

    Could we distinguish btw metadata and produce requests?



clients/src/main/java/org/apache/kafka/common/network/Selector.java
<https://reviews.apache.org/r/19388/#comment70314>

    Could we distinguish btw metadata and produce responses?


- Jun Rao


On March 20, 2014, 12:30 a.m., Jay Kreps wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/19388/
> -----------------------------------------------------------
> 
> (Updated March 20, 2014, 12:30 a.m.)
> 
> 
> Review request for kafka.
> 
> 
> Bugs: KAFKA-1251
>     https://issues.apache.org/jira/browse/KAFKA-1251
> 
> 
> Repository: kafka
> 
> 
> Description
> -------
> 
> KAFKA-1251: Add metrics to the producer.
> 
> 
> Diffs
> -----
> 
>   clients/src/main/java/org/apache/kafka/clients/producer/KafkaProducer.java 
> 1ac69436f117800815b8d50f042e9e2a29364b43 
>   
> clients/src/main/java/org/apache/kafka/clients/producer/internals/Metadata.java
>  33d62a4b83fbab5b22b91b22f6b744af1c98d262 
>   
> clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordAccumulator.java
>  673b2962771c28ceb3c7a6c0fd6f69521bd7ed16 
>   
> clients/src/main/java/org/apache/kafka/clients/producer/internals/RecordBatch.java
>  038a05a94b795ec0a95b2d40a89222394b5a74c4 
>   
> clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java 
> 565331dfb9cd1d65be37ed97830aa42e44d2e127 
>   
> clients/src/main/java/org/apache/kafka/clients/tools/ProducerPerformance.java 
> 3ebbb804242be6a001b3bae6524afccc85a87602 
>   clients/src/main/java/org/apache/kafka/common/metrics/Metrics.java 
> 6db2dfbe94c940efa37463298f0b0b1893e646e1 
>   clients/src/main/java/org/apache/kafka/common/metrics/Sensor.java 
> 7e4849b7a148009c8a878349d7f0239108ccad8c 
>   clients/src/main/java/org/apache/kafka/common/metrics/stats/Rate.java 
> 3b0454f26490d1f4a2a80efb00165fc72587fbf8 
>   
> clients/src/main/java/org/apache/kafka/common/metrics/stats/SampledStat.java 
> f8b413a8c273cdad56177fbc6971fece4feb86b3 
>   clients/src/main/java/org/apache/kafka/common/network/ByteBufferSend.java 
> 9305b61ddeaa2bb400cbbb6d3c99c8ecaade6b8f 
>   clients/src/main/java/org/apache/kafka/common/network/NetworkReceive.java 
> 51d4892dfc18580e5e213d386c5de387a47d3c6b 
>   clients/src/main/java/org/apache/kafka/common/network/Selector.java 
> 983963200ce81614577cd6182a5d2f10c22b95d4 
>   clients/src/test/java/org/apache/kafka/clients/producer/MetadataTest.java 
> 09a5355d25a3b94c8e23caa2adc77cb1c59368b9 
>   
> clients/src/test/java/org/apache/kafka/clients/producer/RecordAccumulatorTest.java
>  ed5690641a22fbe4bd91b0c6055d465944b08c06 
>   clients/src/test/java/org/apache/kafka/clients/producer/SenderTest.java 
> 12c9500ce4387306ab5aa7a5781b4aca52b86604 
>   clients/src/test/java/org/apache/kafka/common/network/SelectorTest.java 
> 90e2dcf5434db546387302fb0219edfdb363592e 
>   clients/src/test/java/org/apache/kafka/test/MetricsBench.java 
> 7239b4a56e93f019e66aa2cf2aa9b04c26908bfd 
> 
> Diff: https://reviews.apache.org/r/19388/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jay Kreps
> 
>

Reply via email to