Vaibhav Gosain
07/27/2023, 6:31 PMtgz from source similar to one of the official release downloads ?
Context: We are trying to use Flink operator autoscaler (which is only recommended to be used with Flink 1.17) with our Beam pipelines. Beam doesn't have support yet for the latest Flink 1.17 (only has support till 1.16), hence we are trying to backport the recommended autoscaler related fixes to Flink 1.15 OR 1.16.
What I tried: I tried following Building Flink from Source but the command gets stuck (without any errors) on my environment when building off the 1.15 release tag. Also, the mvn install command doesn't generate files / directory structure similar to the release tgz
Any help on backporting these fixes and getting to a Flink java docker image would be appreciated!Vaibhav Gosain
07/28/2023, 4:18 PMAlicja Celigowska
07/28/2023, 5:21 PMAlicja Celigowska
07/28/2023, 5:36 PMVaibhav Gosain
08/02/2023, 4:47 PM[INFO] Dependency-reduced POM written at: /Users/vaibhavgosain/Work/flink/flink/flink-test-utils-parent/flink-test-utils-junit/target/dependency-reduced-pom.xml
Similar to https://stackoverflow.com/questions/73561550/maven-build-gets-stuck and (possibly?) https://issues.apache.org/jira/browse/MSHADE-148
I downgraded my maven to 3.2.x as someone suggested but that doesnt seem to help as wellVaibhav Gosain
08/02/2023, 4:48 PMAlicja Celigowska
08/02/2023, 5:17 PMAlicja Celigowska
08/02/2023, 5:53 PMVaibhav Gosain
08/02/2023, 7:06 PMAlicja Celigowska
08/02/2023, 7:11 PMVaibhav Gosain
08/02/2023, 7:12 PMVaibhav Gosain
08/02/2023, 7:13 PMAlicja Celigowska
08/02/2023, 7:15 PMVaibhav Gosain
08/02/2023, 7:22 PMAlicja Celigowska
08/02/2023, 8:31 PMAlicja Celigowska
08/02/2023, 11:19 PM$ find . -name "*.java" | xargs grep TASK_BUSY_TIME 2>/dev/null
./flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/tasks/SourceStreamTaskTestBase.java: Gauge<Double> busyTimeGauge = (Gauge<Double>) metrics.get(MetricNames.TASK_BUSY_TIME);
./flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandler.java: return getMsPerSecondMetricAsRatio(metricStore, MetricNames.TASK_BUSY_TIME);
./flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/util/MutableIOMetrics.java: if (metrics.getMetric(MetricNames.ACC_TASK_BUSY_TIME) != null) {
./flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/util/MutableIOMetrics.java: metrics.getMetric(MetricNames.ACC_TASK_BUSY_TIME));
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/MetricNames.java: public static final String TASK_BUSY_TIME = "busyTimeMs" + SUFFIX_RATE;
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/MetricNames.java: public static final String ACC_TASK_BUSY_TIME = "accumulateBusyTimeMs";
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/TaskIOMetricGroup.java: this.busyTimePerSecond = gauge(MetricNames.TASK_BUSY_TIME, this::getBusyTimePerSecond);
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/TaskIOMetricGroup.java: gauge(MetricNames.ACC_TASK_BUSY_TIME, this::getAccumulatedBusyTime);
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task0, MetricNames.TASK_BUSY_TIME, "0"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task1, MetricNames.TASK_BUSY_TIME, "900"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task3, MetricNames.TASK_BUSY_TIME, "700"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task0, MetricNames.TASK_BUSY_TIME, "0"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(speculativeTask0, MetricNames.TASK_BUSY_TIME, "800"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task1, MetricNames.TASK_BUSY_TIME, "900"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(speculativeTask1, MetricNames.TASK_BUSY_TIME, "100"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task3, MetricNames.TASK_BUSY_TIME, "700"));
$ find . -name "*.java" | xargs grep TASK_BUSY_TIME 2>/dev/null
./flink-streaming-java/src/test/java/org/apache/flink/streaming/runtime/tasks/SourceStreamTaskTestBase.java: Gauge<Double> busyTimeGauge = (Gauge<Double>) metrics.get(MetricNames.TASK_BUSY_TIME);
./flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandler.java: return getMsPerSecondMetricAsRatio(metricStore, MetricNames.TASK_BUSY_TIME);
./flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/util/MutableIOMetrics.java: if (metrics.getMetric(MetricNames.ACC_TASK_BUSY_TIME) != null) {
./flink-runtime/src/main/java/org/apache/flink/runtime/rest/handler/util/MutableIOMetrics.java: metrics.getMetric(MetricNames.ACC_TASK_BUSY_TIME));
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/MetricNames.java: public static final String TASK_BUSY_TIME = "busyTimeMs" + SUFFIX_RATE;
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/MetricNames.java: public static final String ACC_TASK_BUSY_TIME = "accumulateBusyTimeMs";
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/TaskIOMetricGroup.java: this.busyTimePerSecond = gauge(MetricNames.TASK_BUSY_TIME, this::getBusyTimePerSecond);
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/TaskIOMetricGroup.java: gauge(MetricNames.ACC_TASK_BUSY_TIME, this::getAccumulatedBusyTime);
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task0, MetricNames.TASK_BUSY_TIME, "0"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task1, MetricNames.TASK_BUSY_TIME, "900"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task3, MetricNames.TASK_BUSY_TIME, "700"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task0, MetricNames.TASK_BUSY_TIME, "0"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(speculativeTask0, MetricNames.TASK_BUSY_TIME, "800"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task1, MetricNames.TASK_BUSY_TIME, "900"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(speculativeTask1, MetricNames.TASK_BUSY_TIME, "100"));
./flink-runtime/src/test/java/org/apache/flink/runtime/rest/handler/job/JobVertexBackPressureHandlerTest.java: dumps.add(new GaugeDump(task3, MetricNames.TASK_BUSY_TIME, "700"));
$ find . -name "*.java" | xargs grep setEnableBusyTime 2>/dev/null
./flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/tasks/SourceStreamTask.java: getEnvironment().getMetricGroup().getIOMetricGroup().setEnableBusyTime(false);
./flink-streaming-java/src/main/java/org/apache/flink/streaming/runtime/tasks/StreamTask.java: environment.getMetricGroup().getIOMetricGroup().setEnableBusyTime(true);
./flink-runtime/src/main/java/org/apache/flink/runtime/metrics/groups/TaskIOMetricGroup.java: public void setEnableBusyTime(boolean enabled) {
./flink-runtime/src/test/java/org/apache/flink/runtime/metrics/groups/TaskIOMetricGroupTest.java: taskIO.setEnableBusyTime(true);
private double getBusyTimePerSecond() {
double busyTime = idleTimePerSecond.getValue() + getBackPressuredTimeMsPerSecond();
return busyTimeEnabled ? 1000.0 - Math.min(busyTime, 1000.0) : Double.NaN;
}
setEnableBusyTime seems eing called to true for "StreamTask" and false for "SourceStreamTask"? Other than that, I quite dont see any other place where this variable is set. But it looks like it will be... false for every source....
Weird. This modern source api was implemented: https://github.com/apache/beam/issues/25486Alicja Celigowska
08/02/2023, 11:21 PMAlicja Celigowska
08/02/2023, 11:30 PMAlicja Celigowska
08/02/2023, 11:41 PMAlicja Celigowska
08/02/2023, 11:52 PMAlicja Celigowska
08/02/2023, 11:52 PMAlicja Celigowska
08/02/2023, 11:55 PMVaibhav Gosain
08/11/2023, 7:09 PMVaibhav Gosain
08/11/2023, 11:43 PMVaibhav Gosain
08/14/2023, 10:48 PMBecket Qin
08/15/2023, 2:01 AMBecket Qin
08/15/2023, 2:01 AMVaibhav Gosain
08/15/2023, 3:43 AMVaibhav Gosain
08/15/2023, 3:44 AMAlicja Celigowska
08/31/2023, 10:09 AMVaibhav Gosain
08/31/2023, 9:01 PMAlicja Celigowska
09/04/2023, 10:14 AMautoscaling/v2 is available.
The feature is experimental so use it with caution but here is an example configuration:
kubectl apply -f hpa/basic-hpa.yaml
Maybe it could potentially be worth