[ 
https://issues.apache.org/jira/browse/KAFKA-14672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kirk True updated KAFKA-14672:
------------------------------
    Description: 
The producer exposes two metrics for the time a record has spent in the 
accumulator waiting to be drained:
 * {{record-queue-time-avg}}
 * {{record-queue-time-max}}

The metric is only updated when a batch is ready to send to a broker. It is 
also possible for a batch to be expired before it can be sent, but in this 
case, the metric is not updated. This seems surprising and makes the queue time 
misleading. The only metric I could find that does reflect batch expirations in 
the accumulator is the generic {{{}record-error-rate{}}}. It would make sense 
to let the queue-time metrics record the time spent in the queue regardless of 
the outcome of the record send attempt.

  was:
The producer exposes two metrics for the time a record has spent in the 
accumulator waiting to be drained:
 * `record-queue-time-avg`
 * `record-queue-time-max`

The metric is only updated when a batch is ready to send to a broker. It is 
also possible for a batch to be expired before it can be sent, but in this 
case, the metric is not updated. This seems surprising and makes the queue time 
misleading. The only metric I could find that does reflect batch expirations in 
the accumulator is the generic `record-error-rate`. It would make sense to let 
the queue-time metrics record the time spent in the queue regardless of the 
outcome of the record send attempt.


> Producer queue time does not reflect batches expired in the accumulator
> -----------------------------------------------------------------------
>
>                 Key: KAFKA-14672
>                 URL: https://issues.apache.org/jira/browse/KAFKA-14672
>             Project: Kafka
>          Issue Type: Bug
>            Reporter: Jason Gustafson
>            Assignee: Kirk True
>            Priority: Major
>
> The producer exposes two metrics for the time a record has spent in the 
> accumulator waiting to be drained:
>  * {{record-queue-time-avg}}
>  * {{record-queue-time-max}}
> The metric is only updated when a batch is ready to send to a broker. It is 
> also possible for a batch to be expired before it can be sent, but in this 
> case, the metric is not updated. This seems surprising and makes the queue 
> time misleading. The only metric I could find that does reflect batch 
> expirations in the accumulator is the generic {{{}record-error-rate{}}}. It 
> would make sense to let the queue-time metrics record the time spent in the 
> queue regardless of the outcome of the record send attempt.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to