[ https://issues.apache.org/jira/browse/BEAM-9439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17070826#comment-17070826 ]
Paweł Kaczmarczyk commented on BEAM-9439: ----------------------------------------- I don't remember why it was implemented this way. As I understand, to fix {{getTotalBacklogBytes}}() we would need the watermark of the whole stream, not just current split, right? On the other hand, {{getSplitBacklogBytes}}() can be implemented using the [Enhanced Shard-level Metrics|[https://docs.aws.amazon.com/streams/latest/dev/monitoring-with-cloudwatch.html#kinesis-metrics-shard]] but these are not enabled by default and charged additionally. So even with this implementation, we would still need a proper {{getTotalBacklogBytes}}(). What do you think? > KinesisReader does not report correct backlog statistics > --------------------------------------------------------- > > Key: BEAM-9439 > URL: https://issues.apache.org/jira/browse/BEAM-9439 > Project: Beam > Issue Type: Bug > Components: io-java-kinesis > Reporter: Sam Whittle > Priority: Major > > The KinesisReader implementing KinesisIO reports backlog by implementing the > UnboundedSource.getTotalBacklogBytes() > method as opposed to the > UnboundedSource.getSplitBacklogBytes() > This value is supposed to represent the total backlog across all shards. > This function is implemented by calling > SimplifiedKinesisClient.getBacklogBytes with the watermark of the kinesis > shards managed within the UnboundedReader instance. As this watermark may be > further ahead than the watermark across all shards, this may miss backlog > bytes. > An additional concern is that the watermark is calculated using a > WatermarkPolicy, which means that the watermark may be inconsistent to the > kinesis timestamp for querying backlog. -- This message was sent by Atlassian Jira (v8.3.4#803005)