Hey Amrit,

Actually, I think the confluent guide is correct because it seems like the
request is created here
<https://github.com/apache/kafka/blob/f7db6031b84a136ad0e257df722b20faa7c37b8a/clients/src/main/java/org/apache/kafka/clients/producer/internals/Sender.java#L847>
.
and the queue time
<https://github.com/apache/kafka/blob/89933f21f204abf75336464d3ac24a4fdd254628/clients/src/main/java/org/apache/kafka/clients/producer/internals/ProducerBatch.java#L394>
is actually the time difference between the batch creation and drain - each
runOnce() in the sender loop first drains, then invoke sendProduceRequest.
Sorry about the previous misleading reply.

P

On Mon, Nov 7, 2022 at 11:39 AM Amrit Gupta <guptamrit...@gmail.com> wrote:

> Bumping
>
> On Mon, 7 Nov 2022 at 12:45 PM, Amrit Gupta <guptamrit...@gmail.com>
> wrote:
>
>> Hi Philip,
>>
>> >>  the latency measures the time difference between the *time the
>> request was created* and the response received
>> >>  I believe it is *between the time send() was called*, and the time
>> the producer receives the response from the broker.
>>
>> I believe this is not right as if we see
>> <https://developer.confluent.io/learn-kafka/architecture/producer-hands-on/?_ga=2.143024061.907256740.1667543050-19124442.1666163656&_gac=1.54193882.1667550950.CjwKCAjw8JKbBhBYEiwAs3sxN21FphL9sHjqJWmlOYnVw9d474r-z9r8Hs1b3B5YbyYdxBOgrBxIORoCY-AQAvD_BwE#:~:text=1406.273-,request%2Dlatency%2Davg,-43.292>
>> :
>> [image: image.png]
>>
>> >> the producer doesn't immediately transmit the sends when send() is
>> called, the requests can be batched depending on your configuration.
>>
>> if it was like the way you mentioned,  then it implies it includes the
>> producer buffer time also as you mentioned then *request-latency-avg*
>> should be *always greater* than *request-queue-time-avg. *But as per the
>> results above we can see in multiple cases, it is actually vice-versa.
>>
>>
>> Please add more thoughts to this and let me know what you think.
>>
>> Thanks,
>> T
>>
>

Reply via email to