Merge branch 'master' into shiyang

This commit is contained in:
shiyang 2021-12-06 18:03:51 +08:00
commit f4a59a89e5
10 changed files with 337 additions and 129 deletions

View File

@ -43,6 +43,35 @@ export default class GlobalHeaderRight extends PureComponent {
}); });
return groupBy(newNotices, "type"); return groupBy(newNotices, "type");
} }
onKeyDown = (e) => {
const { keyCode } = e;
if (this.keysPressed["17"] && this.keysPressed["16"] && keyCode == 79) {
this.setState({
consoleVisible: !this.state.consoleVisible,
});
return true;
}
this.keysPressed[keyCode] = e.type == "keydown";
return false;
};
onKeyUp = (e) => {
const { keyCode } = e;
delete this.keysPressed[keyCode];
};
constructor(props) {
super(props);
this.onKeyDown = this.onKeyDown.bind(this);
this.onKeyUp = this.onKeyUp.bind(this);
}
componentDidMount() {
this.keysPressed = {};
document.addEventListener("keydown", this.onKeyDown, false);
document.addEventListener("keyup", this.onKeyUp, false);
}
componentWillUnmount() {
document.removeEventListener("keydown", this.onKeyDown);
document.removeEventListener("keyup", this.onKeyUp);
}
render() { render() {
const { const {
@ -234,7 +263,3 @@ export default class GlobalHeaderRight extends PureComponent {
); );
} }
} }
const TopHandle = () => {
return <div style={{ background: "red" }}>hello world</div>;
};

View File

@ -1,19 +1,13 @@
import React, { Fragment } from 'react'; import React, { Fragment } from "react";
import { Layout, Icon } from 'antd'; import { Layout, Icon } from "antd";
import GlobalFooter from '@/components/GlobalFooter'; import GlobalFooter from "@/components/GlobalFooter";
const { Footer } = Layout; const { Footer } = Layout;
const FooterView = () => ( const FooterView = () => (
<Footer style={{ padding: 0 }}> <Footer style={{ padding: 0 }}>
<GlobalFooter <GlobalFooter
links={[ links={[]}
copyright={<Fragment>©INFINI.LTD, All Rights Reserved.</Fragment>}
]}
copyright={
<Fragment>
©INFINI.LTD, All Rights Reserved.
</Fragment>
}
/> />
</Footer> </Footer>
); );

View File

