Skip to content

Commit

Permalink
[Fix] formate-code (#3566)
Browse files Browse the repository at this point in the history
Co-authored-by: steve <[email protected]>
Co-authored-by: gaoyan1998 <[email protected]>
3 people authored Jun 5, 2024

Verified

This commit was signed with the committer’s verified signature.
Ana06 Ana María Martínez Gómez
1 parent 71d009e commit e0f865f
Showing 5 changed files with 221 additions and 181 deletions.
4 changes: 2 additions & 2 deletions dinky-web/package.json
Original file line number Diff line number Diff line change
@@ -52,10 +52,10 @@
"butterfly-dag": "^4.3.28",
"classnames": "^2.3.2",
"dayjs": "^1.11.10",
"jquery": "^3.7.1",
"js-cookie": "^3.0.5",
"lodash": "^4.17.21",
"million": "^2.6.4",
"jquery": "^3.7.1",
"moment": "^2.29.4",
"monaco-editor": "^0.44.0",
"omit.js": "^2.0.2",
@@ -66,12 +66,12 @@
"react": "^18.2.0",
"react-countup": "^6.5.0",
"react-dom": "^18.0.0",
"react-fast-marquee": "^1.6.4",
"react-helmet-async": "^2.0.1",
"react-infinite-scroll-component": "^6.1.0",
"react-lineage-dag": "^2.0.36",
"react-markdown": "^9.0.1",
"react-spring": "^9.7.3",
"react-fast-marquee": "^1.6.4",
"react-use-cookie": "^1.4.0",
"redux-persist": "^6.0.0",
"remark-gfm": "^4.0.0",
63 changes: 48 additions & 15 deletions dinky-web/src/components/MarqueeAlert/index.tsx
Original file line number Diff line number Diff line change
@@ -1,33 +1,66 @@
import {Alert, Result} from "antd";
import Marquee from "react-fast-marquee";
import React from "react";
/*
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

import { Alert } from 'antd';
import React from 'react';
import Marquee from 'react-fast-marquee';

interface MetricsProps {
tips: string | React.ReactNode
tips: string | React.ReactNode;
type: 'success' | 'info' | 'warning' | 'error';
showIcon?: boolean;
banner?: boolean;
play?: boolean;
}


/**
* The scrolling message prompt component is only used for long text, but its width may exceed the width of the container, so scrolling display is required
* @param props
*/
export default (props: MetricsProps) => {

const {tips, type, banner = false, showIcon = true, play = true} = props;
const { tips, type, banner = false, showIcon = true, play = true } = props;

const renderMarquee = () => {
return <>
<Marquee style={{alignContent: 'center'}} play={play} speed={50} gradient={false} gradientWidth={0}>
{tips}
</Marquee>
</>
}

return (
<>
<Marquee
style={{ alignContent: 'center' }}
play={play}
speed={50}
gradient={false}
gradientWidth={0}
>
{tips}
</Marquee>
</>
);
};

return <><Alert style={{width: '50vw'}} message={renderMarquee()} type={type} banner={banner} showIcon={showIcon}/></>
return (
<>
<Alert
style={{ width: '50vw' }}
message={renderMarquee()}
type={type}
banner={banner}
showIcon={showIcon}
/>
</>
);
};
72 changes: 38 additions & 34 deletions dinky-web/src/pages/DevOps/JobDetail/JobMetrics/index.tsx
Original file line number Diff line number Diff line change
@@ -19,21 +19,20 @@

import MetricsFilter from '@/components/Flink/MetricsFilter/MetricsFilter';
import useHookRequest from '@/hooks/useHookRequest';
import {JOB_STATUS} from '@/pages/DevOps/constants';
import {JobMetricsItem, JobProps, MetricsTimeFilter} from '@/pages/DevOps/JobDetail/data';
import {buildMetricsTarget} from '@/pages/DevOps/JobDetail/JobMetrics/function';
import { JOB_STATUS } from '@/pages/DevOps/constants';
import { JobMetricsItem, JobProps, MetricsTimeFilter } from '@/pages/DevOps/JobDetail/data';
import { buildMetricsTarget } from '@/pages/DevOps/JobDetail/JobMetrics/function';
import MonitorConfigForm from '@/pages/DevOps/JobDetail/JobMetrics/MetricsForm/MetricsConfigForm';
import {getMetricsLayout, putMetricsLayout} from '@/pages/DevOps/JobDetail/service';
import {Result, Space} from 'antd';
import React, {memo, useState} from 'react';
import { getMetricsLayout, putMetricsLayout } from '@/pages/DevOps/JobDetail/service';
import { SysConfigStateType } from '@/pages/SettingCenter/GlobalSetting/model';
import { l } from '@/utils/intl';
import { connect } from '@umijs/max';
import { Result, Space } from 'antd';
import { memo, useState } from 'react';
import JobChart from './JobChart/JobChart';
import {SysConfigStateType} from "@/pages/SettingCenter/GlobalSetting/model";
import {connect} from "@umijs/max";
import MarqueeAlert from "@/components/MarqueeAlert";
import {l} from "@/utils/intl";

