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
|
||||
- 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.
|
||||
- check if the cluster version supports metric transport_outbound_comnections in monitor.
|
||||
|
||||
|
||||
## 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());
|
||||
|
||||
useEffect(() => {
|
||||
|
|
|
@ -366,7 +366,7 @@ export const AgentRowDetail = ({ agentID, t }) => {
|
|||
}}
|
||||
tabBarExtraContent={
|
||||
<div style={{ display: "flex", gap: 10 }}>
|
||||
{state.processesTab == "unknown" ? (
|
||||
{hasAuthority("agent.instance:all") && state.processesTab === "unknown" ? (
|
||||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
|
|
|
@ -8,36 +8,42 @@ import QueueMetric from "../../components/queue_metric";
|
|||
import { ESPrefix } from "@/services/common";
|
||||
import { SearchEngines } from "@/lib/search_engines";
|
||||
|
||||
export const shouldHaveModelInferenceBreaker = (cluster) => {
|
||||
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 )) {
|
||||
export const checkMetric = (key, cluster) => {
|
||||
if (key === 'thread_pool_write') {
|
||||
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
|
||||
} 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
|
||||
} 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) => {
|
||||
|
||||
const { selectedCluster, clusterID } = props
|
||||
|
||||
const isVersionGTE8_6 = useMemo(() => {
|
||||
return shouldHaveModelInferenceBreaker(selectedCluster)
|
||||
}, [selectedCluster])
|
||||
|
||||
const versionGTE6 = useMemo(() => {
|
||||
return isVersionGTE6(selectedCluster)
|
||||
}, [selectedCluster])
|
||||
|
||||
const [param, setParam] = useState({
|
||||
tab: "cluster",
|
||||
});
|
||||
|
@ -141,7 +147,7 @@ export default (props) => {
|
|||
"fielddata_breaker",
|
||||
"request_breaker",
|
||||
"in_flight_requests_breaker",
|
||||
isVersionGTE8_6 ? "model_inference_breaker" : undefined
|
||||
checkMetric("model_inference_breaker", selectedCluster) ? "model_inference_breaker" : undefined
|
||||
].filter((item) => !!item)
|
||||
],
|
||||
[
|
||||
|
@ -159,8 +165,8 @@ export default (props) => {
|
|||
"transport_rx_rate",
|
||||
"transport_tx_bytes",
|
||||
"transport_tx_rate",
|
||||
"transport_outbound_connections"
|
||||
]
|
||||
checkMetric("transport_outbound_connections", selectedCluster) ? "transport_outbound_connections" : undefined
|
||||
].filter((item) => !!item)
|
||||
],
|
||||
[
|
||||
"storage",
|
||||
|
@ -314,7 +320,7 @@ export default (props) => {
|
|||
param={param}
|
||||
setParam={setParam}
|
||||
metrics={[
|
||||
versionGTE6 ? [
|
||||
checkMetric("thread_pool_write", selectedCluster) ? [
|
||||
"thread_pool_write",
|
||||
[
|
||||
"write_active",
|
||||
|
@ -340,7 +346,7 @@ export default (props) => {
|
|||
"search_threads"
|
||||
]
|
||||
],
|
||||
!versionGTE6 ? [
|
||||
checkMetric("thread_pool_bulk", selectedCluster) ? [
|
||||
"thread_pool_bulk",
|
||||
[
|
||||
"bulk_active",
|
||||
|
|
|
@ -4,7 +4,7 @@ import NodeMetric from "../../components/node_metric";
|
|||
import QueueMetric from "../../components/queue_metric";
|
||||
import { formatMessage } from "umi/locale";
|
||||
import { SearchEngines } from "@/lib/search_engines";
|
||||
import { isVersionGTE6, shouldHaveModelInferenceBreaker } from "../../Cluster/Monitor/advanced";
|
||||
import { checkMetric } from "../../Cluster/Monitor/advanced";
|
||||
|
||||
export default (props) => {
|
||||
|
||||
|
@ -14,14 +14,6 @@ export default (props) => {
|
|||
nodeID,
|
||||
} = props
|
||||
|
||||
const isVersionGTE8_6 = useMemo(() => {
|
||||
return shouldHaveModelInferenceBreaker(selectedCluster)
|
||||
}, [selectedCluster])
|
||||
|
||||
const versionGTE6 = useMemo(() => {
|
||||
return isVersionGTE6(selectedCluster)
|
||||
}, [selectedCluster])
|
||||
|
||||
const [param, setParam] = useState({
|
||||
show_top: false,
|
||||
node_name: nodeID,
|
||||
|
@ -106,7 +98,7 @@ export default (props) => {
|
|||
"fielddata_breaker",
|
||||
"request_breaker",
|
||||
"in_flight_requests_breaker",
|
||||
isVersionGTE8_6 ? "model_inference_breaker" : undefined
|
||||
checkMetric("model_inference_breaker", selectedCluster) ? "model_inference_breaker" : undefined
|
||||
].filter((item) => !!item)
|
||||
],
|
||||
[
|
||||
|
@ -124,8 +116,8 @@ export default (props) => {
|
|||
"transport_rx_rate",
|
||||
"transport_tx_bytes",
|
||||
"transport_tx_rate",
|
||||
"transport_outbound_connections"
|
||||
]
|
||||
checkMetric("transport_outbound_connections", selectedCluster) ? "transport_outbound_connections" : undefined
|
||||
].filter((item) => !!item)
|
||||
],
|
||||
[
|
||||
"storage",
|
||||
|
@ -201,7 +193,7 @@ export default (props) => {
|
|||
param={param}
|
||||
setParam={setParam}
|
||||
metrics={[
|
||||
versionGTE6 ? [
|
||||
checkMetric("thread_pool_write", selectedCluster) ? [
|
||||
"thread_pool_write",
|
||||
[
|
||||
"write_active",
|
||||
|
@ -227,7 +219,7 @@ export default (props) => {
|
|||
"search_threads"
|
||||
]
|
||||
],
|
||||
!versionGTE6 ? [
|
||||
checkMetric("thread_pool_bulk", selectedCluster) ? [
|
||||
"thread_pool_bulk",
|
||||
[
|
||||
"bulk_active",
|
||||
|
|
Loading…
Reference in New Issue