@ -3,9 +3,9 @@ export default {
"cluster.manage.description": "cluster.manage.description":
"Cluster management can help you quickly access different versions of Elasticsearch clusters, as well as delete and modify cluster configurations.", "Cluster management can help you quickly access different versions of Elasticsearch clusters, as well as delete and modify cluster configurations.",
"cluster.manage.label.cluster_name": "Cluster Name", "cluster.manage.label.cluster_name": "Cluster Name",
"cluster.manage.label.cluster_host": "Cluster Host", "cluster.manage.label.cluster_host": "Host",
"cluster.manage.btn.regist": "Regist Cluster", "cluster.manage.btn.regist": "Register A Cluster",
"cluster.manage.btn.try_connect": "Try Connect", "cluster.manage.btn.try_connect": "Test Connection",
"cluster.manage.table.column.name": "Name", "cluster.manage.table.column.name": "Name",
"cluster.manage.table.column.health": "Health", "cluster.manage.table.column.health": "Health",
"cluster.manage.table.column.version": "Version", "cluster.manage.table.column.version": "Version",
@ -16,7 +16,7 @@ export default {
"cluster.manage.table.column.description": "Description", "cluster.manage.table.column.description": "Description",
"cluster.manage.monitored.on": "ON", "cluster.manage.monitored.on": "ON",
"cluster.manage.monitored.off": "OFF", "cluster.manage.monitored.off": "OFF",
"cluster.regist.title": "REGIST CLUSTER", "cluster.regist.title": "CLUSTER REGISTRATION",
"cluster.edit.title": "EDIT CLUSTER", "cluster.edit.title": "EDIT CLUSTER",
"cluster.regist.description": "cluster.regist.description":
"Enter the cluster address and authentication information to create a cluster step by step.", "Enter the cluster address and authentication information to create a cluster step by step.",
@ -29,7 +29,7 @@ export default {
"cluster.regist.step.connect.label.data_nodes": "Data Nodes", "cluster.regist.step.connect.label.data_nodes": "Data Nodes",
"cluster.regist.step.connect.label.shards": "Active Shards", "cluster.regist.step.connect.label.shards": "Active Shards",
"cluster.regist.step.complete.success": "Succeed", "cluster.regist.step.complete.success": "Succeed",
"cluster.regist.step.complete.btn.create": "Regist Again", "cluster.regist.step.complete.btn.create": "Register Another Cluster",
"cluster.regist.step.complete.btn.goto": "Go To Cluster List", "cluster.regist.step.complete.btn.goto": "Go To Cluster List",
"cluster.regist.step.complete.tls.yes": "Yes", "cluster.regist.step.complete.tls.yes": "Yes",
"cluster.regist.step.complete.tls.no": "No", "cluster.regist.step.complete.tls.no": "No",
@ -42,7 +42,7 @@ export default {
"cluster.monitor.summary.version": "Version", "cluster.monitor.summary.version": "Version",
"cluster.monitor.summary.health": "Health", "cluster.monitor.summary.health": "Health",
"cluster.monitor.summary.node_count": "Node Count", "cluster.monitor.summary.node_count": "Node Count",
"cluster.monitor.summary.total_index": "Total Index", "cluster.monitor.summary.total_index": "Index Count",
"cluster.monitor.summary.shard": "Pri/Total Shard", "cluster.monitor.summary.shard": "Pri/Total Shard",
"cluster.monitor.summary.unassign_shard": "Unassigned Shard", "cluster.monitor.summary.unassign_shard": "Unassigned Shard",
"cluster.monitor.summary.total_docs": "Total Docs", "cluster.monitor.summary.total_docs": "Total Docs",
@ -62,12 +62,11 @@ export default {
"cluster.metrics.node.axis.cpu.title": "Process CPU Usage", "cluster.metrics.node.axis.cpu.title": "Process CPU Usage",
"cluster.metrics.node.axis.disk.title": "Disk Available", "cluster.metrics.node.axis.disk.title": "Disk Available",
"cluster.metrics.node.axis.open_file.title": "Open File", "cluster.metrics.node.axis.open_file.title": "Open Files",
"cluster.metrics.node.axis.open_file_percent.title": "Open File Percent", "cluster.metrics.node.axis.open_file_percent.title": "Open Files Percent",
"cluster.metrics.node.axis.indexing_rate.title": "Indexing Rate", "cluster.metrics.node.axis.indexing_rate.title": "Indexing Rate",
"cluster.metrics.node.axis.query_rate.title": "Query Rate", "cluster.metrics.node.axis.query_rate.title": "Query Rate",
"cluster.metrics.node.axis.fetch_rate.title": "Fetch Rate", "cluster.metrics.node.axis.fetch_rate.title": "Fetch Rate",
"cluster.metrics.node.axis.flush_latency.title": "Flush Latency",
"cluster.metrics.node.axis.indexing_latency.title": "Indexing Latency", "cluster.metrics.node.axis.indexing_latency.title": "Indexing Latency",
"cluster.metrics.node.axis.query_latency.title": "Query Latency", "cluster.metrics.node.axis.query_latency.title": "Query Latency",
"cluster.metrics.node.axis.fetch_latency.title": "Fetch Latency", "cluster.metrics.node.axis.fetch_latency.title": "Fetch Latency",
@ -82,22 +81,20 @@ export default {
"cluster.metrics.node.axis.segment_memory.title": "Segment Memory", "cluster.metrics.node.axis.segment_memory.title": "Segment Memory",
"cluster.metrics.node.axis.segment_count.title": "Segment Count", "cluster.metrics.node.axis.segment_count.title": "Segment Count",
"cluster.metrics.node.axis.docs_count.title": "Document Count", "cluster.metrics.node.axis.docs_count.title": "Document Count",
"cluster.metrics.node.axis.docs_deleted.title": "Document Deleted",
"cluster.metrics.node.axis.index_storage.title": "Indices Storage", "cluster.metrics.node.axis.index_storage.title": "Indices Storage",
"cluster.metrics.node.axis.jvm_heap_used_percent.title": "JVM Heap Usage", "cluster.metrics.node.axis.jvm_heap_used_percent.title": "JVM Heap Usage",
"cluster.metrics.node.axis.os_cpu.title": "OS CPU Usage", "cluster.metrics.node.axis.os_cpu.title": "OS CPU Usage",
"cluster.metrics.node.axis.os_used_mem.title": "OS Mem Usage", "cluster.metrics.node.axis.os_used_mem.title": "OS Mem Usage",
"cluster.metrics.node.axis.os_used_swap.title": "OS Swap Usage", "cluster.metrics.node.axis.os_used_swap.title": "OS Swap Usage",
"cluster.metrics.node.axis.indexing_pressure_memory.title": "cluster.metrics.node.axis.indexing_pressure_memory.title": "Indexing Pressure",
"Indexing Pressure", "cluster.metrics.node.axis.jvm_used_heap.title": "JVM Heap Usage",
"cluster.metrics.node.axis.jvm_used_heap.title": "JVM Used Heap",
"cluster.metrics.node.axis.jvm_young_gc_rate.title": "Young GC Rate", "cluster.metrics.node.axis.jvm_young_gc_rate.title": "Young GC Rate",
"cluster.metrics.node.axis.jvm_young_gc_latency.title": "Young GC Latency", "cluster.metrics.node.axis.jvm_young_gc_latency.title": "Young GC Latency",
"cluster.metrics.node.axis.jvm_mem_young_used.title": "Pools Young Used", "cluster.metrics.node.axis.jvm_mem_young_used.title": "Young Usage",
"cluster.metrics.node.axis.jvm_mem_young_peak_used.title": "cluster.metrics.node.axis.jvm_mem_young_peak_used.title": "Young Peak Usage",
"Pools Young Peak Used", "cluster.metrics.node.axis.jvm_mem_old_used.title": "Old Usage",
"cluster.metrics.node.axis.jvm_mem_old_used.title": "Pools Old Used", "cluster.metrics.node.axis.jvm_mem_old_peak_used.title": "Old Peak Usage",
"cluster.metrics.node.axis.jvm_mem_old_peak_used.title":
"Pools Old Peak Used",
"cluster.metrics.node.axis.jvm_old_gc_rate.title": "Old GC Rate", "cluster.metrics.node.axis.jvm_old_gc_rate.title": "Old GC Rate",
"cluster.metrics.node.axis.jvm_old_gc_latency.title": "Old GC Latency", "cluster.metrics.node.axis.jvm_old_gc_latency.title": "Old GC Latency",
"cluster.metrics.node.axis.transport_tx_rate.title": "Transport TX Rate", "cluster.metrics.node.axis.transport_tx_rate.title": "Transport TX Rate",
@ -105,10 +102,31 @@ export default {
"cluster.metrics.node.axis.transport_tx_bytes.title": "Transport TX Bytes", "cluster.metrics.node.axis.transport_tx_bytes.title": "Transport TX Bytes",
"cluster.metrics.node.axis.transport_rx_bytes.title": "Transport RX Bytes", "cluster.metrics.node.axis.transport_rx_bytes.title": "Transport RX Bytes",
"cluster.metrics.node.axis.request_cache_hit.title": "Request Cache Hit",
"cluster.metrics.node.axis.request_cache_miss.title": "Request Cache Miss",
"cluster.metrics.node.axis.query_cache_hit.title": "Query Cache Hit",
"cluster.metrics.node.axis.query_cache_miss.title": "Query Cache Miss",
"cluster.metrics.node.axis.query_cache_count.title": "Query Cache Count",
"cluster.metrics.node.axis.query_cache_evictions.title": "Query Cache Evictions",
"cluster.metrics.node.axis.scroll_rate.title": "Scroll Rate",
"cluster.metrics.node.axis.scroll_latency.title": "Scroll Latency",
"cluster.metrics.node.axis.refresh_rate.title": "Refresh Rate",
"cluster.metrics.node.axis.flush_rate.title": "Flush Rate",
"cluster.metrics.node.axis.merges_rate.title": "Merge Rate",
"cluster.metrics.node.axis.segment_term_vectors_memory.title": "Term Vectors",
"cluster.metrics.node.axis.segment_index_writer_memory.title": "IndexWriter",
"cluster.metrics.node.axis.segment_doc_values_memory.title": "DocValues",
"cluster.metrics.node.axis.segment_terms_memory.title": "Terms",
"cluster.metrics.node.axis.segment_stored_fields_memory.title": "Stored Fields",
"cluster.metrics.index.axis.index_storage.title": "Index Storage", "cluster.metrics.index.axis.index_storage.title": "Index Storage",
"cluster.metrics.index.axis.doc_count.title": "Document count", "cluster.metrics.index.axis.doc_count.title": "Document Count",
"cluster.metrics.index.axis.docs_deleted.title": "Document Deleted",
"cluster.metrics.index.axis.query_times.title": "Query Requests", "cluster.metrics.index.axis.query_times.title": "Query Requests",
"cluster.metrics.index.axis.fetch_times.title": "Fetch Requests", "cluster.metrics.index.axis.fetch_times.title": "Fetch Requests",
"cluster.metrics.index.axis.scroll_times.title": "Scroll Requests",
"cluster.metrics.index.axis.flush_times.title": "Flush Requests",
"cluster.metrics.index.axis.merge_times.title": "Merge Requests", "cluster.metrics.index.axis.merge_times.title": "Merge Requests",
"cluster.metrics.index.axis.refresh_times.title": "Refresh Requests", "cluster.metrics.index.axis.refresh_times.title": "Refresh Requests",
"cluster.metrics.index.axis.indexing_rate.title": "Indexing Rate", "cluster.metrics.index.axis.indexing_rate.title": "Indexing Rate",
@ -117,22 +135,75 @@ export default {
"cluster.metrics.index.axis.fetch_latency.title": "Fetch Latency", "cluster.metrics.index.axis.fetch_latency.title": "Fetch Latency",
"cluster.metrics.index.axis.merge_latency.title": "Merge Latency", "cluster.metrics.index.axis.merge_latency.title": "Merge Latency",
"cluster.metrics.index.axis.refresh_latency.title": "Refresh Latency", "cluster.metrics.index.axis.refresh_latency.title": "Refresh Latency",
"cluster.metrics.index.axis.scroll_latency.title": "Scroll Latency",
"cluster.metrics.index.axis.flush_latency.title": "Flush Latency",
"cluster.metrics.index.axis.query_cache.title": "Query Cache", "cluster.metrics.index.axis.query_cache.title": "Query Cache",
"cluster.metrics.index.axis.request_cache.title": "Request Cache", "cluster.metrics.index.axis.request_cache.title": "Request Cache",
"cluster.metrics.index.axis.segment_memory.title": "Segment Memory", "cluster.metrics.index.axis.fielddata_cache.title": "Fielddata Cache",
"cluster.metrics.index.axis.segment_fields_memory.title": "cluster.metrics.index.axis.segment_memory.title": "Segment",
"Segment Stored Fields Memory", "cluster.metrics.index.axis.segment_fields_memory.title": "Stored Fields",
"cluster.metrics.index.axis.segment_doc_values_memory.title": "cluster.metrics.index.axis.segment_doc_values_memory.title": "DocValues",
"Segment Doc Values Memory", "cluster.metrics.index.axis.segment_terms_memory.title": "Terms",
"cluster.metrics.index.axis.segment_terms_memory.title": "cluster.metrics.index.axis.segment_term_vectors_memory.title": "Term Vectors",
"Segment Terms Memory", "cluster.metrics.index.axis.segment_index_writer_memory.title": "IndexWriter",
"cluster.metrics.group.system": "System", "cluster.metrics.group.system": "System",
"cluster.metrics.group.storage": "Storage", "cluster.metrics.group.storage": "Storage",
"cluster.metrics.group.latency": "Latency", "cluster.metrics.group.latency": "Latency",
"cluster.metrics.group.operations": "Operations", "cluster.metrics.group.operations": "Operations",
"cluster.metrics.group.http": "Http Traffic", "cluster.metrics.group.http": "Http Traffic",
"cluster.metrics.group.memory": "Memory", "cluster.metrics.group.memory": "Segments Memory",
"cluster.metrics.group.cache": "Cache", "cluster.metrics.group.cache": "Cache",
"cluster.metrics.group.JVM": "JVM", "cluster.metrics.group.JVM": "JVM",
"cluster.metrics.group.transport": "Transport", "cluster.metrics.group.transport": "Transport",
"cluster.metrics.group.document": "Document",
"cluster.metrics.group.thread_pool_get": "Get Thread Pool",
"cluster.metrics.group.thread_pool_search": "Search Thread Pool",
"cluster.metrics.group.thread_pool_write": "Write Thread Pool",
"cluster.metrics.group.thread_pool_flush": "Flush Thread Pool",
"cluster.metrics.group.thread_pool_refresh": "Refresh Thread Pool",
"cluster.metrics.group.thread_pool_force_merge": "Force Merge Thread Pool",
"cluster.metrics.group.thread_pool_index": "Index Thread Pool",
"cluster.metrics.group.thread_pool_bulk": "Bulk Thead Pool",
"cluster.metrics.threadpool.axis.search_threads.title": "Threads",
"cluster.metrics.threadpool.axis.search_queue.title": "Queue",
"cluster.metrics.threadpool.axis.search_active.title": "Active",
"cluster.metrics.threadpool.axis.search_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.get_threads.title": "Threads",
"cluster.metrics.threadpool.axis.get_queue.title": "Queue",
"cluster.metrics.threadpool.axis.get_active.title": "Active",
"cluster.metrics.threadpool.axis.get_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.flush_threads.title": "Threads",
"cluster.metrics.threadpool.axis.flush_queue.title": "Queue",
"cluster.metrics.threadpool.axis.flush_active.title": "Active",
"cluster.metrics.threadpool.axis.flush_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.write_threads.title": "Threads",
"cluster.metrics.threadpool.axis.write_queue.title": "Queue",
"cluster.metrics.threadpool.axis.write_active.title": "Active",
"cluster.metrics.threadpool.axis.write_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.refresh_threads.title": "Threads",
"cluster.metrics.threadpool.axis.refresh_queue.title": "Queue",
"cluster.metrics.threadpool.axis.refresh_active.title": "Active",
"cluster.metrics.threadpool.axis.refresh_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.force_merge_threads.title": "Threads",
"cluster.metrics.threadpool.axis.force_merge_queue.title": "Queue",
"cluster.metrics.threadpool.axis.force_merge_active.title": "Active",
"cluster.metrics.threadpool.axis.force_merge_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.index_threads.title": "Threads",
"cluster.metrics.threadpool.axis.index_queue.title": "Queue",
"cluster.metrics.threadpool.axis.index_active.title": "Active",
"cluster.metrics.threadpool.axis.index_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.bulk_threads.title": "Bulk Merge Threads",
"cluster.metrics.threadpool.axis.bulk_queue.title": "Bulk Merge Queue",
"cluster.metrics.threadpool.axis.bulk_active.title": "Bulk Merge Active",
"cluster.metrics.threadpool.axis.bulk_rejected.title": "Bulk Merge Rejected",
"cluster.metrics.index.axis.request_cache_hit.title": "Request Cache Hit",
"cluster.metrics.index.axis.request_cache_miss.title": "Request Cache Miss",
"cluster.metrics.index.axis.query_cache_hit.title": "Query Cache Hit",
"cluster.metrics.index.axis.query_cache_miss.title": "Query Cache Miss",
"cluster.metrics.index.axis.query_cache_count.title": "Query Cache Count",
"cluster.metrics.index.axis.query_cache_evictions.title":
"Query Cache Evictions",
"cluster.metrics.index.axis.segment_count.title": "Segment Count",
}; };

View File

@ -60,79 +60,151 @@ export default {
"cluster.monitor.timepicker.lastyear": "最近1年", "cluster.monitor.timepicker.lastyear": "最近1年",
"cluster.monitor.timepicker.today": "今天", "cluster.monitor.timepicker.today": "今天",
"cluster.metrics.node.axis.cpu.title": "Process CPU Usage", "cluster.metrics.node.axis.cpu.title": "进程 CPU 使用率",
"cluster.metrics.node.axis.disk.title": "Disk Available", "cluster.metrics.node.axis.disk.title": "磁盘可用率",
"cluster.metrics.node.axis.open_file.title": "Open File", "cluster.metrics.node.axis.open_file.title": "文件打开数",
"cluster.metrics.node.axis.open_file_percent.title": "Open File Percent", "cluster.metrics.node.axis.open_file_percent.title": "文件打开百分比",
"cluster.metrics.node.axis.indexing_rate.title": "Indexing Rate", "cluster.metrics.node.axis.indexing_rate.title": "Indexing",
"cluster.metrics.node.axis.query_rate.title": "Query Rate", "cluster.metrics.node.axis.query_rate.title": "Query",
"cluster.metrics.node.axis.fetch_rate.title": "Fetch Rate", "cluster.metrics.node.axis.fetch_rate.title": "Fetch",
"cluster.metrics.node.axis.flush_latency.title": "Flush Latency", "cluster.metrics.node.axis.indexing_latency.title": "Indexing",
"cluster.metrics.node.axis.indexing_latency.title": "Indexing Latency", "cluster.metrics.node.axis.query_latency.title": "Query",
"cluster.metrics.node.axis.query_latency.title": "Query Latency", "cluster.metrics.node.axis.fetch_latency.title": "Fetch",
"cluster.metrics.node.axis.fetch_latency.title": "Fetch Latency", "cluster.metrics.node.axis.merge_latency.title": "Merge",
"cluster.metrics.node.axis.merge_latency.title": "Merge Latency", "cluster.metrics.node.axis.refresh_latency.title": "Refresh",
"cluster.metrics.node.axis.refresh_latency.title": "Refresh Latency", "cluster.metrics.node.axis.flush_latency.title": "Flush",
"cluster.metrics.node.axis.flush_latency.title": "Flush Latency", "cluster.metrics.node.axis.query_cache.title": "Query 缓存",
"cluster.metrics.node.axis.query_cache.title": "Query Cache", "cluster.metrics.node.axis.request_cache.title": "Request 缓存",
"cluster.metrics.node.axis.request_cache.title": "Request Cache", "cluster.metrics.node.axis.fielddata_cache.title": "Fielddata 缓存",
"cluster.metrics.node.axis.fielddata_cache.title": "Fielddata Cache", "cluster.metrics.node.axis.http_connect_num.title": "HTTP 连接数",
"cluster.metrics.node.axis.http_connect_num.title": "Http Connections", "cluster.metrics.node.axis.http_rate.title": "HTTP 打开速率",
"cluster.metrics.node.axis.http_rate.title": "Rate Of Opened Connections", "cluster.metrics.node.axis.segment_memory.title": "Segment",
"cluster.metrics.node.axis.segment_memory.title": "Segment Memory", "cluster.metrics.node.axis.segment_count.title": "Segment 个数",
"cluster.metrics.node.axis.segment_count.title": "Segment Count", "cluster.metrics.node.axis.docs_count.title": "总文档个数",
"cluster.metrics.node.axis.docs_count.title": "Document Count", "cluster.metrics.node.axis.docs_deleted.title": "删除文档数",
"cluster.metrics.node.axis.index_storage.title": "Indices Storage", "cluster.metrics.node.axis.index_storage.title": "索引存储",
"cluster.metrics.node.axis.jvm_heap_used_percent.title": "JVM Heap Usage", "cluster.metrics.node.axis.jvm_heap_used_percent.title": "堆内存使用率",
"cluster.metrics.node.axis.os_cpu.title": "OS CPU Usage", "cluster.metrics.node.axis.os_cpu.title": "CPU 使用率",
"cluster.metrics.node.axis.os_used_mem.title": "OS Mem Usage", "cluster.metrics.node.axis.os_used_mem.title": "内存使用率",
"cluster.metrics.node.axis.os_used_swap.title": "OS Swap Usage", "cluster.metrics.node.axis.os_used_swap.title": "Swap 使用率",
"cluster.metrics.node.axis.indexing_pressure_memory.title": "cluster.metrics.node.axis.indexing_pressure_memory.title": "Indexing",
"Indexing Pressure", "cluster.metrics.node.axis.jvm_used_heap.title": "JVM 堆内存用量",
"cluster.metrics.node.axis.jvm_used_heap.title": "JVM Used Heap", "cluster.metrics.node.axis.jvm_young_gc_rate.title": "年轻代 GC 速率",
"cluster.metrics.node.axis.jvm_young_gc_rate.title": "Young GC Rate", "cluster.metrics.node.axis.jvm_young_gc_latency.title": "年轻代 GC 延迟",
"cluster.metrics.node.axis.jvm_young_gc_latency.title": "Young GC Latency", "cluster.metrics.node.axis.jvm_mem_young_used.title": "年轻代内存用量",
"cluster.metrics.node.axis.jvm_mem_young_used.title": "Pools Young Used",
"cluster.metrics.node.axis.jvm_mem_young_peak_used.title": "cluster.metrics.node.axis.jvm_mem_young_peak_used.title":
"Pools Young Peak Used", "年轻代内存峰值",
"cluster.metrics.node.axis.jvm_old_gc_rate.title": "Old GC Rate", "cluster.metrics.node.axis.jvm_old_gc_rate.title": "年老代 GC 速率",
"cluster.metrics.node.axis.jvm_old_gc_latency.title": "Old GC Latency", "cluster.metrics.node.axis.jvm_old_gc_latency.title": "年老代 GC 延迟",
"cluster.metrics.node.axis.jvm_mem_old_used.title": "Pools Old Used", "cluster.metrics.node.axis.jvm_mem_old_used.title": "年老代内存用量",
"cluster.metrics.node.axis.jvm_mem_old_peak_used.title": "cluster.metrics.node.axis.jvm_mem_old_peak_used.title": "年老代内存峰值",
"Pools Old Peak Used", "cluster.metrics.node.axis.transport_tx_rate.title": "发送速率",
"cluster.metrics.node.axis.transport_tx_rate.title": "Transport TX Rate", "cluster.metrics.node.axis.transport_rx_rate.title": "接收速率",
"cluster.metrics.node.axis.transport_rx_rate.title": "Transport RX Rate", "cluster.metrics.node.axis.transport_tx_bytes.title": "发送字节",
"cluster.metrics.node.axis.transport_tx_bytes.title": "Transport TX Bytes", "cluster.metrics.node.axis.transport_rx_bytes.title": "接收字节",
"cluster.metrics.node.axis.transport_rx_bytes.title": "Transport RX Bytes",
"cluster.metrics.index.axis.index_storage.title": "Index Storage", "cluster.metrics.node.axis.request_cache_hit.title": "请求缓存命中次数",
"cluster.metrics.index.axis.doc_count.title": "Document count", "cluster.metrics.node.axis.request_cache_miss.title": "请求缓存未命中次数",
"cluster.metrics.index.axis.query_times.title": "Query Requests", "cluster.metrics.node.axis.query_cache_hit.title": "查询缓存命中次数",
"cluster.metrics.index.axis.fetch_times.title": "Fetch Requests", "cluster.metrics.node.axis.query_cache_miss.title": "查询缓存未命中次数",
"cluster.metrics.index.axis.merge_times.title": "Merge Requests", "cluster.metrics.node.axis.query_cache_count.title": "查询缓存个数",
"cluster.metrics.index.axis.refresh_times.title": "Refresh Requests", "cluster.metrics.node.axis.query_cache_evictions.title": "查询缓存回收",
"cluster.metrics.index.axis.indexing_rate.title": "Indexing Rate", "cluster.metrics.node.axis.scroll_rate.title": "Scroll",
"cluster.metrics.index.axis.indexing_latency.title": "Indexing Latency", "cluster.metrics.node.axis.scroll_latency.title": "Scroll",
"cluster.metrics.index.axis.query_latency.title": "Query Latency", "cluster.metrics.node.axis.refresh_rate.title": "Refresh",
"cluster.metrics.index.axis.fetch_latency.title": "Fetch Latency", "cluster.metrics.node.axis.flush_rate.title": "Flush",
"cluster.metrics.index.axis.merge_latency.title": "Merge Latency", "cluster.metrics.node.axis.merges_rate.title": "Merge",
"cluster.metrics.index.axis.refresh_latency.title": "Refresh Latency",
"cluster.metrics.index.axis.query_cache.title": "Query Cache", "cluster.metrics.node.axis.segment_term_vectors_memory.title": "Term Vectors",
"cluster.metrics.index.axis.request_cache.title": "Request Cache", "cluster.metrics.node.axis.segment_index_writer_memory.title": "IndexWriter",
"cluster.metrics.index.axis.segment_memory.title": "Segment Memory", "cluster.metrics.node.axis.segment_doc_values_memory.title": "DocValues",
"cluster.metrics.index.axis.segment_fields_memory.title": "cluster.metrics.node.axis.segment_terms_memory.title": "Terms",
"Segment Stored Fields Memory", "cluster.metrics.node.axis.segment_stored_fields_memory.title": "Stored Fields",
"cluster.metrics.index.axis.segment_doc_values_memory.title":
"Segment Doc Values Memory", "cluster.metrics.index.axis.index_storage.title": "索引存储大小",
"cluster.metrics.index.axis.segment_terms_memory.title": "cluster.metrics.index.axis.doc_count.title": "总文档个数",
"Segment Terms Memory", "cluster.metrics.index.axis.docs_deleted.title": "删除文档数",
"cluster.metrics.group.system": "System", "cluster.metrics.index.axis.query_times.title": "Query",
"cluster.metrics.group.storage": "Storage", "cluster.metrics.index.axis.fetch_times.title": "Fetch",
"cluster.metrics.group.latency": "Latency", "cluster.metrics.index.axis.scroll_times.title": "Scroll",
"cluster.metrics.group.operations": "Operations", "cluster.metrics.index.axis.flush_times.title": "Flush",
"cluster.metrics.group.http": "Http Traffic", "cluster.metrics.index.axis.merge_times.title": "Merge",
"cluster.metrics.group.memory": "Memory", "cluster.metrics.index.axis.refresh_times.title": "Refresh",
"cluster.metrics.group.cache": "Cache", "cluster.metrics.index.axis.indexing_rate.title": "Indexing",
"cluster.metrics.group.JVM": "JVM", "cluster.metrics.index.axis.indexing_latency.title": "Indexing",
"cluster.metrics.group.transport": "Transport", "cluster.metrics.index.axis.query_latency.title": "Query",
"cluster.metrics.index.axis.fetch_latency.title": "Fetch",
"cluster.metrics.index.axis.merge_latency.title": "Merge",
"cluster.metrics.index.axis.refresh_latency.title": "Refresh",
"cluster.metrics.index.axis.scroll_latency.title": "Scroll",
"cluster.metrics.index.axis.flush_latency.title": "Flush",
"cluster.metrics.index.axis.query_cache.title": "Query 缓存",
"cluster.metrics.index.axis.request_cache.title": "Request 缓存",
"cluster.metrics.index.axis.fielddata_cache.title": "Fielddata 缓存",
"cluster.metrics.index.axis.segment_memory.title": "Segment",
"cluster.metrics.index.axis.segment_fields_memory.title": "Stored Fields",
"cluster.metrics.index.axis.segment_doc_values_memory.title": "DocValues",
"cluster.metrics.index.axis.segment_terms_memory.title": "Terms",
"cluster.metrics.index.axis.segment_term_vectors_memory.title": "Term Vectors",
"cluster.metrics.index.axis.segment_index_writer_memory.title": "IndexWriter",
"cluster.metrics.group.system": "系统指标",
"cluster.metrics.group.storage": "存储分析",
"cluster.metrics.group.latency": "延迟分析",
"cluster.metrics.group.operations": "操作分析",
"cluster.metrics.group.http": "HTTP 统计",
"cluster.metrics.group.memory": "内存统计",
"cluster.metrics.group.cache": "缓存统计",
"cluster.metrics.group.JVM": "JVM 统计",
"cluster.metrics.group.transport": "网络统计",
"cluster.metrics.group.document": "文档统计",
"cluster.metrics.group.thread_pool_get": "Get 线程池",
"cluster.metrics.group.thread_pool_search": "Search 线程池",
"cluster.metrics.group.thread_pool_write": "Write 线程池",
"cluster.metrics.group.thread_pool_flush": "Flush 线程池",
"cluster.metrics.group.thread_pool_refresh": "Refresh 线程池",
"cluster.metrics.group.thread_pool_force_merge": "Force Merge 线程池",
// 2.x, 5.x
"cluster.metrics.group.thread_pool_index": "Index 线程池",
"cluster.metrics.group.thread_pool_bulk": "Bulk 线程池",
"cluster.metrics.threadpool.axis.search_threads.title": "Threads",
"cluster.metrics.threadpool.axis.search_queue.title": "Queue",
"cluster.metrics.threadpool.axis.search_active.title": "Active",
"cluster.metrics.threadpool.axis.search_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.get_threads.title": "Threads",
"cluster.metrics.threadpool.axis.get_queue.title": "Queue",
"cluster.metrics.threadpool.axis.get_active.title": "Active",
"cluster.metrics.threadpool.axis.get_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.flush_threads.title": "Threads",
"cluster.metrics.threadpool.axis.flush_queue.title": "Queue",
"cluster.metrics.threadpool.axis.flush_active.title": "Active",
"cluster.metrics.threadpool.axis.flush_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.write_threads.title": "Threads",
"cluster.metrics.threadpool.axis.write_queue.title": "Queue",
"cluster.metrics.threadpool.axis.write_active.title": "Active",
"cluster.metrics.threadpool.axis.write_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.refresh_threads.title": "Threads",
"cluster.metrics.threadpool.axis.refresh_queue.title": "Queue",
"cluster.metrics.threadpool.axis.refresh_active.title": "Active",
"cluster.metrics.threadpool.axis.refresh_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.force_merge_threads.title": "Threads",
"cluster.metrics.threadpool.axis.force_merge_queue.title": "Queue",
"cluster.metrics.threadpool.axis.force_merge_active.title": "Active",
"cluster.metrics.threadpool.axis.force_merge_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.index_threads.title": "Threads",
"cluster.metrics.threadpool.axis.index_queue.title": "Queue",
"cluster.metrics.threadpool.axis.index_active.title": "Active",
"cluster.metrics.threadpool.axis.index_rejected.title": "Rejected",
"cluster.metrics.threadpool.axis.bulk_threads.title": "Threads",
"cluster.metrics.threadpool.axis.bulk_queue.title": "Queue",
"cluster.metrics.threadpool.axis.bulk_active.title": "Active",
"cluster.metrics.threadpool.axis.bulk_rejected.title": "Rejected",
"cluster.metrics.index.axis.request_cache_hit.title": "请求缓存命中次数",
"cluster.metrics.index.axis.request_cache_miss.title": "请求缓存未命中次数",
"cluster.metrics.index.axis.query_cache_hit.title": "查询缓存命中次数",
"cluster.metrics.index.axis.query_cache_miss.title": "查询缓存未命中次数",
"cluster.metrics.index.axis.query_cache_count.title": "查询缓存个数",
"cluster.metrics.index.axis.query_cache_evictions.title": "查询缓存回收",
"cluster.metrics.index.axis.segment_count.title": "Segment 个数",
}; };

View File

@ -364,6 +364,7 @@ class ClusterMonitor extends PureComponent {
max_jvm_bytes: formatter.bytes(rawStats.max_jvm_bytes), max_jvm_bytes: formatter.bytes(rawStats.max_jvm_bytes),
document_count: formatter.number(rawStats.document_count), document_count: formatter.number(rawStats.document_count),
uptime: moment.duration(rawStats.uptime).humanize(), uptime: moment.duration(rawStats.uptime).humanize(),
timestamp: moment(rawStats.timestamp).toLocaleString(),
}; };
} }
@ -469,7 +470,12 @@ class ClusterMonitor extends PureComponent {
<div className={styles.summary}> <div className={styles.summary}>
{!clusterAvailable ? ( {!clusterAvailable ? (
<div className={styles.mask}>Cluster is not availabe.</div> <div className={styles.mask}>
<div>Cluster is not availabe.</div>
<div className={styles.time}>
Last data collection time: {clusterStats?.timestamp}
</div>
</div>
) : null} ) : null}
<Row <Row
gutter={[16, { xs: 8, sm: 16, md: 24, lg: 32 }]} gutter={[16, { xs: 8, sm: 16, md: 24, lg: 32 }]}
@ -630,7 +636,7 @@ class ClusterMonitor extends PureComponent {
handleTimeChange={this.handleTimeChange} handleTimeChange={this.handleTimeChange}
/> />
</Tabs.TabPane> </Tabs.TabPane>
{/* <Tabs.TabPane <Tabs.TabPane
key="queue" key="queue"
tab={formatMessage({ tab={formatMessage({
id: "cluster.monitor.queue.title", id: "cluster.monitor.queue.title",
@ -642,7 +648,7 @@ class ClusterMonitor extends PureComponent {
timeRange={this.state.timeRange} timeRange={this.state.timeRange}
handleTimeChange={this.handleTimeChange} handleTimeChange={this.handleTimeChange}
/> />
</Tabs.TabPane> */} </Tabs.TabPane>
</Tabs> </Tabs>
</div> </div>
</div> </div>

View File

@ -31,6 +31,10 @@
color: red; color: red;
font-size: 20px; font-size: 20px;
z-index: 1; z-index: 1;
flex-direction: column;
.time {
color: #666;
}
} }
.metricMask { .metricMask {
filter: blur(4px); filter: blur(4px);

View File

@ -23,6 +23,9 @@ import { formatMessage } from "umi/locale";
import _ from "lodash"; import _ from "lodash";
export default ({ clusterID, timezone, timeRange, handleTimeChange }) => { export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
if (!clusterID) {
return null;
}
const queryParams = React.useMemo(() => { const queryParams = React.useMemo(() => {
const bounds = calculateBounds({ const bounds = calculateBounds({
from: timeRange.min, from: timeRange.min,

View File

@ -22,8 +22,18 @@ import { formatMessage } from "umi/locale";
import MetricContainer from "./metric_container"; import MetricContainer from "./metric_container";
import _ from "lodash"; import _ from "lodash";
const gorupOrder = ["storage", "operations", "latency", "memory", "cache"]; const gorupOrder = [
"storage",
"document",
"operations",
"latency",
"memory",
"cache",
];
export default ({ clusterID, timezone, timeRange, handleTimeChange }) => { export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
if (!clusterID) {
return null;
}
const [filter, setFilter] = React.useState({ const [filter, setFilter] = React.useState({
top: "5", top: "5",
index_name: undefined, index_name: undefined,
@ -62,10 +72,12 @@ export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
); );
const metrics = React.useMemo(() => { const metrics = React.useMemo(() => {
return _.groupBy(value?.metrics, "group"); const grpMetrics = _.groupBy(value?.metrics, "group");
// return Object.values(value?.metrics || {}).sort( let metrics = {};
// (a, b) => a.order - b.order Object.keys(grpMetrics).forEach((k) => {
// ); metrics[k] = (grpMetrics[k] || []).sort((a, b) => a.order - b.order);
});
return metrics;
}, [value]); }, [value]);
const chartRefs = React.useRef(); const chartRefs = React.useRef();
@ -145,6 +157,9 @@ export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
<div className="px"> <div className="px">
<Skeleton active loading={!value} paragraph={{ rows: 20 }}> <Skeleton active loading={!value} paragraph={{ rows: 20 }}>
{gorupOrder.map((e, i) => { {gorupOrder.map((e, i) => {
if (!metrics[e]) {
return null;
}
return ( return (
<div style={{ margin: "8px 0" }}> <div style={{ margin: "8px 0" }}>
<MetricContainer <MetricContainer

View File

@ -28,6 +28,7 @@ const gorupOrder = [
"operations", "operations",
"latency", "latency",
"storage", "storage",
"document",
"http", "http",
"JVM", "JVM",
"memory", "memory",
@ -79,10 +80,12 @@ export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
); );
const metrics = React.useMemo(() => { const metrics = React.useMemo(() => {
return _.groupBy(value?.metrics, "group"); const grpMetrics = _.groupBy(value?.metrics, "group");
// return Object.values(value?.metrics || {}).sort( let metrics = {};
// (a, b) => a.order - b.order Object.keys(grpMetrics).forEach((k) => {
// ); metrics[k] = (grpMetrics[k] || []).sort((a, b) => a.order - b.order);
});
return metrics;
}, [value]); }, [value]);
const chartRefs = React.useRef(); const chartRefs = React.useRef();

View File

@ -22,9 +22,21 @@ import { formatMessage } from "umi/locale";
import MetricContainer from "./metric_container"; import MetricContainer from "./metric_container";
import _ from "lodash"; import _ from "lodash";
const gorupOrder = ["system"]; const gorupOrder = [
"thread_pool_search",
"thread_pool_write",
"thread_pool_index",
"thread_pool_bulk",
"thread_pool_get",
"thread_pool_flush",
"thread_pool_refresh",
"thread_pool_force_merge",
];
export default ({ clusterID, timezone, timeRange, handleTimeChange }) => { export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
if (!clusterID) {
return null;
}
const [filter, setFilter] = React.useState({ const [filter, setFilter] = React.useState({
top: "5", top: "5",
node_name: undefined, node_name: undefined,
@ -159,6 +171,9 @@ export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
<Skeleton active loading={!value} paragraph={{ rows: 20 }}> <Skeleton active loading={!value} paragraph={{ rows: 20 }}>
{//Object.keys(metrics) {//Object.keys(metrics)
gorupOrder.map((e, i) => { gorupOrder.map((e, i) => {
if (!metrics[e]) {
return null;
}
return ( return (
<div key={e} style={{ margin: "8px 0" }}> <div key={e} style={{ margin: "8px 0" }}>
<MetricContainer <MetricContainer
@ -219,7 +234,7 @@ export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
groupId={item.group} groupId={item.group}
title={formatMessage({ title={formatMessage({
id: id:
"cluster.metrics.node.axis." + "cluster.metrics.threadpool.axis." +
metric.key + metric.key +
".title", ".title",
})} })}