[ 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)