diff --git a/docs/content.en/docs/release-notes/_index.md b/docs/content.en/docs/release-notes/_index.md index a4683cf4..009a31cf 100644 --- a/docs/content.en/docs/release-notes/_index.md +++ b/docs/content.en/docs/release-notes/_index.md @@ -21,6 +21,7 @@ Information about release notes of INFINI Console is provided here. ### Improvements - Update agent config with cluster name (#148) +- Support viewing logs for cluster, node, index health change events (#150) ## 1.28.2 (2025-02-15) diff --git a/docs/content.zh/docs/release-notes/_index.md b/docs/content.zh/docs/release-notes/_index.md index 36481fc2..6989451f 100644 --- a/docs/content.zh/docs/release-notes/_index.md +++ b/docs/content.zh/docs/release-notes/_index.md @@ -21,6 +21,8 @@ title: "版本历史" ### Improvements - 优化下发给 Agent 的配置,增加集群名称 (#148) +- 集群,节点,索引健康状态变更支持查看日志 (#150) + ## 1.28.2 (2025-02-15) diff --git a/web/src/locales/en-US.js b/web/src/locales/en-US.js index a50e799d..4863bb07 100644 --- a/web/src/locales/en-US.js +++ b/web/src/locales/en-US.js @@ -121,6 +121,7 @@ export default { "form.button.restart": "Restart", "form.button.verify": "Verify", "form.button.clean": "Clean", + "form.button.view_logs": "View Logs", "form.button.clean.confim.desc": "Are you sure to clean data that is {status}?", "form.button.clean.unavailable.nodes": "Clean unavailable nodes", "form.button.clean.unavailable.nodes.desc": "Are you sure to clean nodes that are unavailable within seven days?", diff --git a/web/src/locales/zh-CN.js b/web/src/locales/zh-CN.js index aa22f362..80441dfb 100644 --- a/web/src/locales/zh-CN.js +++ b/web/src/locales/zh-CN.js @@ -126,6 +126,7 @@ export default { "form.button.restart": "重启", "form.button.verify": "校验", "form.button.clean": "清除", + "form.button.view_logs": "View Logs", "form.button.clean.confim.desc": "确定删除状态为 {status} 的数据吗?", "form.button.clean.unavailable.nodes": "清除不可用节点", "form.button.clean.unavailable.nodes.desc": "确定清除7天内不可用的节点吗?", diff --git a/web/src/pages/Overview/components/Activities/GenerateDesc.jsx b/web/src/pages/Overview/components/Activities/GenerateDesc.jsx index bc01e034..b601c793 100644 --- a/web/src/pages/Overview/components/Activities/GenerateDesc.jsx +++ b/web/src/pages/Overview/components/Activities/GenerateDesc.jsx @@ -24,6 +24,10 @@ export default (props) => { if (indexName && indexName.includes("%")) { indexNameEncode = encodeURIComponent(indexName); } + const logStartTime = moment(timestamp).add(-3, "m"); + const logEndTime = moment(timestamp).add(3, "m"); + const logTimeRangeStr = encodeURIComponent(JSON.stringify({min:logStartTime.toISOString(),max:logEndTime.toISOString()})) + switch (name) { case "index_state_change": @@ -90,10 +94,20 @@ export default (props) => { {" "} {opers[type]} from {hit._source.metadata.labels.from} to{" "} {hit._source.metadata.labels.to} + + + {formatMessage({ id: "form.button.view_logs" })} + + ); case "cluster_health_change": - return + return case "node_health_change": return ( <> @@ -110,6 +124,15 @@ export default (props) => { {hit._source.metadata.labels.cluster_name} {" "} {opers[type]} to {hit._source.metadata.labels.to} + + + {formatMessage({ id: "form.button.view_logs" })} + ); case "node_state_change": @@ -216,12 +239,11 @@ export default (props) => { }; const ClusterHealthChange = (props) => { - const { hit, type, timeRangeStr } = props; + const { hit, type, timeRangeStr, logTimeRangeStr } = props; const status = hit._source.metadata.labels.to const hasAllocationExplain = status === 'red' const [active, setActive] = useState(false) - const content = ( { {formatMessage({ id: "form.button.detail" })} ) : null} + + + {formatMessage({ id: "form.button.view_logs" })} + )