Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: add timeout to monitor
  • Loading branch information
yaojiping committed Dec 6, 2024
commit c63ddbfe6ad9f96b34b7c92b451675d2e77559b3
13 changes: 11 additions & 2 deletions web/src/components/Overview/Monitor/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ const formatTimeout = (timeout) => {
return timeout
}

const TIMEOUT_CACHE_KEY = "monitor-timeout"

const Monitor = (props) => {
const {
selectedCluster,
Expand All @@ -62,7 +64,7 @@ const Monitor = (props) => {
timeFormatter: formatter.dates(1),
},
timeInterval: formatTimeInterval(param?.timeInterval),
timeout: formatTimeout(param?.timeout),
timeout: formatTimeout(param?.timeout) || localStorage.getItem(TIMEOUT_CACHE_KEY) || '120s',
param: param,
})
);
Expand Down Expand Up @@ -105,14 +107,19 @@ const Monitor = (props) => {

const breadcrumbList = getBreadcrumbList(state);

const isAgent = useMemo(() => {
const { monitor_configs = {} } = selectedCluster || {}
return monitor_configs?.node_stats?.enabled === false && monitor_configs?.index_stats?.enabled === false
}, [JSON.stringify(selectedCluster?.monitor_configs)])

return (
<div>
<BreadcrumbList data={breadcrumbList} />

<Card bodyStyle={{ padding: 15 }}>
<div style={{ marginBottom: 5 }}>
<div style={{ display: 'flex', gap: 8 }}>
<div style={{ flexGrow: 0, minWidth: 400 }}>
<div style={{ flexGrow: 0 }}>
<DatePicker
locale={getLocale()}
start={state.timeRange.min}
Expand All @@ -129,6 +136,7 @@ const Monitor = (props) => {
showTimeout={true}
timeout={state.timeout}
onTimeSettingChange={(timeSetting) => {
localStorage.setItem(TIMEOUT_CACHE_KEY, timeSetting.timeout)
setState({
...state,
timeInterval: timeSetting.timeInterval,
Expand Down Expand Up @@ -170,6 +178,7 @@ const Monitor = (props) => {
) : (
<pane.component
selectedCluster={selectedCluster}
isAgent={isAgent}
{...state}
handleTimeChange={handleTimeChange}
setSpinning={setSpinning}
Expand Down
6 changes: 1 addition & 5 deletions web/src/models/global.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,7 @@ export default {
.filter((item) => item.enabled)
.map((item) => {
return {
name: item.name,
id: item.id,
endpoint: item.endpoint,
host: item.host,
version: item.version,
...item,
distribution: item.distribution || "elasticsearch",
cluster_uuid: item.cluster_uuid || "",
};
Expand Down
5 changes: 5 additions & 0 deletions web/src/pages/Platform/Overview/Cluster/Monitor/advanced.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export default ({
timeRange,
handleTimeChange,
bucketSize,
timeout,
}) => {

const isVersionGTE6 = useMemo(() => {
Expand Down Expand Up @@ -58,6 +59,7 @@ export default ({
handleTimeChange={handleTimeChange}
fetchUrl={`${ESPrefix}/${clusterID}/cluster_metrics`}
bucketSize={bucketSize}
timeout={timeout}
metrics={[
'cluster_health',
'index_throughput',
Expand Down Expand Up @@ -87,6 +89,7 @@ export default ({
param={param}
setParam={setParam}
bucketSize={bucketSize}
timeout={timeout}
metrics={[
[
"operations",
Expand Down Expand Up @@ -233,6 +236,7 @@ export default ({
param={param}
setParam={setParam}
bucketSize={bucketSize}
timeout={timeout}
metrics={[
[
"operations",
Expand Down Expand Up @@ -315,6 +319,7 @@ export default ({
param={param}
setParam={setParam}
bucketSize={bucketSize}
timeout={timeout}
metrics={[
isVersionGTE6 ? [
"thread_pool_write",
Expand Down
2 changes: 2 additions & 0 deletions web/src/pages/Platform/Overview/Cluster/Monitor/overview.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@ export default ({
timeRange,
handleTimeChange,
bucketSize,
timeout,
}) => {
return (
<ClusterMetric
timezone={timezone}
timeRange={timeRange}
timeout={timeout}
handleTimeChange={handleTimeChange}
overview={1}
fetchUrl={`${ESPrefix}/${clusterID}/cluster_metrics`}
Expand Down
4 changes: 3 additions & 1 deletion web/src/pages/Platform/Overview/Indices/Monitor/advanced.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ export default ({
timeRange,
handleTimeChange,
shardID,
bucketSize
bucketSize,
timeout
}) => {
const [param, setParam] = useState({
show_top: false,
Expand All @@ -26,6 +27,7 @@ export default ({
setParam={setParam}
shardID={shardID}
bucketSize={bucketSize}
timeout={timeout}
metrics={[
[
"operations",
Expand Down
10 changes: 9 additions & 1 deletion web/src/pages/Platform/Overview/Indices/Monitor/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ import { formatMessage } from "umi/locale";
import Monitor from "@/components/Overview/Monitor";
import StatisticBar from "./statistic_bar";
import ShardStatisticBar from "./shard_statistic_bar";
import { connect } from "dva";

export default (props) => {
const Page = (props) => {
const { clusterStatus, selectedCluster } = props;
const {shard_id} = props.location.query;
const panes = React.useMemo(()=>{
const panes = [
Expand All @@ -26,6 +28,7 @@ export default (props) => {
}
return (
<Monitor
selectedCluster={selectedCluster}
formatState={(state) => {
return {
...state,
Expand Down Expand Up @@ -80,3 +83,8 @@ export default (props) => {
/>
);
};

export default connect(({ global }) => ({
selectedCluster: global.selectedCluster,
clusterStatus: global.clusterStatus,
}))(Page);
8 changes: 6 additions & 2 deletions web/src/pages/Platform/Overview/Indices/Monitor/overview.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ import ClusterMetric from "../../components/cluster_metric";
const timezone = "local";

export default ({
isAgent,
clusterID,
indexName,
timeRange,
handleTimeChange,
shardID,
bucketSize,
timeout
}) => {
let url = `${ESPrefix}/${clusterID}/index/${indexName}/metrics`;
if(shardID){
Expand All @@ -24,13 +26,15 @@ export default ({
overview={1}
fetchUrl={url}
bucketSize={bucketSize}
timeout={timeout}
metrics={[
"index_health",
"index_throughput",
"search_throughput",
"index_latency",
"search_latency"
]}
"search_latency",
isAgent ? "shard_state" : undefined,
].filter((item) => !!item)}
/>
);
}
3 changes: 3 additions & 0 deletions web/src/pages/Platform/Overview/Node/Monitor/advanced.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export default ({
timeRange,
handleTimeChange,
bucketSize,
timeout,
}) => {

const isVersionGTE6 = useMemo(() => {
Expand Down Expand Up @@ -63,6 +64,7 @@ export default ({
param={param}
setParam={setParam}
bucketSize={bucketSize}
timeout={timeout}
metrics={[
[
"operations",
Expand Down Expand Up @@ -209,6 +211,7 @@ export default ({
param={param}
setParam={setParam}
bucketSize={bucketSize}
timeout={timeout}
metrics={[
isVersionGTE6 ? [
"thread_pool_write",
Expand Down
11 changes: 9 additions & 2 deletions web/src/pages/Platform/Overview/Node/Monitor/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,18 @@ import Shards from "./shards";
import { formatMessage } from "umi/locale";
import Monitor from "@/components/Overview/Monitor";
import StatisticBar from "./statistic_bar";
import { connect } from "dva";

const panes = [
{ title: "Overview", component: Overview, key: "overview" },
{ title: "Advanced", component: Advanced, key: "advanced" },
{ title: "Shards", component: Shards, key: "shards" },
];

export default (props) => {
const Page = (props) => {
const { clusterStatus, selectedCluster } = props;
return (
<Monitor
selectedCluster={selectedCluster}
formatState={(state) => {
return {
...state,
Expand Down Expand Up @@ -54,3 +56,8 @@ export default (props) => {
/>
);
};

export default connect(({ global }) => ({
selectedCluster: global.selectedCluster,
clusterStatus: global.clusterStatus,
}))(Page);
11 changes: 8 additions & 3 deletions web/src/pages/Platform/Overview/Node/Monitor/overview.jsx
Original file line number Diff line number Diff line change
@@ -1,35 +1,40 @@
import { ESPrefix } from "@/services/common";
import StatisticBar from "./statistic_bar";
import ClusterMetric from "../../components/cluster_metric";
import { useMemo } from "react";

const timezone = "local";

export default ({
isAgent,
clusterID,
nodeID,
timeRange,
handleTimeChange,
bucketSize,
timeout,
}) => {

return (
<ClusterMetric
timezone={timezone}
timeRange={timeRange}
timeout={timeout}
handleTimeChange={handleTimeChange}
overview={1}
fetchUrl={`${ESPrefix}/${clusterID}/node/${nodeID}/metrics`}
bucketSize={bucketSize}
metrics={[
"node_health",
"shard_state",
"cpu",
"jvm",
"index_throughput",
"search_throughput",
"index_latency",
"search_latency",
"parent_breaker"
]}
"parent_breaker",
isAgent ? "shard_state" : undefined,
].filter((item) => !!item)}
/>
);
}
Loading
Loading