From 3d217dd1ee2a0e8cca9e94f3b05ce757a0576444 Mon Sep 17 00:00:00 2001 From: gaoyan Date: Tue, 21 Nov 2023 20:42:28 +0800 Subject: [PATCH] fix footer jvm info (#2559) * Optimize the process * fix footer jvm info --- .../dinky/controller/MonitorController.java | 7 +++++ .../DataStudio/FooterContainer/index.tsx | 27 ++++++++++--------- dinky-web/src/services/endpoints.tsx | 1 + 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/dinky-admin/src/main/java/org/dinky/controller/MonitorController.java b/dinky-admin/src/main/java/org/dinky/controller/MonitorController.java index 64995246a1..83993e2217 100644 --- a/dinky-admin/src/main/java/org/dinky/controller/MonitorController.java +++ b/dinky-admin/src/main/java/org/dinky/controller/MonitorController.java @@ -23,6 +23,7 @@ import org.dinky.data.dto.MetricsLayoutDTO; import org.dinky.data.enums.BusinessType; import org.dinky.data.enums.MetricsType; +import org.dinky.data.metrics.Jvm; import org.dinky.data.model.Metrics; import org.dinky.data.model.job.JobInstance; import org.dinky.data.result.ProTableResult; @@ -133,4 +134,10 @@ public Result>> getMetricsLayout() { public Result> getMetricsLayoutByName(@RequestParam String layoutName) { return Result.succeed(monitorService.getMetricsLayoutByName(layoutName)); } + + @GetMapping("/getJvmInfo") + @ApiOperation("Get Jvm Data Display") + public Result getJvmInfo() { + return Result.succeed(Jvm.of()); + } } diff --git a/dinky-web/src/pages/DataStudio/FooterContainer/index.tsx b/dinky-web/src/pages/DataStudio/FooterContainer/index.tsx index a3160bbc38..57c9b096c8 100644 --- a/dinky-web/src/pages/DataStudio/FooterContainer/index.tsx +++ b/dinky-web/src/pages/DataStudio/FooterContainer/index.tsx @@ -21,7 +21,8 @@ import useThemeValue from '@/hooks/useThemeValue'; import JobRunningModal from '@/pages/DataStudio/FooterContainer/JobRunningModal'; import { getCurrentTab } from '@/pages/DataStudio/function'; import { StateType, TabsPageType, VIEW } from '@/pages/DataStudio/model'; -import { getSseData } from '@/services/api'; +import { getData } from '@/services/api'; +import { API_CONSTANTS } from '@/services/endpoints'; import { l } from '@/utils/intl'; import { connect } from '@@/exports'; import { Button, GlobalToken, Space } from 'antd'; @@ -59,18 +60,20 @@ const FooterContainer: React.FC = (props) => { const currentTab = getCurrentTab(tabs.panes ?? [], tabs.activeKey); useEffect(() => { - const eventSource = getSseData('/api/sse/getJvmInfo'); - eventSource.onmessage = (event) => { - const data = JSON.parse(event.data); - setMemDetailInfo( - Number(data['heapUsed'] / 1024 / 1024).toFixed(0) + - '/' + - Number(data['max'] / 1024 / 1024).toFixed(0) + - 'M' - ); - }; + const t = setInterval(() => { + getData(API_CONSTANTS.MONITOR_GET_JVM_INFO) + .then((res) => { + setMemDetailInfo( + Number(res.data['heapUsed'] / 1024 / 1024).toFixed(0) + + '/' + + Number(res.data['max'] / 1024 / 1024).toFixed(0) + + 'M' + ); + }) + .catch((e) => {}); + }, 3000); return () => { - eventSource.close(); + clearTimeout(t); }; }, []); diff --git a/dinky-web/src/services/endpoints.tsx b/dinky-web/src/services/endpoints.tsx index 699b2a44a5..3742885c16 100644 --- a/dinky-web/src/services/endpoints.tsx +++ b/dinky-web/src/services/endpoints.tsx @@ -267,6 +267,7 @@ export enum API_CONSTANTS { MONITOR_GET_SYSTEM_DATA = '/api/monitor/getSysData', MONITOR_GET_FLINK_DATA = '/api/monitor/getFlinkData', MONITOR_GET_LAST_DATA = '/api/monitor/getLastUpdateData', + MONITOR_GET_JVM_INFO = '/api/monitor/getJvmInfo', METRICS_LAYOUT_GET_BY_NAME = '/api/monitor/getMetricsLayoutByName', JOB_METRICS = '/api/monitor/jobMetrics', SAVE_FLINK_METRICS = '/api/monitor/saveFlinkMetrics/',