Skip to content

Commit c63ddbf

Browse files
author
yaojiping
committed
feat: add timeout to monitor
1 parent be293b0 commit c63ddbf

File tree

15 files changed

+234
-165
lines changed

15 files changed

+234
-165
lines changed

web/src/components/Overview/Monitor/index.jsx

+11-2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ const formatTimeout = (timeout) => {
3939
return timeout
4040
}
4141

42+
const TIMEOUT_CACHE_KEY = "monitor-timeout"
43+
4244
const Monitor = (props) => {
4345
const {
4446
selectedCluster,
@@ -62,7 +64,7 @@ const Monitor = (props) => {
6264
timeFormatter: formatter.dates(1),
6365
},
6466
timeInterval: formatTimeInterval(param?.timeInterval),
65-
timeout: formatTimeout(param?.timeout),
67+
timeout: formatTimeout(param?.timeout) || localStorage.getItem(TIMEOUT_CACHE_KEY) || '120s',
6668
param: param,
6769
})
6870
);
@@ -105,14 +107,19 @@ const Monitor = (props) => {
105107

106108
const breadcrumbList = getBreadcrumbList(state);
107109

110+
const isAgent = useMemo(() => {
111+
const { monitor_configs = {} } = selectedCluster || {}
112+
return monitor_configs?.node_stats?.enabled === false && monitor_configs?.index_stats?.enabled === false
113+
}, [JSON.stringify(selectedCluster?.monitor_configs)])
114+
108115
return (
109116
<div>
110117
<BreadcrumbList data={breadcrumbList} />
111118

112119
<Card bodyStyle={{ padding: 15 }}>
113120
<div style={{ marginBottom: 5 }}>
114121
<div style={{ display: 'flex', gap: 8 }}>
115-
<div style={{ flexGrow: 0, minWidth: 400 }}>
122+
<div style={{ flexGrow: 0 }}>
116123
<DatePicker
117124
locale={getLocale()}
118125
start={state.timeRange.min}
@@ -129,6 +136,7 @@ const Monitor = (props) => {
129136
showTimeout={true}
130137
timeout={state.timeout}
131138
onTimeSettingChange={(timeSetting) => {
139+
localStorage.setItem(TIMEOUT_CACHE_KEY, timeSetting.timeout)
132140
setState({
133141
...state,
134142
timeInterval: timeSetting.timeInterval,
@@ -170,6 +178,7 @@ const Monitor = (props) => {
170178
) : (
171179
<pane.component
172180
selectedCluster={selectedCluster}
181+
isAgent={isAgent}
173182
{...state}
174183
handleTimeChange={handleTimeChange}
175184
setSpinning={setSpinning}

web/src/models/global.js

+1-5
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,7 @@ export default {
9999
.filter((item) => item.enabled)
100100
.map((item) => {
101101
return {
102-
name: item.name,
103-
id: item.id,
104-
endpoint: item.endpoint,
105-
host: item.host,
106-
version: item.version,
102+
...item,
107103
distribution: item.distribution || "elasticsearch",
108104
cluster_uuid: item.cluster_uuid || "",
109105
};

web/src/pages/Platform/Overview/Cluster/Monitor/advanced.jsx

+5
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default ({
1515
timeRange,
1616
handleTimeChange,
1717
bucketSize,
18+
timeout,
1819
}) => {
1920

2021
const isVersionGTE6 = useMemo(() => {
@@ -58,6 +59,7 @@ export default ({
5859
handleTimeChange={handleTimeChange}
5960
fetchUrl={`${ESPrefix}/${clusterID}/cluster_metrics`}
6061
bucketSize={bucketSize}
62+
timeout={timeout}
6163
metrics={[
6264
'cluster_health',
6365
'index_throughput',
@@ -87,6 +89,7 @@ export default ({
8789
param={param}
8890
setParam={setParam}
8991
bucketSize={bucketSize}
92+
timeout={timeout}
9093
metrics={[
9194
[
9295
"operations",
@@ -233,6 +236,7 @@ export default ({
233236
param={param}
234237
setParam={setParam}
235238
bucketSize={bucketSize}
239+
timeout={timeout}
236240
metrics={[
237241
[
238242
"operations",
@@ -315,6 +319,7 @@ export default ({
315319
param={param}
316320
setParam={setParam}
317321
bucketSize={bucketSize}
322+
timeout={timeout}
318323
metrics={[
319324
isVersionGTE6 ? [
320325
"thread_pool_write",

web/src/pages/Platform/Overview/Cluster/Monitor/overview.jsx

+2
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ export default ({
88
timeRange,
99
handleTimeChange,
1010
bucketSize,
11+
timeout,
1112
}) => {
1213
return (
1314
<ClusterMetric
1415
timezone={timezone}
1516
timeRange={timeRange}
17+
timeout={timeout}
1618
handleTimeChange={handleTimeChange}
1719
overview={1}
1820
fetchUrl={`${ESPrefix}/${clusterID}/cluster_metrics`}

web/src/pages/Platform/Overview/Indices/Monitor/advanced.jsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ export default ({
1010
timeRange,
1111
handleTimeChange,
1212
shardID,
13-
bucketSize
13+
bucketSize,
14+
timeout
1415
}) => {
1516
const [param, setParam] = useState({
1617
show_top: false,
@@ -26,6 +27,7 @@ export default ({
2627
setParam={setParam}
2728
shardID={shardID}
2829
bucketSize={bucketSize}
30+
timeout={timeout}
2931
metrics={[
3032
[
3133
"operations",

web/src/pages/Platform/Overview/Indices/Monitor/index.jsx

+9-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ import { formatMessage } from "umi/locale";
66
import Monitor from "@/components/Overview/Monitor";
77
import StatisticBar from "./statistic_bar";
88
import ShardStatisticBar from "./shard_statistic_bar";
9+
import { connect } from "dva";
910

10-
export default (props) => {
11+
const Page = (props) => {
12+
const { clusterStatus, selectedCluster } = props;
1113
const {shard_id} = props.location.query;
1214
const panes = React.useMemo(()=>{
1315
const panes = [
@@ -26,6 +28,7 @@ export default (props) => {
2628
}
2729
return (
2830
<Monitor
31+
selectedCluster={selectedCluster}
2932
formatState={(state) => {
3033
return {
3134
...state,
@@ -80,3 +83,8 @@ export default (props) => {
8083
/>
8184
);
8285
};
86+
87+
export default connect(({ global }) => ({
88+
selectedCluster: global.selectedCluster,
89+
clusterStatus: global.clusterStatus,
90+
}))(Page);

web/src/pages/Platform/Overview/Indices/Monitor/overview.jsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import ClusterMetric from "../../components/cluster_metric";
55
const timezone = "local";
66

77
export default ({
8+
isAgent,
89
clusterID,
910
indexName,
1011
timeRange,
1112
handleTimeChange,
1213
shardID,
1314
bucketSize,
15+
timeout
1416
}) => {
1517
let url = `${ESPrefix}/${clusterID}/index/${indexName}/metrics`;
1618
if(shardID){
@@ -24,13 +26,15 @@ export default ({
2426
overview={1}
2527
fetchUrl={url}
2628
bucketSize={bucketSize}
29+
timeout={timeout}
2730
metrics={[
2831
"index_health",
2932
"index_throughput",
3033
"search_throughput",
3134
"index_latency",
32-
"search_latency"
33-
]}
35+
"search_latency",
36+
isAgent ? "shard_state" : undefined,
37+
].filter((item) => !!item)}
3438
/>
3539
);
3640
}

web/src/pages/Platform/Overview/Node/Monitor/advanced.jsx

+3
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ export default ({
1313
timeRange,
1414
handleTimeChange,
1515
bucketSize,
16+
timeout,
1617
}) => {
1718

1819
const isVersionGTE6 = useMemo(() => {
@@ -63,6 +64,7 @@ export default ({
6364
param={param}
6465
setParam={setParam}
6566
bucketSize={bucketSize}
67+
timeout={timeout}
6668
metrics={[
6769
[
6870
"operations",
@@ -209,6 +211,7 @@ export default ({
209211
param={param}
210212
setParam={setParam}
211213
bucketSize={bucketSize}
214+
timeout={timeout}
212215
metrics={[
213216
isVersionGTE6 ? [
214217
"thread_pool_write",

web/src/pages/Platform/Overview/Node/Monitor/index.jsx

+9-2
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,18 @@ import Shards from "./shards";
55
import { formatMessage } from "umi/locale";
66
import Monitor from "@/components/Overview/Monitor";
77
import StatisticBar from "./statistic_bar";
8+
import { connect } from "dva";
89

910
const panes = [
1011
{ title: "Overview", component: Overview, key: "overview" },
1112
{ title: "Advanced", component: Advanced, key: "advanced" },
1213
{ title: "Shards", component: Shards, key: "shards" },
1314
];
14-
15-
export default (props) => {
15+
const Page = (props) => {
16+
const { clusterStatus, selectedCluster } = props;
1617
return (
1718
<Monitor
19+
selectedCluster={selectedCluster}
1820
formatState={(state) => {
1921
return {
2022
...state,
@@ -54,3 +56,8 @@ export default (props) => {
5456
/>
5557
);
5658
};
59+
60+
export default connect(({ global }) => ({
61+
selectedCluster: global.selectedCluster,
62+
clusterStatus: global.clusterStatus,
63+
}))(Page);
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,40 @@
11
import { ESPrefix } from "@/services/common";
22
import StatisticBar from "./statistic_bar";
33
import ClusterMetric from "../../components/cluster_metric";
4+
import { useMemo } from "react";
45

56
const timezone = "local";
67

78
export default ({
9+
isAgent,
810
clusterID,
911
nodeID,
1012
timeRange,
1113
handleTimeChange,
1214
bucketSize,
15+
timeout,
1316
}) => {
17+
1418
return (
1519
<ClusterMetric
1620
timezone={timezone}
1721
timeRange={timeRange}
22+
timeout={timeout}
1823
handleTimeChange={handleTimeChange}
1924
overview={1}
2025
fetchUrl={`${ESPrefix}/${clusterID}/node/${nodeID}/metrics`}
2126
bucketSize={bucketSize}
2227
metrics={[
2328
"node_health",
24-
"shard_state",
2529
"cpu",
2630
"jvm",
2731
"index_throughput",
2832
"search_throughput",
2933
"index_latency",
3034
"search_latency",
31-
"parent_breaker"
32-
]}
35+
"parent_breaker",
36+
isAgent ? "shard_state" : undefined,
37+
].filter((item) => !!item)}
3338
/>
3439
);
3540
}

0 commit comments

Comments
 (0)