This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev by this push:
new 99fcf2931 [Feature] support for flink cluster configuration (#2905)
99fcf2931 is described below
commit 99fcf2931194af4750c9388812d0ae25458d8c3d
Author: xujiangfeng001 <[email protected]>
AuthorDate: Sat Jul 29 15:09:35 2023 +0800
[Feature] support for flink cluster configuration (#2905)
---
.../streampark/console/core/entity/FlinkCluster.java | 1 +
.../core/service/impl/FlinkClusterServiceImpl.java | 1 +
.../src/views/setting/FlinkCluster/EditCluster.vue | 13 ++++++++++++-
.../views/setting/FlinkCluster/useClusterSetting.ts | 20 ++++++++++++++++++++
4 files changed, 34 insertions(+), 1 deletion(-)
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/FlinkCluster.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/FlinkCluster.java
index 9684c8406..d48c17861 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/FlinkCluster.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/FlinkCluster.java
@@ -108,6 +108,7 @@ public class FlinkCluster implements Serializable {
private Date endTime;
+ @TableField(updateStrategy = FieldStrategy.IGNORED)
private Integer alertId;
private transient Integer jobs = 0;
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
index adb74ce41..7111e2758 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/FlinkClusterServiceImpl.java
@@ -199,6 +199,7 @@ public class FlinkClusterServiceImpl extends
ServiceImpl<FlinkClusterMapper, Fli
success, String.format(ERROR_CLUSTER_QUEUE_HINT,
paramOfCluster.getYarnQueue()));
flinkCluster.setClusterName(paramOfCluster.getClusterName());
+ flinkCluster.setAlertId(paramOfCluster.getAlertId());
flinkCluster.setDescription(paramOfCluster.getDescription());
if (ExecutionMode.isRemoteMode(flinkCluster.getExecutionModeEnum())) {
flinkCluster.setAddress(paramOfCluster.getAddress());
diff --git
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/EditCluster.vue
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/EditCluster.vue
index c3da53cfe..9c2590226 100644
---
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/EditCluster.vue
+++
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/EditCluster.vue
@@ -15,7 +15,7 @@
limitations under the License.
-->
<script lang="ts">
- import { defineComponent } from 'vue';
+ import { defineComponent, unref, ref } from 'vue';
import { useGo } from '/@/hooks/web/usePage';
export default defineComponent({
name: 'EditCluster',
@@ -36,6 +36,8 @@
import { useRoute } from 'vue-router';
import { useEdit } from '../../flink/app/hooks/useEdit';
import { useI18n } from '/@/hooks/web/useI18n';
+ import { fetchAlertSetting } from '/@/api/flink/setting/alert';
+ import { AlertSetting } from '/@/api/flink/setting/types/alert.type';
const go = useGo();
const route = useRoute();
@@ -43,6 +45,7 @@
const { Swal } = useMessage();
const { handleResetApplication, defaultOptions } = useEdit();
const cluster = reactive<Recordable>({});
+ const alerts = ref<AlertSetting[]>([]);
const { getLoading, changeLoading, getClusterSchema, handleSubmitParams } =
useClusterSetting();
const [registerForm, { submit, setFieldsValue }] = useForm({
@@ -97,6 +100,10 @@
function handleReset() {
const resetParams = handleResetApplication();
nextTick(() => {
+ let selectAlertId: string | undefined;
+ if (cluster.alertId) {
+ selectAlertId = unref(alerts)?.filter((t) => t.id ==
cluster.alertId)[0]?.id;
+ }
setFieldsValue({
clusterName: cluster.clusterName,
clusterId: cluster.clusterId,
@@ -106,6 +113,7 @@
dynamicProperties: cluster.dynamicProperties,
resolveOrder: cluster.resolveOrder,
yarnQueue: cluster.yarnQueue,
+ alertId: selectAlertId,
versionId: cluster.versionId || null,
k8sRestExposedType: cluster.k8sRestExposedType,
flinkImage: cluster.flinkImage,
@@ -117,6 +125,9 @@
});
}
onMounted(() => {
+ fetchAlertSetting().then((res) => {
+ alerts.value = res;
+ });
getClusterInfo();
});
</script>
diff --git
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/useClusterSetting.ts
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/useClusterSetting.ts
index e88e1d04a..04563a701 100644
---
a/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/useClusterSetting.ts
+++
b/streampark-console/streampark-console-webapp/src/views/setting/FlinkCluster/useClusterSetting.ts
@@ -38,6 +38,8 @@ import {
import { handleFormValue } from '../../flink/app/utils';
import { useMessage } from '/@/hooks/web/useMessage';
import { useI18n } from '/@/hooks/web/useI18n';
+import { AlertSetting } from '/@/api/flink/setting/types/alert.type';
+import { fetchAlertSetting } from '/@/api/flink/setting/alert';
export const useClusterSetting = () => {
const { createMessage } = useMessage();
@@ -45,6 +47,7 @@ export const useClusterSetting = () => {
const submitLoading = ref(false);
const flinkEnvs = ref<any[]>([]);
+ const alerts = ref<AlertSetting[]>([]);
const historyRecord = reactive<{
k8sNamespace: string[];
k8sSessionClusterId: string[];
@@ -156,6 +159,19 @@ export const useClusterSetting = () => {
ifShow: ({ values }) => values.executionMode ==
ExecModeEnum.YARN_SESSION,
render: (renderCallbackParams) =>
renderYarnQueue(renderCallbackParams),
},
+ {
+ field: 'alertId',
+ label: t('flink.app.faultAlertTemplate'),
+ component: 'Select',
+ componentProps: {
+ placeholder: t('flink.app.addAppTips.alertTemplatePlaceholder'),
+ options: unref(alerts),
+ fieldNames: { label: 'alertName', value: 'id', options: 'options' },
+ },
+ ifShow: ({ values }) =>
+ values.executionMode == ExecModeEnum.YARN_SESSION ||
+ values.executionMode == ExecModeEnum.REMOTE,
+ },
{
field: 'clusterId',
label: t('setting.flinkCluster.form.k8sClusterId'),
@@ -332,6 +348,7 @@ export const useClusterSetting = () => {
executionMode: values.executionMode,
versionId: values.versionId,
description: values.description,
+ alertId: values.alertId,
};
switch (values.executionMode) {
@@ -370,6 +387,9 @@ export const useClusterSetting = () => {
fetchFlinkEnv().then((res) => {
flinkEnvs.value = res;
});
+ fetchAlertSetting().then((res) => {
+ alerts.value = res;
+ });
fetchK8sNamespaces().then((res) => {
historyRecord.k8sNamespace = res;
});