diff --git a/web/src/components/GlobalHeader/RightContent.js b/web/src/components/GlobalHeader/RightContent.js index 16338c44..d6012a56 100644 --- a/web/src/components/GlobalHeader/RightContent.js +++ b/web/src/components/GlobalHeader/RightContent.js @@ -43,6 +43,35 @@ export default class GlobalHeaderRight extends PureComponent { }); 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() { const { @@ -234,7 +263,3 @@ export default class GlobalHeaderRight extends PureComponent { ); } } - -const TopHandle = () => { - return
hello world
; -}; diff --git a/web/src/layouts/Footer.js b/web/src/layouts/Footer.js index e379b4b4..c87858cc 100644 --- a/web/src/layouts/Footer.js +++ b/web/src/layouts/Footer.js @@ -1,19 +1,13 @@ -import React, { Fragment } from 'react'; -import { Layout, Icon } from 'antd'; -import GlobalFooter from '@/components/GlobalFooter'; +import React, { Fragment } from "react"; +import { Layout, Icon } from "antd"; +import GlobalFooter from "@/components/GlobalFooter"; const { Footer } = Layout; const FooterView = () => ( ); diff --git a/web/src/locales/en-US/cluster.js b/web/src/locales/en-US/cluster.js index ea31fe56..1fbbea7b 100644 --- a/web/src/locales/en-US/cluster.js +++ b/web/src/locales/en-US/cluster.js @@ -3,9 +3,9 @@ export default { "cluster.manage.description": "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_host": "Cluster Host", - "cluster.manage.btn.regist": "Regist Cluster", - "cluster.manage.btn.try_connect": "Try Connect", + "cluster.manage.label.cluster_host": "Host", + "cluster.manage.btn.regist": "Register A Cluster", + "cluster.manage.btn.try_connect": "Test Connection", "cluster.manage.table.column.name": "Name", "cluster.manage.table.column.health": "Health", "cluster.manage.table.column.version": "Version", @@ -16,7 +16,7 @@ export default { "cluster.manage.table.column.description": "Description", "cluster.manage.monitored.on": "ON", "cluster.manage.monitored.off": "OFF", - "cluster.regist.title": "REGIST CLUSTER", + "cluster.regist.title": "CLUSTER REGISTRATION", "cluster.edit.title": "EDIT CLUSTER", "cluster.regist.description": "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.shards": "Active Shards", "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.tls.yes": "Yes", "cluster.regist.step.complete.tls.no": "No", @@ -42,7 +42,7 @@ export default { "cluster.monitor.summary.version": "Version", "cluster.monitor.summary.health": "Health", "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.unassign_shard": "Unassigned Shard", "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.disk.title": "Disk Available", - "cluster.metrics.node.axis.open_file.title": "Open File", - "cluster.metrics.node.axis.open_file_percent.title": "Open File Percent", + "cluster.metrics.node.axis.open_file.title": "Open Files", + "cluster.metrics.node.axis.open_file_percent.title": "Open Files Percent", "cluster.metrics.node.axis.indexing_rate.title": "Indexing Rate", "cluster.metrics.node.axis.query_rate.title": "Query 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.query_latency.title": "Query 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_count.title": "Segment 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.jvm_heap_used_percent.title": "JVM Heap 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_swap.title": "OS Swap Usage", - "cluster.metrics.node.axis.indexing_pressure_memory.title": - "Indexing Pressure", - "cluster.metrics.node.axis.jvm_used_heap.title": "JVM Used Heap", + "cluster.metrics.node.axis.indexing_pressure_memory.title": "Indexing Pressure", + "cluster.metrics.node.axis.jvm_used_heap.title": "JVM Heap Usage", "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_mem_young_used.title": "Pools Young Used", - "cluster.metrics.node.axis.jvm_mem_young_peak_used.title": - "Pools Young Peak Used", - "cluster.metrics.node.axis.jvm_mem_old_used.title": "Pools Old Used", - "cluster.metrics.node.axis.jvm_mem_old_peak_used.title": - "Pools Old Peak Used", + "cluster.metrics.node.axis.jvm_mem_young_used.title": "Young Usage", + "cluster.metrics.node.axis.jvm_mem_young_peak_used.title": "Young Peak Usage", + "cluster.metrics.node.axis.jvm_mem_old_used.title": "Old Usage", + "cluster.metrics.node.axis.jvm_mem_old_peak_used.title": "Old Peak Usage", "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.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_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.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.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.refresh_times.title": "Refresh Requests", "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.merge_latency.title": "Merge 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.request_cache.title": "Request Cache", - "cluster.metrics.index.axis.segment_memory.title": "Segment Memory", - "cluster.metrics.index.axis.segment_fields_memory.title": - "Segment Stored Fields Memory", - "cluster.metrics.index.axis.segment_doc_values_memory.title": - "Segment Doc Values Memory", - "cluster.metrics.index.axis.segment_terms_memory.title": - "Segment Terms Memory", + "cluster.metrics.index.axis.fielddata_cache.title": "Fielddata Cache", + "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": "System", "cluster.metrics.group.storage": "Storage", "cluster.metrics.group.latency": "Latency", "cluster.metrics.group.operations": "Operations", "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.JVM": "JVM", "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", }; diff --git a/web/src/locales/zh-CN/cluster.js b/web/src/locales/zh-CN/cluster.js index 7629e63b..cfc765bb 100644 --- a/web/src/locales/zh-CN/cluster.js +++ b/web/src/locales/zh-CN/cluster.js @@ -60,79 +60,151 @@ export default { "cluster.monitor.timepicker.lastyear": "最近1年", "cluster.monitor.timepicker.today": "今天", - "cluster.metrics.node.axis.cpu.title": "Process CPU Usage", - "cluster.metrics.node.axis.disk.title": "Disk Available", - "cluster.metrics.node.axis.open_file.title": "Open File", - "cluster.metrics.node.axis.open_file_percent.title": "Open File Percent", - "cluster.metrics.node.axis.indexing_rate.title": "Indexing Rate", - "cluster.metrics.node.axis.query_rate.title": "Query 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.query_latency.title": "Query Latency", - "cluster.metrics.node.axis.fetch_latency.title": "Fetch Latency", - "cluster.metrics.node.axis.merge_latency.title": "Merge Latency", - "cluster.metrics.node.axis.refresh_latency.title": "Refresh Latency", - "cluster.metrics.node.axis.flush_latency.title": "Flush Latency", - "cluster.metrics.node.axis.query_cache.title": "Query Cache", - "cluster.metrics.node.axis.request_cache.title": "Request Cache", - "cluster.metrics.node.axis.fielddata_cache.title": "Fielddata Cache", - "cluster.metrics.node.axis.http_connect_num.title": "Http Connections", - "cluster.metrics.node.axis.http_rate.title": "Rate Of Opened Connections", - "cluster.metrics.node.axis.segment_memory.title": "Segment Memory", - "cluster.metrics.node.axis.segment_count.title": "Segment Count", - "cluster.metrics.node.axis.docs_count.title": "Document Count", - "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.os_cpu.title": "OS CPU 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.indexing_pressure_memory.title": - "Indexing Pressure", - "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_latency.title": "Young GC Latency", - "cluster.metrics.node.axis.jvm_mem_young_used.title": "Pools Young Used", + "cluster.metrics.node.axis.cpu.title": "进程 CPU 使用率", + "cluster.metrics.node.axis.disk.title": "磁盘可用率", + "cluster.metrics.node.axis.open_file.title": "文件打开数", + "cluster.metrics.node.axis.open_file_percent.title": "文件打开百分比", + "cluster.metrics.node.axis.indexing_rate.title": "Indexing", + "cluster.metrics.node.axis.query_rate.title": "Query", + "cluster.metrics.node.axis.fetch_rate.title": "Fetch", + "cluster.metrics.node.axis.indexing_latency.title": "Indexing", + "cluster.metrics.node.axis.query_latency.title": "Query", + "cluster.metrics.node.axis.fetch_latency.title": "Fetch", + "cluster.metrics.node.axis.merge_latency.title": "Merge", + "cluster.metrics.node.axis.refresh_latency.title": "Refresh", + "cluster.metrics.node.axis.flush_latency.title": "Flush", + "cluster.metrics.node.axis.query_cache.title": "Query 缓存", + "cluster.metrics.node.axis.request_cache.title": "Request 缓存", + "cluster.metrics.node.axis.fielddata_cache.title": "Fielddata 缓存", + "cluster.metrics.node.axis.http_connect_num.title": "HTTP 连接数", + "cluster.metrics.node.axis.http_rate.title": "HTTP 打开速率", + "cluster.metrics.node.axis.segment_memory.title": "Segment", + "cluster.metrics.node.axis.segment_count.title": "Segment 个数", + "cluster.metrics.node.axis.docs_count.title": "总文档个数", + "cluster.metrics.node.axis.docs_deleted.title": "删除文档数", + "cluster.metrics.node.axis.index_storage.title": "索引存储", + "cluster.metrics.node.axis.jvm_heap_used_percent.title": "堆内存使用率", + "cluster.metrics.node.axis.os_cpu.title": "CPU 使用率", + "cluster.metrics.node.axis.os_used_mem.title": "内存使用率", + "cluster.metrics.node.axis.os_used_swap.title": "Swap 使用率", + "cluster.metrics.node.axis.indexing_pressure_memory.title": "Indexing", + "cluster.metrics.node.axis.jvm_used_heap.title": "JVM 堆内存用量", + "cluster.metrics.node.axis.jvm_young_gc_rate.title": "年轻代 GC 速率", + "cluster.metrics.node.axis.jvm_young_gc_latency.title": "年轻代 GC 延迟", + "cluster.metrics.node.axis.jvm_mem_young_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_latency.title": "Old GC Latency", - "cluster.metrics.node.axis.jvm_mem_old_used.title": "Pools Old Used", - "cluster.metrics.node.axis.jvm_mem_old_peak_used.title": - "Pools Old Peak Used", - "cluster.metrics.node.axis.transport_tx_rate.title": "Transport TX Rate", - "cluster.metrics.node.axis.transport_rx_rate.title": "Transport RX Rate", - "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.jvm_old_gc_rate.title": "年老代 GC 速率", + "cluster.metrics.node.axis.jvm_old_gc_latency.title": "年老代 GC 延迟", + "cluster.metrics.node.axis.jvm_mem_old_used.title": "年老代内存用量", + "cluster.metrics.node.axis.jvm_mem_old_peak_used.title": "年老代内存峰值", + "cluster.metrics.node.axis.transport_tx_rate.title": "发送速率", + "cluster.metrics.node.axis.transport_rx_rate.title": "接收速率", + "cluster.metrics.node.axis.transport_tx_bytes.title": "发送字节", + "cluster.metrics.node.axis.transport_rx_bytes.title": "接收字节", - "cluster.metrics.index.axis.index_storage.title": "Index Storage", - "cluster.metrics.index.axis.doc_count.title": "Document count", - "cluster.metrics.index.axis.query_times.title": "Query Requests", - "cluster.metrics.index.axis.fetch_times.title": "Fetch Requests", - "cluster.metrics.index.axis.merge_times.title": "Merge Requests", - "cluster.metrics.index.axis.refresh_times.title": "Refresh Requests", - "cluster.metrics.index.axis.indexing_rate.title": "Indexing Rate", - "cluster.metrics.index.axis.indexing_latency.title": "Indexing Latency", - "cluster.metrics.index.axis.query_latency.title": "Query Latency", - "cluster.metrics.index.axis.fetch_latency.title": "Fetch Latency", - "cluster.metrics.index.axis.merge_latency.title": "Merge Latency", - "cluster.metrics.index.axis.refresh_latency.title": "Refresh Latency", - "cluster.metrics.index.axis.query_cache.title": "Query Cache", - "cluster.metrics.index.axis.request_cache.title": "Request Cache", - "cluster.metrics.index.axis.segment_memory.title": "Segment Memory", - "cluster.metrics.index.axis.segment_fields_memory.title": - "Segment Stored Fields Memory", - "cluster.metrics.index.axis.segment_doc_values_memory.title": - "Segment Doc Values Memory", - "cluster.metrics.index.axis.segment_terms_memory.title": - "Segment Terms Memory", - "cluster.metrics.group.system": "System", - "cluster.metrics.group.storage": "Storage", - "cluster.metrics.group.latency": "Latency", - "cluster.metrics.group.operations": "Operations", - "cluster.metrics.group.http": "Http Traffic", - "cluster.metrics.group.memory": "Memory", - "cluster.metrics.group.cache": "Cache", - "cluster.metrics.group.JVM": "JVM", - "cluster.metrics.group.transport": "Transport", + "cluster.metrics.node.axis.request_cache_hit.title": "请求缓存命中次数", + "cluster.metrics.node.axis.request_cache_miss.title": "请求缓存未命中次数", + "cluster.metrics.node.axis.query_cache_hit.title": "查询缓存命中次数", + "cluster.metrics.node.axis.query_cache_miss.title": "查询缓存未命中次数", + "cluster.metrics.node.axis.query_cache_count.title": "查询缓存个数", + "cluster.metrics.node.axis.query_cache_evictions.title": "查询缓存回收", + "cluster.metrics.node.axis.scroll_rate.title": "Scroll", + "cluster.metrics.node.axis.scroll_latency.title": "Scroll", + "cluster.metrics.node.axis.refresh_rate.title": "Refresh", + "cluster.metrics.node.axis.flush_rate.title": "Flush", + "cluster.metrics.node.axis.merges_rate.title": "Merge", + + "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": "索引存储大小", + "cluster.metrics.index.axis.doc_count.title": "总文档个数", + "cluster.metrics.index.axis.docs_deleted.title": "删除文档数", + "cluster.metrics.index.axis.query_times.title": "Query", + "cluster.metrics.index.axis.fetch_times.title": "Fetch", + "cluster.metrics.index.axis.scroll_times.title": "Scroll", + "cluster.metrics.index.axis.flush_times.title": "Flush", + "cluster.metrics.index.axis.merge_times.title": "Merge", + "cluster.metrics.index.axis.refresh_times.title": "Refresh", + "cluster.metrics.index.axis.indexing_rate.title": "Indexing", + "cluster.metrics.index.axis.indexing_latency.title": "Indexing", + "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 个数", }; diff --git a/web/src/pages/Cluster/Metrics.js b/web/src/pages/Cluster/Metrics.js index 595a4ca4..b3ea5950 100644 --- a/web/src/pages/Cluster/Metrics.js +++ b/web/src/pages/Cluster/Metrics.js @@ -364,6 +364,7 @@ class ClusterMonitor extends PureComponent { max_jvm_bytes: formatter.bytes(rawStats.max_jvm_bytes), document_count: formatter.number(rawStats.document_count), uptime: moment.duration(rawStats.uptime).humanize(), + timestamp: moment(rawStats.timestamp).toLocaleString(), }; } @@ -469,7 +470,12 @@ class ClusterMonitor extends PureComponent {
{!clusterAvailable ? ( -
Cluster is not availabe.
+
+
Cluster is not availabe.
+
+ Last data collection time: {clusterStats?.timestamp} +
+
) : null} - {/* - */} +
diff --git a/web/src/pages/Cluster/Metrics.less b/web/src/pages/Cluster/Metrics.less index 3f0491ec..ae357410 100644 --- a/web/src/pages/Cluster/Metrics.less +++ b/web/src/pages/Cluster/Metrics.less @@ -31,6 +31,10 @@ color: red; font-size: 20px; z-index: 1; + flex-direction: column; + .time { + color: #666; + } } .metricMask { filter: blur(4px); diff --git a/web/src/pages/Cluster/components/cluster_metric.jsx b/web/src/pages/Cluster/components/cluster_metric.jsx index c399012e..240e7ebd 100644 --- a/web/src/pages/Cluster/components/cluster_metric.jsx +++ b/web/src/pages/Cluster/components/cluster_metric.jsx @@ -23,6 +23,9 @@ import { formatMessage } from "umi/locale"; import _ from "lodash"; export default ({ clusterID, timezone, timeRange, handleTimeChange }) => { + if (!clusterID) { + return null; + } const queryParams = React.useMemo(() => { const bounds = calculateBounds({ from: timeRange.min, diff --git a/web/src/pages/Cluster/components/index_metric.jsx b/web/src/pages/Cluster/components/index_metric.jsx index 00acedd2..19619721 100644 --- a/web/src/pages/Cluster/components/index_metric.jsx +++ b/web/src/pages/Cluster/components/index_metric.jsx @@ -22,8 +22,18 @@ import { formatMessage } from "umi/locale"; import MetricContainer from "./metric_container"; import _ from "lodash"; -const gorupOrder = ["storage", "operations", "latency", "memory", "cache"]; +const gorupOrder = [ + "storage", + "document", + "operations", + "latency", + "memory", + "cache", +]; export default ({ clusterID, timezone, timeRange, handleTimeChange }) => { + if (!clusterID) { + return null; + } const [filter, setFilter] = React.useState({ top: "5", index_name: undefined, @@ -62,10 +72,12 @@ export default ({ clusterID, timezone, timeRange, handleTimeChange }) => { ); const metrics = React.useMemo(() => { - return _.groupBy(value?.metrics, "group"); - // return Object.values(value?.metrics || {}).sort( - // (a, b) => a.order - b.order - // ); + const grpMetrics = _.groupBy(value?.metrics, "group"); + let metrics = {}; + Object.keys(grpMetrics).forEach((k) => { + metrics[k] = (grpMetrics[k] || []).sort((a, b) => a.order - b.order); + }); + return metrics; }, [value]); const chartRefs = React.useRef(); @@ -145,6 +157,9 @@ export default ({ clusterID, timezone, timeRange, handleTimeChange }) => {
{gorupOrder.map((e, i) => { + if (!metrics[e]) { + return null; + } return (
{ ); const metrics = React.useMemo(() => { - return _.groupBy(value?.metrics, "group"); - // return Object.values(value?.metrics || {}).sort( - // (a, b) => a.order - b.order - // ); + const grpMetrics = _.groupBy(value?.metrics, "group"); + let metrics = {}; + Object.keys(grpMetrics).forEach((k) => { + metrics[k] = (grpMetrics[k] || []).sort((a, b) => a.order - b.order); + }); + return metrics; }, [value]); const chartRefs = React.useRef(); diff --git a/web/src/pages/Cluster/components/queue_metric.jsx b/web/src/pages/Cluster/components/queue_metric.jsx index 9a42d63e..6cb5e011 100644 --- a/web/src/pages/Cluster/components/queue_metric.jsx +++ b/web/src/pages/Cluster/components/queue_metric.jsx @@ -22,9 +22,21 @@ import { formatMessage } from "umi/locale"; import MetricContainer from "./metric_container"; 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 }) => { + if (!clusterID) { + return null; + } const [filter, setFilter] = React.useState({ top: "5", node_name: undefined, @@ -159,6 +171,9 @@ export default ({ clusterID, timezone, timeRange, handleTimeChange }) => { {//Object.keys(metrics) gorupOrder.map((e, i) => { + if (!metrics[e]) { + return null; + } return (
{ groupId={item.group} title={formatMessage({ id: - "cluster.metrics.node.axis." + + "cluster.metrics.threadpool.axis." + metric.key + ".title", })}