const JobMetrics = (props: JobProps & connect) => {
const {jobDetail, dispatch, enableMetricMonitor} = props;
const { jobDetail, dispatch, enableMetricMonitor } = props;
const layoutName = `${jobDetail.instance.name}-${jobDetail.instance.taskId}`;

const [timeRange, setTimeRange] = useState<MetricsTimeFilter>({
@@ -67,31 +66,36 @@ const JobMetrics = (props: JobProps & connect) => {

return (
<>
{enableMetricMonitor ? <>
<Space style={{marginBottom: 20}}>
<MetricsFilter onTimeSelect={onTimeSelectChange}/>
{jobDetail.instance.status == JOB_STATUS.RUNNING ? (
<MonitorConfigForm
onSelectChange={onSelectMetricsChange}
jobDetail={jobDetail}
initSelected={buildMetricsTarget(layoutData.data as JobMetricsItem[])}
/>
) : (
<></>
)}
</Space>
<JobChart
metricsList={layoutData.data as JobMetricsItem[]}
jobDetail={jobDetail}
timeRange={timeRange}
{enableMetricMonitor ? (
<>
<Space style={{ marginBottom: 20 }}>
<MetricsFilter onTimeSelect={onTimeSelectChange} />
{jobDetail.instance.status == JOB_STATUS.RUNNING ? (
<MonitorConfigForm
onSelectChange={onSelectMetricsChange}
jobDetail={jobDetail}
initSelected={buildMetricsTarget(layoutData.data as JobMetricsItem[])}
/>
) : (
<></>
)}
</Space>
<JobChart
metricsList={layoutData.data as JobMetricsItem[]}
jobDetail={jobDetail}
timeRange={timeRange}
/>
</>
) : (
<Result
status={'warning'}
title={<span className={'needWrap'}>{l('metrics.dinky.not.open')}</span>}
/>
</> : <Result status={'warning'} title={<span className={'needWrap'}>{l('metrics.dinky.not.open')}</span>} />}
)}
</>
);
};

export default connect(
({SysConfig}: { SysConfig: SysConfigStateType }) => ({
enableMetricMonitor: SysConfig.enableMetricMonitor
})
)(memo(JobMetrics));
export default connect(({ SysConfig }: { SysConfig: SysConfigStateType }) => ({
enableMetricMonitor: SysConfig.enableMetricMonitor
}))(memo(JobMetrics));
58 changes: 30 additions & 28 deletions dinky-web/src/pages/Metrics/index.tsx
Original file line number Diff line number Diff line change
@@ -18,17 +18,16 @@
*/

import MetricsFilter from '@/components/Flink/MetricsFilter/MetricsFilter';
import {MetricsTimeFilter} from '@/pages/DevOps/JobDetail/data';
import { MetricsTimeFilter } from '@/pages/DevOps/JobDetail/data';
import JobMetricsList from '@/pages/Metrics/JobMetricsList';
import Server from '@/pages/Metrics/Server';
import {l} from '@/utils/intl';
import {PageContainer, ProCard} from '@ant-design/pro-components';
import {Divider, Result} from 'antd';
import React, {memo, useEffect, useState} from 'react';
import {CONFIG_MODEL_ASYNC, SysConfigStateType} from "@/pages/SettingCenter/GlobalSetting/model";
import {connect} from "@umijs/max";
import {SettingConfigKeyEnum} from "@/pages/SettingCenter/GlobalSetting/SettingOverView/constants";
import MarqueeAlert from "@/components/MarqueeAlert";
import { CONFIG_MODEL_ASYNC, SysConfigStateType } from '@/pages/SettingCenter/GlobalSetting/model';
import { SettingConfigKeyEnum } from '@/pages/SettingCenter/GlobalSetting/SettingOverView/constants';
import { l } from '@/utils/intl';
import { PageContainer, ProCard } from '@ant-design/pro-components';
import { connect } from '@umijs/max';
import { Divider, Result } from 'antd';
import React, { memo, useEffect, useState } from 'react';

const Metrics: React.FC<connect> = (props) => {
const [timeRange, setTimeRange] = useState<MetricsTimeFilter>({
@@ -38,18 +37,17 @@ const Metrics: React.FC<connect> = (props) => {
});
const [loading, setLoading] = useState<boolean>(false);

const {dispatch, enableMetricMonitor} = props;
const { dispatch, enableMetricMonitor } = props;

useEffect(() => {
setLoading(true);
dispatch({
type: CONFIG_MODEL_ASYNC.queryMetricConfig,
payload: SettingConfigKeyEnum.METRIC.toLowerCase()
})
});
setLoading(false);
}, []);


const onTimeSelectChange = (filter: MetricsTimeFilter) => {
setTimeRange(filter);
};
@@ -58,27 +56,31 @@ const Metrics: React.FC<connect> = (props) => {
<PageContainer
fixedHeader={true}
loading={loading}
header={{extra: [<MetricsFilter key={'filter'} onTimeSelect={onTimeSelectChange}/>]}}
header={{ extra: [<MetricsFilter key={'filter'} onTimeSelect={onTimeSelectChange} />] }}
content={
<>
{enableMetricMonitor ? <>
<ProCard collapsible title={'Dinky Server'} ghost bordered hoverable>
<Server timeRange={timeRange}/>
</ProCard>
<Divider/>
<JobMetricsList timeRange={timeRange}/>
</> :<>
<Result status={'warning'} title={<span className={'needWrap'}>{l('metrics.dinky.not.open')}</span>} />
</>
}
{enableMetricMonitor ? (
<>
<ProCard collapsible title={'Dinky Server'} ghost bordered hoverable>
<Server timeRange={timeRange} />
</ProCard>
<Divider />
<JobMetricsList timeRange={timeRange} />
</>
) : (
<>
<Result
status={'warning'}
title={<span className={'needWrap'}>{l('metrics.dinky.not.open')}</span>}
/>
</>
)}
</>
}
/>
);
};

export default connect(
({SysConfig}: { SysConfig: SysConfigStateType }) => ({
enableMetricMonitor: SysConfig.enableMetricMonitor
})
)(memo(Metrics));
export default connect(({ SysConfig }: { SysConfig: SysConfigStateType }) => ({
enableMetricMonitor: SysConfig.enableMetricMonitor
}))(memo(Metrics));
205 changes: 103 additions & 102 deletions dinky-web/src/pages/SettingCenter/GlobalSetting/model.ts
Original file line number Diff line number Diff line change
@@ -17,11 +17,15 @@
*
*/

import {queryConfigByKeyword, queryDsConfig, queryResourceConfig} from '@/pages/SettingCenter/GlobalSetting/service';
import {BaseConfigProperties} from '@/types/SettingCenter/data';
import {createModelTypes} from '@/utils/modelUtils';
import {Effect} from '@@/plugin-dva/types';
import {Reducer} from 'umi';
import {
queryConfigByKeyword,
queryDsConfig,
queryResourceConfig
} from '@/pages/SettingCenter/GlobalSetting/service';
import { BaseConfigProperties } from '@/types/SettingCenter/data';
import { createModelTypes } from '@/utils/modelUtils';
import { Effect } from '@@/plugin-dva/types';
import { Reducer } from 'umi';

const SYS_CONFIG = 'SysConfig';

@@ -53,116 +57,113 @@ export type ConfigModelType = {
};

const ConfigModel: ConfigModelType = {
namespace: SYS_CONFIG,
state: {
dsConfig: [],
metricConfig: [],
resourceConfig: [],
enabledDs: false,
enableMetricMonitor: false,
enableResource: false
},
namespace: SYS_CONFIG,
state: {
dsConfig: [],
metricConfig: [],
resourceConfig: [],
enabledDs: false,
enableMetricMonitor: false,
enableResource: false
},

effects: {
* queryDsConfig({payload}, {call, put}) {
const response: BaseConfigProperties[] = yield call(queryDsConfig, payload);
effects: {
*queryDsConfig({ payload }, { call, put }) {
const response: BaseConfigProperties[] = yield call(queryDsConfig, payload);
yield put({
type: 'saveDsConfig',
payload: response || []
});
if (response && response.length > 0) {
const enabledDs = response.some(
(item: BaseConfigProperties) =>
item.key === 'sys.dolphinscheduler.settings.enable' && item.value === true
);
yield put({
type: 'saveDsConfig',
payload: response || []
type: 'updateEnabledDs',
payload: enabledDs
});
if (response && response.length > 0) {
const enabledDs = response.some(
(item: BaseConfigProperties) =>
item.key === 'sys.dolphinscheduler.settings.enable' && item.value === true
);
yield put({
type: 'updateEnabledDs',
payload: enabledDs
});
}
},

}
},

* queryMetricConfig({payload}, {call, put}) {
console.log(payload)
const response: BaseConfigProperties[] = yield call(queryConfigByKeyword, payload);
*queryMetricConfig({ payload }, { call, put }) {
console.log(payload);
const response: BaseConfigProperties[] = yield call(queryConfigByKeyword, payload);
yield put({
type: 'saveMetricConfig',
payload: response || []
});
console.log(response);
if (response && response.length > 0) {
const enableResource = response.some(
(item: BaseConfigProperties) =>
item.key === 'sys.metrics.settings.sys.enable' && item.value === true
);
yield put({
type: 'saveMetricConfig',
payload: response || []
type: 'updateEnableMetricMonitor',
payload: enableResource
});
console.log(response)
if (response && response.length > 0) {
const enableResource = response.some(
(item: BaseConfigProperties) =>
item.key === 'sys.metrics.settings.sys.enable' && item.value === true
);
yield put({
type: 'updateEnableMetricMonitor',
payload: enableResource
});
}
},
}
},

* queryResourceConfig({payload}, {call, put}) {
const response: BaseConfigProperties[] = yield call(queryResourceConfig, payload);
*queryResourceConfig({ payload }, { call, put }) {
const response: BaseConfigProperties[] = yield call(queryResourceConfig, payload);
yield put({
type: 'saveResourceConfig',
payload: response || []
});
if (response && response.length > 0) {
const enableResource = response.some(
(item: BaseConfigProperties) =>
item.key === 'sys.resource.settings.base.enable' && item.value === true
);
yield put({
type: 'saveResourceConfig',
payload: response || []
type: 'updateEnableResource',
payload: enableResource
});
if (response && response.length > 0) {
const enableResource = response.some(
(item: BaseConfigProperties) =>
item.key === 'sys.resource.settings.base.enable' && item.value === true
);
yield put({
type: 'updateEnableResource',
payload: enableResource
});
}
}
},
}
},

reducers: {
saveDsConfig(state, {payload}) {
return {
...state,
dsConfig: payload
};
},
saveMetricConfig(state, {payload}) {
return {
...state,
metricConfig: payload
};
},
saveResourceConfig(state, {payload}) {
return {
...state,
resourceConfig: payload
};
},
updateEnableMetricMonitor(state, {payload}) {
return {
...state,
enableMetricMonitor: payload
}
},
updateEnabledDs(state, {payload}) {
return {
...state,
enabledDs: payload
};
},
updateEnableResource(state, {payload}) {
return {
...state,
enableResource: payload
};
}
reducers: {
saveDsConfig(state, { payload }) {
return {
...state,
dsConfig: payload
};
},
saveMetricConfig(state, { payload }) {
return {
...state,
metricConfig: payload
};
},
saveResourceConfig(state, { payload }) {
return {
...state,
resourceConfig: payload
};
},
updateEnableMetricMonitor(state, { payload }) {
return {
...state,
enableMetricMonitor: payload
};
},
updateEnabledDs(state, { payload }) {
return {
...state,
enabledDs: payload
};
},
updateEnableResource(state, { payload }) {
return {
...state,
enableResource: payload
};
}
}
;

};
export const [CONFIG_MODEL, CONFIG_MODEL_ASYNC] = createModelTypes(ConfigModel);

export default ConfigModel;

0 comments on commit e0f865f

Please sign in to comment.