[
https://issues.apache.org/jira/browse/FLINK-4812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16270521#comment-16270521
]
ASF GitHub Bot commented on FLINK-4812:
---------------------------------------
Github user tzulitai commented on a diff in the pull request:
https://github.com/apache/flink/pull/5092#discussion_r153739683
--- Diff:
flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/operators/StreamSourceOperatorTest.java
---
@@ -224,6 +226,39 @@ public void testLatencyMarkEmission() throws Exception
{
Assert.assertTrue(output.get(i).isWatermark());
}
+ @Test
+ public void testManualWatermarkContextWatermarkMetric() throws
Exception {
+
+ // regular stream source operator
+ final StoppableStreamSource<String, InfiniteSource<String>>
operator =
+ new StoppableStreamSource<>(new
InfiniteSource<String>());
+
+ long watermarkInterval = 10;
+ TestProcessingTimeService processingTimeService = new
TestProcessingTimeService();
+ processingTimeService.setCurrentTime(0);
+
+ setupSourceOperator(operator, TimeCharacteristic.EventTime,
watermarkInterval, 0, processingTimeService);
+
+ WatermarkGauge watermarkGauge = new WatermarkGauge();
+
+ SourceFunction.SourceContext<String> sourceContext =
StreamSourceContexts.getSourceContext(TimeCharacteristic.EventTime,
+ operator.getContainingTask().getProcessingTimeService(),
+ operator.getContainingTask().getCheckpointLock(),
+
operator.getContainingTask().getStreamStatusMaintainer(),
+ new CollectorOutput<String>(new ArrayList<>(1)),
+
operator.getExecutionConfig().getAutoWatermarkInterval(),
+ -1,
+ watermarkGauge);
+
+ Watermark wm1 = new Watermark(64);
+ sourceContext.emitWatermark(wm1);
+ assertEquals(wm1.getTimestamp(),
watermarkGauge.getValue().longValue());
+
+ Watermark wm2 = new Watermark(128);
+ sourceContext.emitWatermark(wm2);
+ assertEquals(wm2.getTimestamp(),
watermarkGauge.getValue().longValue());
+ }
+
@Test
public void testAutomaticWatermarkContext() throws Exception {
--- End diff --
I think we can strengthen this test a little.
It is missing the case where we emit the `Long.MAX_VALUE` watermark from
the source context, and verify that the output contains it. Additionally
verifying that the metric gauge is also updated to `Long.MAX_VALUE`, we should
be able to catch the missing update case I mentioned above.
> Report Watermark metrics in all operators
> -----------------------------------------
>
> Key: FLINK-4812
> URL: https://issues.apache.org/jira/browse/FLINK-4812
> Project: Flink
> Issue Type: Improvement
> Components: Metrics
> Reporter: Robert Metzger
> Assignee: Chesnay Schepler
> Priority: Critical
> Fix For: 1.5.0
>
>
> As reported by a user, Flink does currently not export the current low
> watermark for sources
> (http://apache-flink-mailing-list-archive.1008284.n3.nabble.com/currentLowWatermark-metric-not-reported-for-all-tasks-td13770.html).
> This JIRA is for adding such a metric for the sources as well.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)