chore: check if the cluster version supports metric `transport_outbound_comnections` in monitor (#60)
* chore: check if the cluster version supports metric `transport_outbound_comnections` * chore: update release notes --------- Co-authored-by: yaojiping <yaojiping@infini.ltd>
This commit is contained in:
parent
f11a565948
commit
59e88f7b03
|
@ -23,6 +23,7 @@ Information about release notes of INFINI Console is provided here.
|
||||||
- Adapter metrics query with cluster id and cluster uuid
|
- Adapter metrics query with cluster id and cluster uuid
|
||||||
- Optimize metric query bucket size (#59)
|
- Optimize metric query bucket size (#59)
|
||||||
- Add suggestion to chart in monitor if is no data because the time interval is less than the collection interval.
|
- Add suggestion to chart in monitor if is no data because the time interval is less than the collection interval.
|
||||||
|
- check if the cluster version supports metric transport_outbound_comnections in monitor.
|
||||||
|
|
||||||
|
|
||||||
## 1.27.0 (2024-12-09)
|
## 1.27.0 (2024-12-09)
|
||||||
|
|
|
@ -84,7 +84,7 @@ const Monitor = (props) => {
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
const [refresh, setRefresh] = useState({ isRefreshPaused: allTimeSettingsCache.isRefreshPaused || false, refreshInterval: allTimeSettingsCache.refreshInterval || 30000 });
|
const [refresh, setRefresh] = useState({ isRefreshPaused: typeof allTimeSettingsCache.isRefreshPaused !== 'undefined' ? allTimeSettingsCache.isRefreshPaused : true, refreshInterval: allTimeSettingsCache.refreshInterval || 30000 });
|
||||||
const [timeZone, setTimeZone] = useState(() => allTimeSettingsCache.timeZone || getTimezone());
|
const [timeZone, setTimeZone] = useState(() => allTimeSettingsCache.timeZone || getTimezone());
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
|
@ -366,7 +366,7 @@ export const AgentRowDetail = ({ agentID, t }) => {
|
||||||
}}
|
}}
|
||||||
tabBarExtraContent={
|
tabBarExtraContent={
|
||||||
<div style={{ display: "flex", gap: 10 }}>
|
<div style={{ display: "flex", gap: 10 }}>
|
||||||
{state.processesTab == "unknown" ? (
|
{hasAuthority("agent.instance:all") && state.processesTab === "unknown" ? (
|
||||||
<Button
|
<Button
|
||||||
type="primary"
|
type="primary"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
|
|
|
@ -8,36 +8,42 @@ import QueueMetric from "../../components/queue_metric";
|
||||||
import { ESPrefix } from "@/services/common";
|
import { ESPrefix } from "@/services/common";
|
||||||
import { SearchEngines } from "@/lib/search_engines";
|
import { SearchEngines } from "@/lib/search_engines";
|
||||||
|
|
||||||
export const shouldHaveModelInferenceBreaker = (cluster) => {
|
export const checkMetric = (key, cluster) => {
|
||||||
if ([SearchEngines.Easysearch, SearchEngines.Opensearch].includes(cluster?.distribution)) return false;
|
if (key === 'thread_pool_write') {
|
||||||
const versions = cluster?.version?.split('.') || []
|
if ([SearchEngines.Easysearch, SearchEngines.Opensearch].includes(cluster?.distribution)) return true;
|
||||||
if (parseInt(versions[0]) > 8 || (parseInt(versions[0]) === 8 && parseInt(versions[1]) >= 6 )) {
|
const main = cluster?.version?.split('.')[0]
|
||||||
|
if (main && parseInt(main) >= 6) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
} else if (key === 'thread_pool_bulk') {
|
||||||
|
if ([SearchEngines.Easysearch, SearchEngines.Opensearch].includes(cluster?.distribution)) return false;
|
||||||
|
const main = cluster?.version?.split('.')[0]
|
||||||
|
if (main && parseInt(main) >= 6) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
|
} else if (key === 'model_inference_breaker') {
|
||||||
|
if ([SearchEngines.Easysearch, SearchEngines.Opensearch].includes(cluster?.distribution)) return false;
|
||||||
|
const versions = cluster?.version?.split('.') || []
|
||||||
|
if (parseInt(versions[0]) > 8 || (parseInt(versions[0]) === 8 && parseInt(versions[1]) >= 6 )) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
} else if (key === 'transport_outbound_connections') {
|
||||||
|
if ([SearchEngines.Easysearch, SearchEngines.Opensearch].includes(cluster?.distribution)) return true;
|
||||||
|
const versions = cluster?.version?.split('.') || []
|
||||||
|
if (parseInt(versions[0]) > 7 || (parseInt(versions[0]) === 7 && parseInt(versions[1]) >= 1 )) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
}
|
}
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
export const isVersionGTE6 = (cluster) => {
|
|
||||||
if ([SearchEngines.Easysearch, SearchEngines.Opensearch].includes(cluster?.distribution)) return true;
|
|
||||||
const main = cluster?.version?.split('.')[0]
|
|
||||||
if (main && parseInt(main) >= 6) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default (props) => {
|
export default (props) => {
|
||||||
|
|
||||||
const { selectedCluster, clusterID } = props
|
const { selectedCluster, clusterID } = props
|
||||||
|
|
||||||
const isVersionGTE8_6 = useMemo(() => {
|
|
||||||
return shouldHaveModelInferenceBreaker(selectedCluster)
|
|
||||||
}, [selectedCluster])
|
|
||||||
|
|
||||||
const versionGTE6 = useMemo(() => {
|
|
||||||
return isVersionGTE6(selectedCluster)
|
|
||||||
}, [selectedCluster])
|
|
||||||
|
|
||||||
const [param, setParam] = useState({
|
const [param, setParam] = useState({
|
||||||
tab: "cluster",
|
tab: "cluster",
|
||||||
});
|
});
|
||||||
|
@ -141,7 +147,7 @@ export default (props) => {
|
||||||
"fielddata_breaker",
|
"fielddata_breaker",
|
||||||
"request_breaker",
|
"request_breaker",
|
||||||
"in_flight_requests_breaker",
|
"in_flight_requests_breaker",
|
||||||
isVersionGTE8_6 ? "model_inference_breaker" : undefined
|
checkMetric("model_inference_breaker", selectedCluster) ? "model_inference_breaker" : undefined
|
||||||
].filter((item) => !!item)
|
].filter((item) => !!item)
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -159,8 +165,8 @@ export default (props) => {
|
||||||
"transport_rx_rate",
|
"transport_rx_rate",
|
||||||
"transport_tx_bytes",
|
"transport_tx_bytes",
|
||||||
"transport_tx_rate",
|
"transport_tx_rate",
|
||||||
"transport_outbound_connections"
|
checkMetric("transport_outbound_connections", selectedCluster) ? "transport_outbound_connections" : undefined
|
||||||
]
|
].filter((item) => !!item)
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"storage",
|
"storage",
|
||||||
|
@ -314,7 +320,7 @@ export default (props) => {
|
||||||
param={param}
|
param={param}
|
||||||
setParam={setParam}
|
setParam={setParam}
|
||||||
metrics={[
|
metrics={[
|
||||||
versionGTE6 ? [
|
checkMetric("thread_pool_write", selectedCluster) ? [
|
||||||
"thread_pool_write",
|
"thread_pool_write",
|
||||||
[
|
[
|
||||||
"write_active",
|
"write_active",
|
||||||
|
@ -340,7 +346,7 @@ export default (props) => {
|
||||||
"search_threads"
|
"search_threads"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
!versionGTE6 ? [
|
checkMetric("thread_pool_bulk", selectedCluster) ? [
|
||||||
"thread_pool_bulk",
|
"thread_pool_bulk",
|
||||||
[
|
[
|
||||||
"bulk_active",
|
"bulk_active",
|
||||||
|
|
|
@ -4,7 +4,7 @@ import NodeMetric from "../../components/node_metric";
|
||||||
import QueueMetric from "../../components/queue_metric";
|
import QueueMetric from "../../components/queue_metric";
|
||||||
import { formatMessage } from "umi/locale";
|
import { formatMessage } from "umi/locale";
|
||||||
import { SearchEngines } from "@/lib/search_engines";
|
import { SearchEngines } from "@/lib/search_engines";
|
||||||
import { isVersionGTE6, shouldHaveModelInferenceBreaker } from "../../Cluster/Monitor/advanced";
|
import { checkMetric } from "../../Cluster/Monitor/advanced";
|
||||||
|
|
||||||
export default (props) => {
|
export default (props) => {
|
||||||
|
|
||||||
|
@ -14,14 +14,6 @@ export default (props) => {
|
||||||
nodeID,
|
nodeID,
|
||||||
} = props
|
} = props
|
||||||
|
|
||||||
const isVersionGTE8_6 = useMemo(() => {
|
|
||||||
return shouldHaveModelInferenceBreaker(selectedCluster)
|
|
||||||
}, [selectedCluster])
|
|
||||||
|
|
||||||
const versionGTE6 = useMemo(() => {
|
|
||||||
return isVersionGTE6(selectedCluster)
|
|
||||||
}, [selectedCluster])
|
|
||||||
|
|
||||||
const [param, setParam] = useState({
|
const [param, setParam] = useState({
|
||||||
show_top: false,
|
show_top: false,
|
||||||
node_name: nodeID,
|
node_name: nodeID,
|
||||||
|
@ -106,7 +98,7 @@ export default (props) => {
|
||||||
"fielddata_breaker",
|
"fielddata_breaker",
|
||||||
"request_breaker",
|
"request_breaker",
|
||||||
"in_flight_requests_breaker",
|
"in_flight_requests_breaker",
|
||||||
isVersionGTE8_6 ? "model_inference_breaker" : undefined
|
checkMetric("model_inference_breaker", selectedCluster) ? "model_inference_breaker" : undefined
|
||||||
].filter((item) => !!item)
|
].filter((item) => !!item)
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -124,8 +116,8 @@ export default (props) => {
|
||||||
"transport_rx_rate",
|
"transport_rx_rate",
|
||||||
"transport_tx_bytes",
|
"transport_tx_bytes",
|
||||||
"transport_tx_rate",
|
"transport_tx_rate",
|
||||||
"transport_outbound_connections"
|
checkMetric("transport_outbound_connections", selectedCluster) ? "transport_outbound_connections" : undefined
|
||||||
]
|
].filter((item) => !!item)
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"storage",
|
"storage",
|
||||||
|
@ -201,7 +193,7 @@ export default (props) => {
|
||||||
param={param}
|
param={param}
|
||||||
setParam={setParam}
|
setParam={setParam}
|
||||||
metrics={[
|
metrics={[
|
||||||
versionGTE6 ? [
|
checkMetric("thread_pool_write", selectedCluster) ? [
|
||||||
"thread_pool_write",
|
"thread_pool_write",
|
||||||
[
|
[
|
||||||
"write_active",
|
"write_active",
|
||||||
|
@ -227,7 +219,7 @@ export default (props) => {
|
||||||
"search_threads"
|
"search_threads"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
!versionGTE6 ? [
|
checkMetric("thread_pool_bulk", selectedCluster) ? [
|
||||||
"thread_pool_bulk",
|
"thread_pool_bulk",
|
||||||
[
|
[
|
||||||
"bulk_active",
|
"bulk_active",
|
||||||
|
|
Loading…
Reference in New Issue