Github user casidiablo commented on a diff in the pull request:
https://github.com/apache/flink/pull/5182#discussion_r158496021
--- Diff:
flink-connectors/flink-connector-kinesis/src/main/java/org/apache/flink/streaming/connectors/kinesis/internals/ShardConsumer.java
---
@@ -70,35 +71,45 @@
private Date initTimestamp;
+ private long millisBehindLatest;
+
/**
* Creates a shard consumer.
*
* @param fetcherRef reference to the owning fetcher
* @param subscribedShardStateIndex the state index of the shard this
consumer is subscribed to
* @param subscribedShard the shard this consumer is subscribed to
* @param lastSequenceNum the sequence number in the shard to start
consuming
+ * @param kinesisMetricGroup the metric group to report to
*/
public ShardConsumer(KinesisDataFetcher<T> fetcherRef,
Integer
subscribedShardStateIndex,
StreamShardHandle
subscribedShard,
- SequenceNumber lastSequenceNum)
{
+ SequenceNumber lastSequenceNum,
+ MetricGroup kinesisMetricGroup)
{
this(fetcherRef,
subscribedShardStateIndex,
subscribedShard,
lastSequenceNum,
-
KinesisProxy.create(fetcherRef.getConsumerConfiguration()));
+
KinesisProxy.create(fetcherRef.getConsumerConfiguration()),
+ kinesisMetricGroup);
}
/** This constructor is exposed for testing purposes. */
protected ShardConsumer(KinesisDataFetcher<T> fetcherRef,
Integer
subscribedShardStateIndex,
StreamShardHandle
subscribedShard,
SequenceNumber
lastSequenceNum,
- KinesisProxyInterface
kinesis) {
+ KinesisProxyInterface
kinesis,
+ MetricGroup
kinesisMetricGroup) {
this.fetcherRef = checkNotNull(fetcherRef);
this.subscribedShardStateIndex =
checkNotNull(subscribedShardStateIndex);
this.subscribedShard = checkNotNull(subscribedShard);
this.lastSequenceNum = checkNotNull(lastSequenceNum);
+
+ checkNotNull(kinesisMetricGroup)
+ .gauge("millisBehindLatest", () -> millisBehindLatest);
--- End diff --
Will this work? Am I allowed to use lambdas? What Java version has to be
supported?
---