Netdata
即时效能监控,全力给您最详细的数据
Drag charts to pan. Shift + wheel on them, to zoom in and out. Double-click on them, to reset. Hover on them too!
diff --git a/chatgpt-web/Makefile b/luci-app-chatgpt-web/Makefile
similarity index 100%
rename from chatgpt-web/Makefile
rename to luci-app-chatgpt-web/Makefile
diff --git a/chatgpt-web/README.md b/luci-app-chatgpt-web/README.md
similarity index 100%
rename from chatgpt-web/README.md
rename to luci-app-chatgpt-web/README.md
diff --git a/chatgpt-web/luasrc/controller/chatgpt-web.lua b/luci-app-chatgpt-web/luasrc/controller/chatgpt-web.lua
similarity index 100%
rename from chatgpt-web/luasrc/controller/chatgpt-web.lua
rename to luci-app-chatgpt-web/luasrc/controller/chatgpt-web.lua
diff --git a/chatgpt-web/luasrc/model/cbi/chatgpt-web.lua b/luci-app-chatgpt-web/luasrc/model/cbi/chatgpt-web.lua
similarity index 100%
rename from chatgpt-web/luasrc/model/cbi/chatgpt-web.lua
rename to luci-app-chatgpt-web/luasrc/model/cbi/chatgpt-web.lua
diff --git a/chatgpt-web/luasrc/model/cbi/chatgpt.lua b/luci-app-chatgpt-web/luasrc/model/cbi/chatgpt.lua
similarity index 100%
rename from chatgpt-web/luasrc/model/cbi/chatgpt.lua
rename to luci-app-chatgpt-web/luasrc/model/cbi/chatgpt.lua
diff --git a/chatgpt-web/luasrc/view/chatgpt-web.htm b/luci-app-chatgpt-web/luasrc/view/chatgpt-web.htm
similarity index 100%
rename from chatgpt-web/luasrc/view/chatgpt-web.htm
rename to luci-app-chatgpt-web/luasrc/view/chatgpt-web.htm
diff --git a/chatgpt-web/po/zh-cn/chatgpt-web.po b/luci-app-chatgpt-web/po/zh-cn/chatgpt-web.po
similarity index 100%
rename from chatgpt-web/po/zh-cn/chatgpt-web.po
rename to luci-app-chatgpt-web/po/zh-cn/chatgpt-web.po
diff --git a/chatgpt-web/po/zh_Hans/chatgpt-web.po b/luci-app-chatgpt-web/po/zh_Hans/chatgpt-web.po
similarity index 100%
rename from chatgpt-web/po/zh_Hans/chatgpt-web.po
rename to luci-app-chatgpt-web/po/zh_Hans/chatgpt-web.po
diff --git a/chatgpt-web/root/etc/config/chatgpt-web b/luci-app-chatgpt-web/root/etc/config/chatgpt-web
similarity index 100%
rename from chatgpt-web/root/etc/config/chatgpt-web
rename to luci-app-chatgpt-web/root/etc/config/chatgpt-web
diff --git a/chatgpt-web/root/usr/share/rpcd/acl.d/luci-app-chatgpt-web.json b/luci-app-chatgpt-web/root/usr/share/rpcd/acl.d/luci-app-chatgpt-web.json
similarity index 100%
rename from chatgpt-web/root/usr/share/rpcd/acl.d/luci-app-chatgpt-web.json
rename to luci-app-chatgpt-web/root/usr/share/rpcd/acl.d/luci-app-chatgpt-web.json
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/chatgpt-web.css b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/chatgpt-web.css
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/chatgpt-web.css
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/chatgpt-web.css
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/github-markdown-light.min.css b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/github-markdown-light.min.css
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/github-markdown-light.min.css
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/github-markdown-light.min.css
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/github.min.css b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/github.min.css
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/github.min.css
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/github.min.css
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/highlight.min.js b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/highlight.min.js
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/highlight.min.js
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/highlight.min.js
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/katex.min.css b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/katex.min.css
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/katex.min.css
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/katex.min.css
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/katex.min.js b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/katex.min.js
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/katex.min.js
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/katex.min.js
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/markdown-it-link-attributes.min.js b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/markdown-it-link-attributes.min.js
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/markdown-it-link-attributes.min.js
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/markdown-it-link-attributes.min.js
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/markdown-it.min.js b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/markdown-it.min.js
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/markdown-it.min.js
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/markdown-it.min.js
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/mobile-drag-drop3.0.0-rc.0.min.js b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/mobile-drag-drop3.0.0-rc.0.min.js
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/mobile-drag-drop3.0.0-rc.0.min.js
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/mobile-drag-drop3.0.0-rc.0.min.js
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/mobile-drag-drop3.0.0-rc.0default.css b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/mobile-drag-drop3.0.0-rc.0default.css
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/mobile-drag-drop3.0.0-rc.0default.css
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/mobile-drag-drop3.0.0-rc.0default.css
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/notyf.min.css b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/notyf.min.css
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/notyf.min.css
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/notyf.min.css
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/notyf.min.js b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/notyf.min.js
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/notyf.min.js
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/notyf.min.js
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/prompts-zh-TW.json b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/prompts-zh-TW.json
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/prompts-zh-TW.json
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/prompts-zh-TW.json
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/prompts-zh.json b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/prompts-zh.json
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/prompts-zh.json
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/prompts-zh.json
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/texmath.css b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/texmath.css
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/texmath.css
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/texmath.css
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/texmath.js b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/texmath.js
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/texmath.js
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/texmath.js
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/boy.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/boy.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/boy.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/boy.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/boy2.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/boy2.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/boy2.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/boy2.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/boy3.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/boy3.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/boy3.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/boy3.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoon.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoon.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoon.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoon.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoonboy.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoonboy.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoonboy.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoonboy.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoonboy2.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoonboy2.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoonboy2.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoonboy2.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl2.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl2.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl2.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl2.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl3.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl3.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl3.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/cartoongirl3.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/dog.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/dog.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/dog.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/dog.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/girl.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/girl.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/girl.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/girl.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/girl2.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/girl2.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/girl2.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/girl2.jpg
diff --git a/chatgpt-web/root/www/luci-static/chatgpt-web/user/girl3.jpg b/luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/girl3.jpg
similarity index 100%
rename from chatgpt-web/root/www/luci-static/chatgpt-web/user/girl3.jpg
rename to luci-app-chatgpt-web/root/www/luci-static/chatgpt-web/user/girl3.jpg
diff --git a/luci-app-eqosplus/Makefile b/luci-app-eqosplus/Makefile
new file mode 100644
index 000000000..01a62966f
--- /dev/null
+++ b/luci-app-eqosplus/Makefile
@@ -0,0 +1,26 @@
+#
+# Copyright (C) 2006-2017 OpenWrt.org
+# Copyright (C) 2022-2023 sirpdboy <%:Please enable the NetData service%> 运转 网路介面的效能指标。. Netdata检索读取 绩效和例外统计 '+
- 'Infiniband 端口。 '+
- '单个端口和硬件计数器描述可以在 '+
- 'Mellanox知识库.'
+ info: ' 性能和异常统计信息 流控传输协议(SCTP) '+
- '是一种计算机网络协议,在传输层运行,其作用类似于流行的 '+
- '协议TCP和UDP。SCTP提供了UDP和TCP的一些功能:它像UDP一样面向消息 '+
- '并确保具有TCP等拥塞控制的消息的可靠、无序传输。 '+
- '它与这些协议不同,它提供了多寻址和冗余路径,以提高弹性和可靠性。 Netdata收集读取 Stream Control Transmission Protocol (SCTP) '+
+ 'is a computer network protocol which operates at the transport layer and serves a role similar to the popular '+
+ 'protocols TCP and UDP. SCTP provides some of the features of both UDP and TCP: it is message-oriented like UDP '+
+ 'and ensures reliable, in-sequence transport of messages with congestion control like TCP. '+
+ 'It differs from those protocols by providing multi-homing and redundant paths to increase resilience and reliability. Netdata collects SCTP metrics reading the IPVS (IP Virtual Server) '+
- '在Linux内核内实现传输层负载平衡,即所谓的第4层切换。 '+
- '在主机上运行的IPVS在一组真实服务器的前部充当负载平衡器, '+
- '它可以将基于TCP/UDP的服务请求定向到真正的服务器, '+
- '并使真实服务器的服务在单个IP地址上显示为虚拟服务。 Netdata收集摘要统计数据,阅读
", status))
-
-t:tab("base",translate("Basic Settings"))
-
-e = t:taboption("base", Button, "restart", translate("手动更新"))
-e.inputtitle = translate("升级中文版")
-e.inputstyle = "reload"
-e.write = function()
- luci.sys.call("/usr/share/netdata/netdatacn 2>&1 >/dev/null")
- luci.http.redirect(luci.dispatcher.build_url("admin","status","netdata"))
-end
-
-t=o:section(TypedSection,"rss_rules",translate("技术支持"))
-t.anonymous = true
-t:append(Template("feedback"))
-return o
diff --git a/luci-app-netdata/luasrc/view/netdata.htm b/luci-app-netdata/luasrc/view/netdata.htm
new file mode 100644
index 000000000..9fc5496eb
--- /dev/null
+++ b/luci-app-netdata/luasrc/view/netdata.htm
@@ -0,0 +1,33 @@
+<%#
+ Copyright 2008-2024 by sirpdboy
+
+<% if tonumber(running) ~= nil then %>
+
+
+
+
+<% else %>
+
+
+
+
+<% end -%>
+
+<%+footer%>
diff --git a/luci-app-netdata/luasrc/view/netdata/netdata.htm b/luci-app-netdata/luasrc/view/netdata/netdata.htm
deleted file mode 100644
index 47bedac54..000000000
--- a/luci-app-netdata/luasrc/view/netdata/netdata.htm
+++ /dev/null
@@ -1,16 +0,0 @@
-<%+header%>
-<%:The Netdata service is not running.%>
+
-
-
-<%+footer%>
diff --git a/luci-app-netdata/luasrc/view/netdata_status.htm b/luci-app-netdata/luasrc/view/netdata_status.htm
new file mode 100644
index 000000000..318a02820
--- /dev/null
+++ b/luci-app-netdata/luasrc/view/netdata_status.htm
@@ -0,0 +1,25 @@
+
+
+
\ No newline at end of file
diff --git a/luci-app-netdata/po/zh-cn/netdata.po b/luci-app-netdata/po/zh-cn/netdata.po
index e8966b815..52e2cc894 100644
--- a/luci-app-netdata/po/zh-cn/netdata.po
+++ b/luci-app-netdata/po/zh-cn/netdata.po
@@ -1,5 +1,32 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
+msgid "Running state"
+msgstr "运行状态"
+
+msgid "The Netdata service is running."
+msgstr "NetData服务已启动"
+
+msgid "The Netdata service is not running."
+msgstr "NetData服务未启动"
+
+msgid "NetData Status"
+msgstr "NetData服务状态"
+
+msgid "Please enable the NetData service"
+msgstr "请将NetData服务启用"
+
msgid "NetData"
msgstr "实时监控"
+
+msgid "Set the netdata access port"
+msgstr "设置访问端口"
+
+msgid "Base Setting"
+msgstr "基本设置"
+
+msgid "Netdata is high-fidelity infrastructure monitoring and troubleshooting.Open-source, free, preconfigured, opinionated, and always real-time."
+msgstr "Netdata是高保真的基础设施监控和故障排除。开源、免费、预配置、始终实时."
+
+msgid "For specific usage, see:"
+msgstr "具体使用方法参见:"
diff --git a/luci-app-netdata/po/zh_Hans b/luci-app-netdata/po/zh_Hans
deleted file mode 120000
index 41451e4a1..000000000
--- a/luci-app-netdata/po/zh_Hans
+++ /dev/null
@@ -1 +0,0 @@
-zh-cn
\ No newline at end of file
diff --git a/luci-app-netdata/po/zh_Hans/netdata.po b/luci-app-netdata/po/zh_Hans/netdata.po
new file mode 100644
index 000000000..52e2cc894
--- /dev/null
+++ b/luci-app-netdata/po/zh_Hans/netdata.po
@@ -0,0 +1,32 @@
+msgid ""
+msgstr "Content-Type: text/plain; charset=UTF-8"
+
+msgid "Running state"
+msgstr "运行状态"
+
+msgid "The Netdata service is running."
+msgstr "NetData服务已启动"
+
+msgid "The Netdata service is not running."
+msgstr "NetData服务未启动"
+
+msgid "NetData Status"
+msgstr "NetData服务状态"
+
+msgid "Please enable the NetData service"
+msgstr "请将NetData服务启用"
+
+msgid "NetData"
+msgstr "实时监控"
+
+msgid "Set the netdata access port"
+msgstr "设置访问端口"
+
+msgid "Base Setting"
+msgstr "基本设置"
+
+msgid "Netdata is high-fidelity infrastructure monitoring and troubleshooting.Open-source, free, preconfigured, opinionated, and always real-time."
+msgstr "Netdata是高保真的基础设施监控和故障排除。开源、免费、预配置、始终实时."
+
+msgid "For specific usage, see:"
+msgstr "具体使用方法参见:"
diff --git a/luci-app-netdata/root/etc/config/netdata b/luci-app-netdata/root/etc/config/netdata
new file mode 100644
index 000000000..83f9eda99
--- /dev/null
+++ b/luci-app-netdata/root/etc/config/netdata
@@ -0,0 +1,6 @@
+
+config netdata 'netdata'
+ option logger '1'
+ option enabled '0'
+ option port '19990'
+
diff --git a/luci-app-netdata/root/etc/netdata/apps_groups.conf b/luci-app-netdata/root/etc/netdata/apps_groups.conf
deleted file mode 100644
index d326be78f..000000000
--- a/luci-app-netdata/root/etc/netdata/apps_groups.conf
+++ /dev/null
@@ -1,314 +0,0 @@
-#
-# apps.plugin process grouping
-#
-# The apps.plugin displays charts with information about the processes running.
-# This config allows grouping processes together, so that several processes
-# will be reported as one.
-#
-# Only groups in this file are reported. All other processes will be reported
-# as 'other'.
-#
-# For each process given, its whole process tree will be grouped, not just
-# the process matched. The plugin will include both parents and childs.
-#
-# The format is:
-#
-# group: process1 process2 process3 ...
-#
-# Each group can be given multiple times, to add more processes to it.
-#
-# The process names are the ones returned by:
-#
-# - ps -e or /proc/PID/stat
-# - in case of substring mode (see below): /proc/PID/cmdline
-#
-# To add process names with spaces, enclose them in quotes (single or double)
-# example: 'Plex Media Serv' "my other process".
-#
-# Wildcard support:
-# You can add an asterisk (*) at the beginning and/or the end of a process:
-#
-# *name suffix mode: will search for processes ending with 'name'
-# (/proc/PID/stat)
-#
-# name* prefix mode: will search for processes beginning with 'name'
-# (/proc/PID/stat)
-#
-# *name* substring mode: will search for 'name' in the whole command line
-# (/proc/PID/cmdline)
-#
-# If you enter even just one *name* (substring), apps.plugin will process
-# /proc/PID/cmdline for all processes, just once (when they are first seen).
-#
-# To add processes with single quotes, enclose them in double quotes
-# example: "process with this ' single quote"
-#
-# To add processes with double quotes, enclose them in single quotes:
-# example: 'process with this " double quote'
-#
-# If a group or process name starts with a -, the dimension will be hidden
-# (cpu chart only).
-#
-# If a process starts with a +, debugging will be enabled for it
-# (debugging produces a lot of output - do not enable it in production systems)
-#
-# You can add any number of groups you like. Only the ones found running will
-# affect the charts generated. However, producing charts with hundreds of
-# dimensions may slow down your web browser.
-#
-# The order of the entries in this list is important: the first that matches
-# a process is used, so put important ones at the top. Processes not matched
-# by any row, will inherit it from their parents or children.
-#
-# The order also controls the order of the dimensions on the generated charts
-# (although applications started after apps.plugin is started, will be appended
-# to the existing list of dimensions the netdata daemon maintains).
-
-# -----------------------------------------------------------------------------
-# NETDATA processes accounting
-
-# netdata main process
-netdata: netdata
-
-# netdata known plugins
-# plugins not defined here will be accumulated in netdata, above
-apps.plugin: apps.plugin
-freeipmi.plugin: freeipmi.plugin
-nfacct.plugin: nfacct.plugin
-cups.plugin: cups.plugin
-xenstat.plugin: xenstat.plugin
-perf.plugin: perf.plugin
-charts.d.plugin: *charts.d.plugin*
-node.d.plugin: *node.d.plugin*
-python.d.plugin: *python.d.plugin*
-tc-qos-helper: *tc-qos-helper.sh*
-fping: fping
-ioping: ioping
-go.d.plugin: *go.d.plugin*
-slabinfo.plugin: slabinfo.plugin
-ebpf.plugin: *ebpf.plugin*
-
-# agent-service-discovery
-agent_sd: agent_sd
-
-# -----------------------------------------------------------------------------
-# authentication/authorization related servers
-
-auth: radius* openldap* ldap* slapd authelia
-fail2ban: fail2ban*
-
-# -----------------------------------------------------------------------------
-# web/ftp servers
-
-httpd: apache* httpd nginx* lighttpd hiawatha
-proxy: squid* c-icap squidGuard varnish*
-php: php* lsphp*
-ftpd: proftpd in.tftpd vsftpd
-uwsgi: uwsgi
-unicorn: *unicorn*
-puma: *puma*
-
-# -----------------------------------------------------------------------------
-# database servers
-
-sql: mysqld* mariad* postgres* postmaster* oracle_* ora_* sqlservr
-nosql: mongod redis* memcached *couchdb*
-timedb: prometheus *carbon-cache.py* *carbon-aggregator.py* *graphite/manage.py* *net.opentsdb.tools.TSDMain* influxd*
-columndb: clickhouse-server*
-
-# -----------------------------------------------------------------------------
-# email servers
-
-email: dovecot imapd pop3d amavis* master zmstat* zmmailboxdmgr qmgr oqmgr saslauthd opendkim clamd freshclam tlsmgr postfwd2 postscreen postfix smtp* lmtp* sendmail
-
-# -----------------------------------------------------------------------------
-# network, routing, VPN
-
-ppp: ppp*
-vpn: openvpn pptp* cjdroute gvpe tincd
-wifi: hostapd wpa_supplicant NetworkManager
-routing: ospfd* ospf6d* bgpd bfdd fabricd isisd eigrpd sharpd staticd ripd ripngd pimd pbrd nhrpd ldpd zebra vrrpd vtysh bird*
-modem: ModemManager
-tor: tor
-
-# -----------------------------------------------------------------------------
-# high availability and balancers
-
-camo: *camo*
-balancer: ipvs_* haproxy
-ha: corosync hs_logd ha_logd stonithd pacemakerd lrmd crmd
-
-# -----------------------------------------------------------------------------
-# telephony
-
-pbx: asterisk safe_asterisk *vicidial*
-sip: opensips* stund
-
-# -----------------------------------------------------------------------------
-# chat
-
-chat: irssi *vines* *prosody* murmurd
-
-# -----------------------------------------------------------------------------
-# monitoring
-
-logs: ulogd* syslog* rsyslog* logrotate systemd-journald rotatelogs
-nms: snmpd vnstatd smokeping zabbix* monit munin* mon openhpid watchdog tailon nrpe
-splunk: splunkd
-azure: mdsd *waagent* *omiserver* *omiagent* hv_kvp_daemon hv_vss_daemon *auoms* *omsagent*
-
-# -----------------------------------------------------------------------------
-# storage, file systems and file servers
-
-ceph: ceph-* ceph_* radosgw* rbd-* cephfs-* osdmaptool crushtool
-samba: smbd nmbd winbindd ctdbd ctdb-* ctdb_*
-nfs: rpcbind rpc.* nfs*
-zfs: spl_* z_* txg_* zil_* arc_* l2arc*
-btrfs: btrfs*
-iscsi: iscsid iscsi_eh
-
-# -----------------------------------------------------------------------------
-# kubernetes
-
-kubelet: kubelet
-kube-dns: kube-dns
-kube-proxy: kube-proxy
-metrics-server: metrics-server
-heapster: heapster
-
-# -----------------------------------------------------------------------------
-# containers & virtual machines
-
-containers: lxc* docker* balena*
-VMs: vbox* VBox* qemu*
-
-# -----------------------------------------------------------------------------
-# ssh servers and clients
-
-ssh: ssh* scp dropbear
-
-# -----------------------------------------------------------------------------
-# print servers and clients
-
-print: cups* lpd lpq
-
-# -----------------------------------------------------------------------------
-# time servers and clients
-
-time: ntp* systemd-timesyn* chronyd
-
-# -----------------------------------------------------------------------------
-# dhcp servers and clients
-
-dhcp: *dhcp*
-
-# -----------------------------------------------------------------------------
-# name servers and clients
-
-dns: named unbound nsd pdns_server knotd gdnsd yadifad dnsmasq systemd-resolve*
-dnsdist: dnsdist
-
-# -----------------------------------------------------------------------------
-# installation / compilation / debugging
-
-build: cc1 cc1plus as gcc* cppcheck ld make cmake automake autoconf autoreconf
-build: git gdb valgrind*
-
-# -----------------------------------------------------------------------------
-# antivirus
-
-antivirus: clam* *clam imunify360*
-
-# -----------------------------------------------------------------------------
-# torrent clients
-
-torrents: *deluge* transmission* *SickBeard* *CouchPotato* *rtorrent*
-
-# -----------------------------------------------------------------------------
-# backup servers and clients
-
-backup: rsync lsyncd bacula* borg rclone
-
-# -----------------------------------------------------------------------------
-# cron
-
-cron: cron* atd anacron systemd-cron*
-
-# -----------------------------------------------------------------------------
-# UPS
-
-ups: upsmon upsd */nut/*
-
-# -----------------------------------------------------------------------------
-# media players, servers, clients
-
-media: mplayer vlc xine mediatomb omxplayer* kodi* xbmc* mediacenter eventlircd
-media: mpd minidlnad mt-daapd avahi* Plex* jellyfin squeeze* jackett Ombi
-
-# -----------------------------------------------------------------------------
-# java applications
-
-hdfsdatanode: *org.apache.hadoop.hdfs.server.datanode.DataNode*
-hdfsnamenode: *org.apache.hadoop.hdfs.server.namenode.NameNode*
-hdfsjournalnode: *org.apache.hadoop.hdfs.qjournal.server.JournalNode*
-hdfszkfc: *org.apache.hadoop.hdfs.tools.DFSZKFailoverController*
-
-yarnnode: *org.apache.hadoop.yarn.server.nodemanager.NodeManager*
-yarnmgr: *org.apache.hadoop.yarn.server.resourcemanager.ResourceManager*
-yarnproxy: *org.apache.hadoop.yarn.server.webproxy.WebAppProxyServer*
-
-sparkworker: *org.apache.spark.deploy.worker.Worker*
-sparkmaster: *org.apache.spark.deploy.master.Master*
-
-hbaseregion: *org.apache.hadoop.hbase.regionserver.HRegionServer*
-hbaserest: *org.apache.hadoop.hbase.rest.RESTServer*
-hbasethrift: *org.apache.hadoop.hbase.thrift.ThriftServer*
-hbasemaster: *org.apache.hadoop.hbase.master.HMaster*
-
-zookeeper: *org.apache.zookeeper.server.quorum.QuorumPeerMain*
-
-hive2: *org.apache.hive.service.server.HiveServer2*
-hivemetastore: *org.apache.hadoop.hive.metastore.HiveMetaStore*
-
-solr: *solr.install.dir*
-
-airflow: *airflow*
-
-# -----------------------------------------------------------------------------
-# X
-
-X: X Xorg xinit lightdm xdm pulseaudio gkrellm xfwm4 xfdesktop xfce* Thunar
-X: xfsettingsd xfconfd gnome-* gdm gconf* dconf* xfconf* *gvfs gvfs* slim
-X: kdeinit* kdm plasmashell
-X: evolution-* firefox chromium opera vivaldi-bin epiphany WebKit*
-X: '*systemd --user*' chrome *chrome-sandbox* *google-chrome* *chromium* *firefox*
-
-# -----------------------------------------------------------------------------
-# Kernel / System
-
-ksmd: ksmd
-
-system: systemd-* udisks* udevd* *udevd connmand ipv6_addrconf dbus-* rtkit*
-system: inetd xinetd mdadm polkitd acpid uuidd packagekitd upowerd colord
-system: accounts-daemon rngd haveged
-
-kernel: kthreadd kauditd lockd khelper kdevtmpfs khungtaskd rpciod
-kernel: fsnotify_mark kthrotld deferwq scsi_*
-
-# -----------------------------------------------------------------------------
-# other application servers
-
-kafka: *kafka.Kafka*
-
-rabbitmq: *rabbitmq*
-
-sidekiq: *sidekiq*
-java: java
-ipfs: ipfs
-
-node: node*
-factorio: factorio
-
-p4: p4*
-
-git-services: gitea gitlab-runner
diff --git a/luci-app-netdata/root/etc/netdata/ebpf.conf b/luci-app-netdata/root/etc/netdata/ebpf.conf
deleted file mode 100644
index d9b6b9393..000000000
--- a/luci-app-netdata/root/etc/netdata/ebpf.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-[global]
- ebpf load mode = entry
- disable apps = no
-
-[ebpf programs]
- process = yes
- network viewer = yes
diff --git a/luci-app-netdata/root/etc/netdata/exporting.conf b/luci-app-netdata/root/etc/netdata/exporting.conf
deleted file mode 100644
index 9c1e7ffb7..000000000
--- a/luci-app-netdata/root/etc/netdata/exporting.conf
+++ /dev/null
@@ -1,88 +0,0 @@
-[exporting:global]
- enabled = no
- # send configured labels = yes
- # send automatic labels = no
- # update every = 10
-
-[prometheus:exporter]
- # send names instead of ids = yes
- # send configured labels = yes
- # send automatic labels = no
- # send charts matching = *
- # send hosts matching = localhost *
- # prefix = netdata
-
-# An example configuration for graphite, json, opentsdb exporting connectors
-# [graphite:my_graphite_instance]
- # enabled = no
- # destination = localhost
- # data source = average
- # prefix = netdata
- # hostname = my_hostname
- # update every = 10
- # buffer on failures = 10
- # timeout ms = 20000
- # send names instead of ids = yes
- # send charts matching = *
- # send hosts matching = localhost *
-
-# [prometheus_remote_write:my_prometheus_remote_write_instance]
- # enabled = no
- # destination = localhost
- # remote write URL path = /receive
- # data source = average
- # prefix = netdata
- # hostname = my_hostname
- # update every = 10
- # buffer on failures = 10
- # timeout ms = 20000
- # send names instead of ids = yes
- # send charts matching = *
- # send hosts matching = localhost *
-
-# [kinesis:my_kinesis_instance]
- # enabled = no
- # destination = us-east-1
- # stream name = netdata
- # aws_access_key_id = my_access_key_id
- # aws_secret_access_key = my_aws_secret_access_key
- # data source = average
- # prefix = netdata
- # hostname = my_hostname
- # update every = 10
- # buffer on failures = 10
- # timeout ms = 20000
- # send names instead of ids = yes
- # send charts matching = *
- # send hosts matching = localhost *
-
-# [pubsub:my_pubsub_instance]
- # enabled = no
- # destination = pubsub.googleapis.com
- # credentials file = /etc/netdata/pubsub_credentials.json
- # project id = my_project
- # topic id = my_topic
- # data source = average
- # prefix = netdata
- # hostname = my_hostname
- # update every = 10
- # buffer on failures = 10
- # timeout ms = 20000
- # send names instead of ids = yes
- # send charts matching = *
- # send hosts matching = localhost *
-
-# [mongodb:my_mongodb_instance]
- # enabled = no
- # destination = localhost
- # database = my_database
- # collection = my_collection
- # data source = average
- # prefix = netdata
- # hostname = my_hostname
- # update every = 10
- # buffer on failures = 10
- # timeout ms = 20000
- # send names instead of ids = yes
- # send charts matching = *
- # send hosts matching = localhost *
diff --git a/luci-app-netdata/root/etc/netdata/netdata.conf b/luci-app-netdata/root/etc/netdata/netdata.conf
deleted file mode 100644
index 30028497f..000000000
--- a/luci-app-netdata/root/etc/netdata/netdata.conf
+++ /dev/null
@@ -1,32 +0,0 @@
-# Full configuration can be retrieved from the running
-# server at http://localhost:19999/netdata.conf
-#
-# Example:
-# curl -o /etc/netdata/netdata.conf http://localhost:19999/netdata.conf
-#
-
-[global]
- update every = 2
- memory deduplication (ksm) = no
- debug log = syslog
- error log = syslog
- access log = none
- run as user = root
-
-[web]
- allow connections from = * localhost 10.* 192.168.* 172.16.* 172.17.* 172.18.* 172.19.* 172.20.* 172.21.* 172.22.* 172.23.* 172.24.* 172.25.* 172.26.* 172.27.* 172.28.* 172.29.* 172.30.* 172.31.*
- allow dashboard from = * localhost 10.* 192.168.* 172.16.* 172.17.* 172.18.* 172.19.* 172.20.* 172.21.* 172.22.* 172.23.* 172.24.* 172.25.* 172.26.* 172.27.* 172.28.* 172.29.* 172.30.* 172.31.*
-
-[plugins]
- cgroups = no
- apps = no
- charts.d = no
- fping = no
- node.d = no
- python.d = no
-
-[health]
- enabled = no
-
-[plugin:proc:ipc]
- shared memory totals = no
diff --git a/luci-app-netdata/root/etc/netdata/stream.conf b/luci-app-netdata/root/etc/netdata/stream.conf
deleted file mode 100644
index b5142632d..000000000
--- a/luci-app-netdata/root/etc/netdata/stream.conf
+++ /dev/null
@@ -1,205 +0,0 @@
-# netdata configuration for aggregating data from remote hosts
-#
-# API keys authorize a pair of sending-receiving netdata servers.
-# Once their communication is authorized, they can exchange metrics for any
-# number of hosts.
-#
-# You can generate API keys, with the linux command: uuidgen
-
-
-# -----------------------------------------------------------------------------
-# 1. ON CHILD NETDATA - THE ONE THAT WILL BE SENDING METRICS
-
-[stream]
- # Enable this on child nodes, to have them send metrics.
- enabled = no
-
- # Where is the receiving netdata?
- # A space separated list of:
- #
- # [PROTOCOL:]HOST[%INTERFACE][:PORT][:SSL]
- #
- # If many are given, the first available will get the metrics.
- #
- # PROTOCOL = tcp, udp, or unix (only tcp and unix are supported by parent nodes)
- # HOST = an IPv4, IPv6 IP, or a hostname, or a unix domain socket path.
- # IPv6 IPs should be given with brackets [ip:address]
- # INTERFACE = the network interface to use (only for IPv6)
- # PORT = the port number or service name (/etc/services)
- # SSL = when this word appear at the end of the destination string
- # the Netdata will encrypt the connection with the parent.
- #
- # This communication is not HTTP (it cannot be proxied by web proxies).
- destination =
-
- # Skip Certificate verification?
- #
- # The netdata child is configurated to avoid invalid SSL/TLS certificate,
- # so certificates that are self-signed or expired will stop the streaming.
- # Case the server certificate is not valid, you can enable the use of
- # 'bad' certificates setting the next option as 'yes'.
- #
- #ssl skip certificate verification = yes
-
- # Certificate Authority Path
- #
- # OpenSSL has a default directory where the known certificates are stored,
- # case it is necessary it is possible to change this rule using the variable
- # "CApath"
- #
- #CApath = /etc/ssl/certs/
-
- # Certificate Authority file
- #
- # When the Netdata parent has certificate, that is not recognized as valid,
- # we can add this certificate in the list of known certificates in CApath
- # and give for Netdata as argument.
- #
- #CAfile = /etc/ssl/certs/cert.pem
-
- # The API_KEY to use (as the sender)
- api key =
-
- # The timeout to connect and send metrics
- timeout seconds = 60
-
- # If the destination line above does not specify a port, use this
- default port = 19999
-
- # filter the charts to be streamed
- # netdata SIMPLE PATTERN:
- # - space separated list of patterns (use \ to include spaces in patterns)
- # - use * as wildcard, any number of times within each pattern
- # - prefix a pattern with ! for a negative match (ie not stream the charts it matches)
- # - the order of patterns is important (left to right)
- # To send all except a few, use: !this !that * (ie append a wildcard pattern)
- send charts matching = *
-
- # The buffer to use for sending metrics.
- # 1MB is good for 10-20 seconds of data, so increase this if you expect latencies.
- # The buffer is flushed on reconnects (this will not prevent gaps at the charts).
- buffer size bytes = 1048576
-
- # If the connection fails, or it disconnects,
- # retry after that many seconds.
- reconnect delay seconds = 5
-
- # Sync the clock of the charts for that many iterations, when starting.
- initial clock resync iterations = 60
-
-# -----------------------------------------------------------------------------
-# 2. ON PARENT NETDATA - THE ONE THAT WILL BE RECEIVING METRICS
-
-# You can have one API key per child,
-# or the same API key for all child nodes.
-#
-# netdata searches for options in this order:
-#
-# a) parent netdata settings (netdata.conf)
-# b) [stream] section (above)
-# c) [API_KEY] section (below, settings for the API key)
-# d) [MACHINE_GUID] section (below, settings for each machine)
-#
-# You can combine the above (the more specific setting will be used).
-
-# API key authentication
-# If the key is not listed here, it will not be able to push metrics.
-
-# [API_KEY] is [YOUR-API-KEY], i.e [11111111-2222-3333-4444-555555555555]
-[API_KEY]
- # Default settings for this API key
-
- # You can disable the API key, by setting this to: no
- # The default (for unknown API keys) is: no
- enabled = no
-
- # A list of simple patterns matching the IPs of the servers that
- # will be pushing metrics using this API key.
- # The metrics are received via the API port, so the same IPs
- # should also be matched at netdata.conf [web].allow connections from
- allow from = *
-
- # The default history in entries, for all hosts using this API key.
- # You can also set it per host below.
- # If you don't set it here, the history size of the central netdata
- # will be used.
- default history = 3600
-
- # The default memory mode to be used for all hosts using this API key.
- # You can also set it per host below.
- # If you don't set it here, the memory mode of netdata.conf will be used.
- # Valid modes:
- # save save on exit, load on start
- # map like swap (continuously syncing to disks - you need SSD)
- # ram keep it in RAM, don't touch the disk
- # none no database at all (use this on headless proxies)
- # dbengine like a traditional database
- default memory mode = ram
-
- # Shall we enable health monitoring for the hosts using this API key?
- # 3 possible values:
- # yes enable alarms
- # no do not enable alarms
- # auto enable alarms, only when the sending netdata is connected. For ephemeral child nodes or child system restarts,
- # ensure that the netdata process on the child is gracefully stopped, to prevent invalid last_collected alarms
- # You can also set it per host, below.
- # The default is taken from [health].enabled of netdata.conf
- health enabled by default = auto
-
- # postpone alarms for a short period after the sender is connected
- default postpone alarms on connect seconds = 60
-
- # need to route metrics differently? set these.
- # the defaults are the ones at the [stream] section (above)
- #default proxy enabled = yes | no
- #default proxy destination = IP:PORT IP:PORT ...
- #default proxy api key = API_KEY
- #default proxy send charts matching = *
-
-
-# -----------------------------------------------------------------------------
-# 3. PER SENDING HOST SETTINGS, ON PARENT NETDATA
-# THIS IS OPTIONAL - YOU DON'T HAVE TO CONFIGURE IT
-
-# This section exists to give you finer control of the parent settings for each
-# child host, when the same API key is used by many netdata child nodes / proxies.
-#
-# Each netdata has a unique GUID - generated the first time netdata starts.
-# You can find it at /var/lib/netdata/registry/netdata.public.unique.id
-# (at the child).
-#
-# The host sending data will have one. If the host is not ephemeral,
-# you can give settings for each sending host here.
-
-[MACHINE_GUID]
- # enable this host: yes | no
- # When disabled, the parent will not receive metrics for this host.
- # THIS IS NOT A SECURITY MECHANISM - AN ATTACKER CAN SET ANY OTHER GUID.
- # Use only the API key for security.
- enabled = no
-
- # A list of simple patterns matching the IPs of the servers that
- # will be pushing metrics using this MACHINE GUID.
- # The metrics are received via the API port, so the same IPs
- # should also be matched at netdata.conf [web].allow connections from
- # and at stream.conf [API_KEY].allow from
- allow from = *
-
- # The number of entries in the database
- history = 3600
-
- # The memory mode of the database: save | map | ram | none | dbengine
- memory mode = save
-
- # Health / alarms control: yes | no | auto
- health enabled = yes
-
- # postpone alarms when the sender connects
- postpone alarms on connect seconds = 60
-
- # need to route metrics differently?
- # the defaults are the ones at the [API KEY] section
- #proxy enabled = yes | no
- #proxy destination = IP:PORT IP:PORT ...
- #proxy api key = API_KEY
- #proxy send charts matching = *
diff --git a/luci-app-netdata/root/etc/uci-defaults/40_luci-app-netdata b/luci-app-netdata/root/etc/uci-defaults/40_luci-app-netdata
index 83bf1cd80..6c86c538a 100644
--- a/luci-app-netdata/root/etc/uci-defaults/40_luci-app-netdata
+++ b/luci-app-netdata/root/etc/uci-defaults/40_luci-app-netdata
@@ -1,8 +1,11 @@
#!/bin/sh
+[ -f /usr/share/netdata/webcn/netdata.conf ] && mv -f /usr/share/netdata/webcn/netdata.conf /etc/netdata/netdata.conf
+[ -f /usr/share/netdata/webcn/netdata ] && mv -f /usr/share/netdata/webcn/netdata /etc/config/netdata
[ -f /usr/share/netdata/webcn/dashboard.js ] && mv -f /usr/share/netdata/webcn/dashboard.js /usr/share/netdata/web/dashboard.js
[ -f /usr/share/netdata/webcn/dashboard_info.js ] && mv -f /usr/share/netdata/webcn/dashboard_info.js /usr/share/netdata/web/dashboard_info.js
[ -f /usr/share/netdata/webcn/main.js ] && mv -f /usr/share/netdata/webcn/main.js /usr/share/netdata/web/main.js
[ -f /usr/share/netdata/webcn/index.html ] && mv -f /usr/share/netdata/webcn/index.html /usr/share/netdata/web/index.html
-
+[ -f /usr/share/netdata/webcn/netdata.init ] && mv -f /usr/share/netdata/webcn/netdata.init /etc/init.d/netdata
rm -rf /tmp/luci-modulecache /tmp/luci-indexcache*
+chmod +x /etc/init.d/netdata
exit 0
diff --git a/luci-app-netdata/root/usr/share/netdata/webcn/dashboard.js b/luci-app-netdata/root/usr/share/netdata/webcn/dashboard.js
index 9642d3ac0..1065e771e 100644
--- a/luci-app-netdata/root/usr/share/netdata/webcn/dashboard.js
+++ b/luci-app-netdata/root/usr/share/netdata/webcn/dashboard.js
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-3.0-or-later
-// 时间 By Jason
+
// DO NOT EDIT: This file is automatically generated from the source files in src/
// ----------------------------------------------------------------------------
@@ -142,18 +142,18 @@ NETDATA.zeropad = function (x) {
NETDATA.seconds4human = function (seconds, options) {
let defaultOptions = {
- now: '现在',
+ now: 'now',
space: ' ',
- negative_suffix: '前',
- day: '日',
- days: '日',
- hour: '小时',
- hours: '小时',
- minute: '分钟',
- minutes: '分钟',
- second: '秒',
- seconds: '秒',
- and: '及'
+ negative_suffix: 'ago',
+ day: 'day',
+ days: 'days',
+ hour: 'hour',
+ hours: 'hours',
+ minute: 'min',
+ minutes: 'mins',
+ second: 'sec',
+ seconds: 'secs',
+ and: 'and'
};
if (typeof options !== 'object') {
diff --git a/luci-app-netdata/root/usr/share/netdata/webcn/dashboard_info.js b/luci-app-netdata/root/usr/share/netdata/webcn/dashboard_info.js
index 08dcafbca..c4e55fa2d 100644
--- a/luci-app-netdata/root/usr/share/netdata/webcn/dashboard_info.js
+++ b/luci-app-netdata/root/usr/share/netdata/webcn/dashboard_info.js
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: GPL-3.0-or-later
-// 翻译 By Jason
+
// Codacy declarations
/* global NETDATA */
@@ -12,7 +12,7 @@ var netdataDashboard = window.netdataDashboard || {};
netdataDashboard.menu = {
'system': {
- title: '系统概览',
+ title: '系统概观',
icon: '',
info: '一眼掌握系统效能关键指标。'
},
@@ -20,46 +20,31 @@ netdataDashboard.menu = {
'services': {
title: '系统服务',
icon: '',
- info: '系统服务的使用情况。 '+
- 'netdata 以 CGROUPS 监视所有系统服务。 '+
- 'cgroups ' +
- '(the resources accounting used by containers).'
+ info: '系统服务的使用情况。netdata 以 CGROUPS 监视所有系统服务。'
},
'ap': {
- title: 'AP接入点',
+ title: '接入点',
icon: '',
- info: '系统上找到的接入点(即AP模式下的无线接口)的指标。'
+ info: '在系统上找到的接入点(即AP模式下的无线接口)的性能指标.'
},
'tc': {
- title: 'Quality服务',
+ title: '服务质量',
icon: '',
- info: 'Netdata使用其收集和可视化<%=translate("NetData")%>
-
-
-
-tc
类利用率 ' +
- 'Tc-helper插件. ' +
- '如果您也使用FireQOS来设置QoS, ' +
- 'Netdata会自动收集接口和类名。如果您的QoS配置包含间接费用 ' +
- '计算,这里显示的值将包括这些开销(相同的总带宽 ' +
- '“网络接口”部分中报告的接口将低于总带宽 ' +
- '这里报告了)。与界面相比,QoS数据收集可能略有时差 ' +
- '(QoS数据收集使用BASH脚本,因此数据收集的转移几毫秒 ' +
- '应该有正当理由)。'
+ info: 'Netdata收集和可视化tc
使用its的类利用率 '
},
'net': {
title: '网络接口',
icon: '',
- info: '/proc/net/dev
文件和/sys/class/net/
目录的数据。/proc/net/netstat
收集,或将kprobes
附加到内核函数,适用于IPv4和IPv6流量,并与内核网络堆栈的操作有关。';
+ return 'Metrics for the networking stack of the system. These metrics are collected from /proc/net/netstat
or attaching kprobes
to kernel functions, apply to both IPv4 and IPv6 traffic and are related to operation of the kernel networking stack.';
else
- return '系统网络堆栈的指标。';
+ return 'Metrics for the networking stack of the system.';
}
},
@@ -83,43 +68,43 @@ netdataDashboard.menu = {
title: 'IPv4网路',
icon: '',
info: 'IPv4效能指标。' +
- 'Internet Protocol version 4 (IPv4) 是 ' +
- '互联网协议(IP)的第四版。它是基于标准的核心协议之一 ' +
- '互联网上的互联网工作方法。IPv4是一种用于数据包交换的无连接协议' +
- '网络。它以最佳努力交付模式运作,因为它不保证交付,也不保证交付 ' +
- '它确保正确的顺序或避免重复交付。这些方面,包括数据完整性,' +
- '由上层传输协议(如传输控制协议(TCP))解决。'
+ 'Internet Protocol version 4 (IPv4) is ' +
+ 'the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based ' +
+ 'internetworking methods in the Internet. IPv4 is a connectionless protocol for use on packet-switched ' +
+ 'networks. It operates on a best effort delivery model, in that it does not guarantee delivery, nor does ' +
+ 'it assure proper sequencing or avoidance of duplicate delivery. These aspects, including data integrity, ' +
+ 'are addressed by an upper layer transport protocol, such as the Transmission Control Protocol (TCP).'
},
'ipv6': {
title: 'IPv6网路',
icon: '',
- info: 'IPv6效能指标。 Internet Protocol version 6 (IPv6) 是互联网协议(IP)的最新版本,该通信协议为网络上的计算机和跨互联网的路由流量提供识别和定位系统。IPv6是由互联网工程特别工作组(IETF)开发的,旨在处理长期预计的IPv4地址用尽问题。IPv6旨在取代IPv4。'
+ info: 'IPv6效能指标。 Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. IPv6 was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 address exhaustion. IPv6 is intended to replace IPv4.'
},
'sctp': {
title: 'SCTP 网路',
icon: '',
- info: '/proc/net/sctp/snmp
文件的SCTP指标。/proc/net/sctp/snmp
file./proc/net/ip_vs_stats
。 '+
- '要显示服务及其服务器的统计信息,请运行ipvsadm -Ln --stats
'+
- '或ipvsadm -Ln --rate
用于费率统计。'+
- '有关详细信息,请参阅 ipvsadm(8).
Netdata collects summary statistics, reading /proc/net/ip_vs_stats
. '+
+ 'To display the statistics information of services and their servers, run ipvsadm -Ln --stats
'+
+ 'or ipvsadm -Ln --rate
for the rate statistics. '+
+ 'For details, see ipvsadm(8).
iostat -x
所取得的效能数据做为呈现。在预设情况下,netdata 不会显示单一分割区与未挂载的虚拟磁碟效能图表。若仍想要显示,可以修改 netdata 设定档中的相关设定。'
+ info: '系统中所有磁碟效能资讯图表。特别留意:这是以 iostat -x
所取得的效能数据做为呈现。在预设情况下,netdata 不会显示单一分割区与未挂载的虚拟磁碟效能图表。若仍想要显示,可以修改 netdata 设定档中的相关设定。'
},
'mount': {
- title: 'Mount Points',
+ title: '装载点',
icon: '',
info: ''
},
'mdstat': {
- title: 'MD arrays',
+ title: 'MD阵列',
icon: '',
- info: 'RAID 设备是由两个或更多真实块设备创建的虚拟设备。 '+ - 'Linux软件RAID设备是 '+ - '通过md(多设备)设备驱动程序实现。
'+ - 'Netdata监控MD数组的当前状态,读取/proc/mdstat和 '+
- '/sys/block/%s/md/mismatch_cnt
档案
RAID设备是由两个或多个实块设备创建的虚拟设备。
' }, 'sensors': { - title: '感测器', + title: '传感器', icon: '', - info: '系统已配置相关感测器的读数。' + info: '配置的系统传感器读数.' }, 'ipmi': { title: 'IPMI', icon: '', - info: '智能平台管理接口(IPMI)是一套自主计算机子系统的计算机接口规范,独立于主机系统的CPU、固件(BIOS或UEFI)和操作系统提供管理和监控功能。' + info: 'The Intelligent Platform Management Interface (IPMI) is a set of computer interface specifications for an autonomous computer subsystem that provides management and monitoring capabilities independently of the host system\'s CPU, firmware (BIOS or UEFI) and operating system.' }, 'samba': { title: 'Samba', icon: '', - info: '此系统的Samba文件共享操作的绩效指标。Samba是Windows服务的实现,包括Windows SMB协议文件共享。' + info: 'Performance metrics of the Samba file share operations of this system. Samba is a implementation of Windows services, including Windows SMB protocol file shares.' }, 'nfsd': { title: 'NFS服器器', icon: '', - info: '网络文件服务器的绩效指标。 '+ + info: 'Performance metrics of the Network File Server. '+ 'NFS '+ - '是一种分布式文件系统协议,允许客户端计算机上的用户通过网络访问文件, '+ - '就像访问本地存储一样。 '+ - '与许多其他协议一样,NFS基于开放网络计算远程过程调用(ONC RPC)系统。' + 'is a distributed file system protocol, allowing a user on a client computer to access files over a network, '+ + 'much like local storage is accessed. '+ + 'NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system.' }, 'nfs': { title: 'NFS客户端', icon: '', - info: '绩效指标 '+ - 'NFS '+ - '该系统作为NFS客户端的操作。' + info: '显示本机做为 NFS 客户端的效能指标。' }, 'zfs': { title: 'ZFS文件系统', icon: '', - info: '绩效指标 '+ - 'ZFS ARC and L2ARC. '+ - 'ZFS档案系统的效能指标。以下图表呈现来自 '+ - 'arcstat.py 与 '+ - 'arc_summary.py的效能数据。' + info: 'ZFS档案系统的效能指标。以下图表呈现来自 arcstat.py 与 arc_summary.py 的效能数据。' }, 'zfspool': { - title: 'ZFS pools', + title: 'ZFS提供', icon: '', - info: 'ZFS的状态。' + info: 'ZFS池的状态。' }, 'btrfs': { title: 'BTRFS文件系统', icon: '', - info: 'BTRFS 档案系统磁碟空间使用指标。' + info: 'BTRFS文件系统的磁盘空间指标。' }, 'apps': { title: '应用程序', icon: '', - info: '每个应用程序的统计数据使用 '+ - 'apps.plugin. '+ - '这个插件会浏览所有流程,并汇总 '+ - 'application groups. '+ - '该插件还计算退出子项的资源。 '+ - '因此,对于shell脚本等进程,报告的值包括命令使用的资源 '+ - '这些脚本在每个时间范围内运行。', + info: '使用收集每个应用程序的统计信息', height: 1.5 }, 'groups': { title: '用户组', icon: '', - info: '每个用户组的统计数据使用 '+ + info: 'Per user group statistics are collected using '+ 'apps.plugin. '+ - '此插件浏览所有流程,并汇总每个用户组的统计数据。 '+ - '该插件还计算退出子项的资源。 '+ - '因此,对于shell脚本等进程,报告的值包括命令使用的资源 '+ - '这些脚本在每个时间范围内运行。', + 'This plugin walks through all processes and aggregates statistics per user group. '+ + 'The plugin also counts the resources of exited children. '+ + 'So for processes like shell scripts, the reported values include the resources used by the commands '+ + 'these scripts run within each timeframe.', height: 1.5 }, 'users': { title: '用户', icon: '', - info: '每个用户的统计数据是使用 '+ + info: 'Per user statistics are collected using '+ 'apps.plugin. '+ - '此插件浏览所有流程,并汇总每个用户的统计数据。 '+ - '该插件还计算退出子项的资源。 '+ - '因此,对于shell脚本等进程,报告的值包括命令使用的资源 '+ - '这些脚本在每个时间范围内运行。', + 'This plugin walks through all processes and aggregates statistics per user. '+ + 'The plugin also counts the resources of exited children. '+ + 'So for processes like shell scripts, the reported values include the resources used by the commands '+ + 'these scripts run within each timeframe.', height: 1.5 }, @@ -282,7 +251,7 @@ netdataDashboard.menu = { 'cgroup': { title: '', icon: '', - info: '容器资源使用率指标。netdata 从 cgroups (abbreviated from control groups 的缩写)中读取这些资讯,cgroups 是 Linux 核心的一个功能,做限制与计算程序集中的资源使用率 (CPU、记忆体、磁碟 I/O、网路...等等)。cgroups 与 namespaces (程序之间的隔离) 结合提供了我们所说的:容器。' + info: '容器资源使用率指标。netdata 从 cgroups (control groups 的缩写) 中读取这些资讯,cgroups 是 Linux 核心的一个功能,做限制与计算程序集中的资源使用率 (CPU、记忆体、磁碟 I/O、网路...等等)。cgroups 与 namespaces (程序之间的隔离) 结合提供了我们所说的:容器。' }, 'cgqemu': { @@ -294,98 +263,98 @@ netdataDashboard.menu = { 'fping': { title: 'fping', icon: '', - info: '网络延迟统计,通过fping。fping是一个向网络主机发送ICMP回声探针的程序,类似于ping
,但在ping多个主机时性能要好得多。3.15之后的fping版本可以直接用作netdata插件。'
+ info: 'Network latency statistics, via fping. fping is a program to send ICMP echo probes to network hosts, similar to ping
, but much better performing when pinging multiple hosts. fping versions after 3.15 can be directly used as netdata plugins.'
},
'gearman': {
title: 'Gearman',
icon: '',
- info: 'Gearman是一个工作服务器,允许您并行工作,加载平衡处理,并在语言之间调用函数。'
+ info: 'Gearman is a job server that allows you to do work in parallel, to load balance processing, and to call functions between languages.'
},
'ioping': {
title: 'ioping',
icon: '',
- info: '磁盘延迟统计,通过ioping。ioping是一个从/到磁盘读取/写入数据探针的程序。'
+ info: 'Disk latency statistics, via ioping. ioping is a program to read/write data probes from/to a disk.'
},
'httpcheck': {
title: 'Http Check',
icon: '',
- info: '使用HTTP检查进行Web服务可用性和延迟监控。此插件是端口检查插件的专用版本。'
+ info: 'Web Service availability and latency monitoring using HTTP checks. This plugin is a specialized version of the port check plugin.'
},
'memcached': {
title: 'memcached',
icon: '',
- info: 'memcached的绩效指标。Memcached是一个通用的分布式内存缓存系统。它通常用于通过在RAM中缓存数据和对象来加快动态数据库驱动的网站,以减少外部数据源(如数据库或API)必须读取的次数。'
+ info: 'Performance metrics for memcached. Memcached is a general-purpose distributed memory caching system. It is often used to speed up dynamic database-driven websites by caching data and objects in RAM to reduce the number of times an external data source (such as a database or API) must be read.'
},
'monit': {
title: 'monit',
icon: '',
- info: 'monit中的检查状态。Monit是一个用于管理和监控Unix系统上的流程、程序、文件、目录和文件系统的实用工具。Monit进行自动维护和维修,并在错误情况下执行有意义的因果行为。'
+ info: 'Statuses of checks in monit. Monit is a utility for managing and monitoring processes, programs, files, directories and filesystems on a Unix system. Monit conducts automatic maintenance and repair and can execute meaningful causal actions in error situations.'
},
'mysql': {
title: 'MySQL',
icon: '',
- info: '开源关系数据库管理系统(RDBMS)mysql的绩效指标。'
+ info: 'Performance metrics for mysql, the open-source relational database management system (RDBMS).'
},
'postgres': {
title: 'Postgres',
icon: '',
- info: '对象关系数据库(ORDBMS)PostgresSQL的性能指标。'
+ info: 'Performance metrics for PostgresSQL, the object-relational database (ORDBMS).'
},
'redis': {
title: 'Redis',
icon: '',
- info: 'redis的绩效指标。Redis(远程字典服务器)是一个实现数据结构服务器的软件项目。它是开源的、联网的、内存的,并存储具有可选耐用性的密钥。'
+ info: 'Performance metrics for redis. Redis (REmote DIctionary Server) is a software project that implements data structure servers. It is open-source, networked, in-memory, and stores keys with optional durability.'
},
'rethinkdbs': {
title: 'RethinkDB',
icon: '',
- info: 'rethinkdb的绩效指标。RethinkDB是第一个为实时应用程序构建的开源可扩展数据库'
+ info: 'Performance metrics for rethinkdb. RethinkDB is the first open-source scalable database built for realtime applications'
},
'retroshare': {
title: 'RetroShare',
icon: '',
- info: 'RetroShare的绩效指标。RetroShare是基于基于GNU隐私保护(GPG)的朋友对朋友网络的加密文件共享、无服务器电子邮件、即时消息、在线聊天和BBS的开源软件。'
+ info: 'Performance metrics for RetroShare. RetroShare is open source software for encrypted filesharing, serverless email, instant messaging, online chat, and BBS, based on a friend-to-friend network built on GNU Privacy Guard (GPG).'
},
'riakkv': {
title: 'Riak KV',
icon: '',
- info: 'Riak KV的指标,分布式键值存储。'
+ info: 'Metrics for Riak KV, the distributed key-value store.'
},
'ipfs': {
title: 'IPFS',
icon: '',
- info: 'InterPlanetary File System(IPFS)的绩效指标,IPFS是一种内容可寻址的点对点超媒体分发协议。'
+ info: 'Performance metrics for the InterPlanetary File System (IPFS), a content-addressable, peer-to-peer hypermedia distribution protocol.'
},
'phpfpm': {
title: 'PHP-FPM',
icon: '',
- info: 'PHP-FPM的绩效指标,PHP的替代FastCGI实现。'
+ info: 'Performance metrics for PHP-FPM, an alternative FastCGI implementation for PHP.'
},
'pihole': {
title: 'Pi-hole',
icon: '',
- info: 'Pi-hole的指标,一个互联网广告的黑洞。' +
- ' Pi-Hole API返回的指标都来自过去24小时。'
+ info: 'Metrics for Pi-hole, a black hole for Internet advertisements.' +
+ ' The metrics returned by Pi-Hole API is all from the last 24 hours.'
},
'portcheck': {
- title: '端口检查',
+ title: 'Port Check',
icon: '',
- info: '使用端口检查来监控服务可用性和延迟。'
+ info: 'Service availability and latency monitoring using port checks.'
},
'postfix': {
@@ -427,7 +396,7 @@ netdataDashboard.menu = {
'web_log': {
title: undefined,
icon: '',
- info: '从服务器日志文件中提取的信息。web_log
插件逐步解析服务器日志文件,以实时提供关键服务器性能指标的细分。对于Web服务器,可以选择使用扩展日志文件格式(对于nginx
和apache
),为请求和响应提供计时信息和带宽。web_log
插件也可以配置为按URL模式提供请求的细分(检查/etc/netdata/python.d/web_log.conf
)。'
+ info: 'Information extracted from a server log file. web_log
plugin incrementally parses the server log file to provide, in real-time, a break down of key server performance metrics. For web servers, an extended log file format may optionally be used (for nginx
and apache
) offering timing information and bandwidth for both requests and responses. web_log
plugin may also be configured to provide a break down of requests per URL pattern (check /etc/netdata/python.d/web_log.conf
).'
},
'named': {
@@ -481,47 +450,47 @@ netdataDashboard.menu = {
'go_expvar': {
title: 'Go - expvars',
icon: '',
- info: 'expvar软件包 公开的运行Go应用程序的统计数据。'
+ info: 'Statistics about running Go applications exposed by the expvar package.'
},
'chrony': {
icon: '',
- info: '关于系统时钟性能的计时参数。'
+ info: 'chronyd parameters about the system’s clock performance.'
},
'couchdb': {
icon: '',
- info: 'CouchDB的性能指标,该数据库是基于JSON文档的开源数据库,具有HTTP API和多主复制。'
+ info: 'Performance metrics for CouchDB, the open-source, JSON document-based database with an HTTP API and multi-master replication.'
},
'beanstalk': {
title: 'Beanstalkd',
icon: '',
- info: '使用从beanstalkc提取的数据提供有关beanstalkd服务器和该服务器上可用的任何管道的统计数据'
+ info: 'Provides statistics on the beanstalkd server and any tubes available on that server using data pulled from beanstalkc'
},
'rabbitmq': {
title: 'RabbitMQ',
icon: '',
- info: 'RabbitMQ开源消息代理的性能数据。'
+ info: 'Performance data for the RabbitMQ open-source message broker.'
},
'ceph': {
title: 'Ceph',
icon: '',
- info: '提供ceph集群服务器的统计数据,开源分布式存储系统。'
+ info: 'Provides statistics on the ceph cluster server, the open-source distributed storage system.'
},
'ntpd': {
title: 'ntpd',
icon: '',
- info: '提供网络时间协议守护程序ntpd的内部变量的统计信息,并可选包括配置的对等变量(如果在模块配置中启用)。本模块介绍了ntpq(标准NTP查询程序)所示的绩效指标,使用NTP模式6个UDP数据包与NTP服务器通信。'
+ info: 'Provides statistics for the internal variables of the Network Time Protocol daemon ntpd and optional including the configured peers (if enabled in the module configuration). The module presents the performance metrics as shown by ntpq (the standard NTP query program) using NTP mode 6 UDP packets to communicate with the NTP server.'
},
'spigotmc': {
title: 'Spigot MC',
icon: '',
- info: '为Spigot Minecraft服务器提供基本性能统计信息。'
+ info: 'Provides basic performance statistics for the Spigot Minecraft server.'
},
'unbound': {
@@ -533,13 +502,13 @@ netdataDashboard.menu = {
'boinc': {
title: 'BOINC',
icon: '',
- info: '为BOINC分布式计算客户端提供任务计数。'
+ info: 'Provides task counts for BOINC distributed computing clients.'
},
'w1sensor': {
title: '1-Wire Sensors',
icon: '',
- info: '来自1-Wire传感器的数据。目前会自动检测到温度传感器。'
+ info: 'Data derived from 1-Wire sensors. Currently temperature sensors are automatically detected.'
},
'logind': {
@@ -549,21 +518,21 @@ netdataDashboard.menu = {
},
'powersupply': {
- title: '电源',
+ title: 'Power Supply',
icon: '',
- info: '各种系统电源的统计数据。从Linux电源类收集的数据。'
+ info: 'Statistics for the various system power supplies. Data collected from Linux power supply class.'
},
'xenstat': {
title: 'Xen Node',
icon: '',
- info: 'Xen节点的一般统计信息。使用xenstat库收集的数据。'
+ info: 'General statistics for the Xen node. Data collected using xenstat library.'
},
'xendomain': {
title: '',
icon: '',
- info: 'Xen域资源利用率指标。Netdata使用xenstat库读取此信息,该库允许访问虚拟机的资源使用信息(CPU、内存、磁盘I/O、网络)。'
+ info: 'Xen domain resource utilization metrics. Netdata reads this information using xenstat library which gives access to the resource usage information (CPU, memory, disk I/O, network) for a virtual machine.'
},
'wmi': {
@@ -575,43 +544,43 @@ netdataDashboard.menu = {
'perf': {
title: 'Perf Counters',
icon: '',
- info: '性能监控计数器(PMC)。使用使用硬件性能监控单元(PMU)的perf_event_open()系统调用收集的数据。'
+ info: 'Performance Monitoring Counters (PMC). Data collected using perf_event_open() system call which utilises Hardware Performance Monitoring Units (PMU).'
},
'vsphere': {
title: 'vSphere',
icon: '',
- info: 'ESXI主机和虚拟机的性能统计。使用govmomi
库从VMware vCenter Server收集的数据。'
+ info: 'Performance statistics for ESXI hosts and virtual machines. Data collected from VMware vCenter Server using govmomi
library.'
},
'vcsa': {
title: 'VCSA',
icon: '',
- info: 'vCenter Server设备运行状况统计。从健康API收集的数据。'
+ info: 'vCenter Server Appliance health statistics. Data collected from Health API.'
},
'zookeeper': {
title: 'Zookeeper',
icon: '',
- info: '提供Zookeeper服务器的健康统计数据。使用mntr
命令通过命令端口收集的数据。'
+ info: 'Provides health statistics for Zookeeper server. Data collected through the command port using mntr
command.'
},
'hdfs': {
title: 'HDFS',
icon: '',
- info: '提供Hadoop分布式文件系统性能统计信息。模块通过HDFS
守护进程的Web界面收集Java管理扩展
上的指标。'
+ info: 'Provides Hadoop Distributed File System performance statistics. Module collects metrics over Java Management Extensions
through the web interface of an HDFS
daemon.'
},
'am2320': {
title: 'AM2320 Sensor',
icon: '',
- info: '外部AM2320传感器的读数。'
+ info: 'Readings from the external AM2320 Sensor.'
},
'scaleio': {
title: 'ScaleIO',
icon: '',
- info: 'ScaleIO各个组件的性能和健康统计。通过VxFlex OS Gateway REST API收集的数据。'
+ info: 'Performance and health statistics for various ScaleIO components. Data collected via VxFlex OS Gateway REST API.'
},
'squidlog': {
@@ -623,13 +592,13 @@ netdataDashboard.menu = {
'cockroachdb': {
title: 'CockroachDB',
icon: '',
- info: '各种CockroachDB
组件的性能和健康状况统计。'
+ info: 'Performance and health statistics for various CockroachDB
components.'
},
'ebpf': {
title: 'eBPF',
icon: '',
- info: '使用eBPF
监控系统调用、内部函数、字节读取、字节写入和错误。'
+ info: 'Monitor system calls, internal functions, bytes read, bytes written and errors using eBPF
.'
},
'filesystem': {
@@ -640,74 +609,74 @@ netdataDashboard.menu = {
'vernemq': {
title: 'VerneMQ',
icon: '',
- info: 'VerneMQ开源MQTT经纪人的性能数据。'
+ info: 'Performance data for the VerneMQ open-source MQTT broker.'
},
'pulsar': {
title: 'Pulsar',
icon: '',
- info: 'Apache Pulsarpub-sub消息系统的摘要、命名空间和主题性能数据。'
+ info: 'Summary, namespaces and topics performance data for the Apache Pulsar pub-sub messaging system.'
},
'anomalies': {
title: 'Anomalies',
icon: '',
- info: '与关键系统指标相关的异常分数。高异常概率表示奇怪的行为,并可能触发经过训练的模型的异常预测。有关更多详细信息,请阅读异常收集器文档。'
+ info: 'Anomaly scores relating to key system metrics. A high anomaly probability indicates strange behaviour and may trigger an anomaly prediction from the trained models. Read the anomalies collector docs for more details.'
},
'alarms': {
title: 'Alarms',
icon: '',
- info: '显示警报随时间推移状态的图表。更多详细信息此处。'
+ info: 'Charts showing alarm status over time. More details here.'
},
'statsd': {
title: 'StatsD',
icon: '',
- info:'StatsD是一个行业标准技术堆栈,用于监控应用程序和检测任何软件以提供自定义指标。Netdata允许用户在不同图表中组织指标,并轻松可视化任何应用程序指标。在Netdata Learn上阅读更多信息。'
+ info:'StatsD is an industry-standard technology stack for monitoring applications and instrumenting any piece of software to deliver custom metrics. Netdata allows the user to organize the metrics in different charts and visualize any application metric easily. Read more on Netdata Learn.'
},
'supervisord': {
title: 'Supervisord',
icon: '',
- info: '主管控制的每组流程的详细统计数据。' +
- 'Netdata使用getAllProcessInfo
方法收集这些指标。'
+ info: 'Detailed statistics for each group of processes controlled by Supervisor. ' +
+ 'Netdata collects these metrics using getAllProcessInfo
method.'
},
'systemdunits': {
- title: 'systemd units',
+ title: 'systemd单位',
icon: '',
- info: 'systemd在11种不同类型的不同实体之间提供了一个依赖系统,称为“单位”。 ' +
- '单元封装了与系统启动和维护相关的各种对象。 ' +
- '单元可能是活动
(表示启动、绑定、插入,具体取决于单元类型), ' +
- '或不活跃
(意味着停止、未绑定、断开连接), ' +
- '以及在激活或停用的过程中,即在两种状态之间(这些状态称为激活
,停用
)。 ' +
- '特殊的失败
状态也可用,这与不活跃
非常相似,并在服务以某种方式失败时(进程在退出时、崩溃、操作超时或重新启动过多后返回错误代码)时输入。 ' +
- '有关详细信息,请参阅 systemd(1)。'
+ info: 'systemd provides a dependency system between various entities called "units" of 11 different types. ' +
+ 'Units encapsulate various objects that are relevant for system boot-up and maintenance. ' +
+ 'Units may be active
(meaning started, bound, plugged in, depending on the unit type), ' +
+ 'or inactive
(meaning stopped, unbound, unplugged), ' +
+ 'as well as in the process of being activated or deactivated, i.e. between the two states (these states are called activating
, deactivating
). ' +
+ 'A special failed
state is available as well, which is very similar to inactive
and is entered when the service failed in some way (process returned error code on exit, or crashed, an operation timed out, or after too many restarts). ' +
+ 'For details, see systemd(1).'
},
'changefinder': {
title: 'ChangeFinder',
icon: '',
- info: '使用机器学习在线更改点检测。更多详细信息此处。'
+ info: 'Online changepoint detection using machine learning. More details here.'
},
'zscores': {
title: 'Z-Scores',
icon: '',
- info: 'Z scores与关键系统指标相关的分数。'
+ info: 'Z scores scores relating to key system metrics.'
},
'anomaly_detection': {
title: 'Anomaly Detection',
icon: '',
- info: '与异常检测、异常
尺寸增加或高于通常异常率
相关的图表可能是一些异常行为的迹象。有关更多详细信息,请阅读我们的异常检测指南。'
+ info: 'Charts relating to anomaly detection, increased anomalous
dimensions or a higher than usual anomaly_rate
could be signs of some abnormal behaviour. Read our anomaly detection guide for more details.'
},
'fail2ban': {
title: 'Fail2ban',
icon: '',
- info: 'Netdata通过读取Fail2ban日志文件来跟踪当前的监狱状态。'
+ info: 'Netdata keeps track of the current jail status by reading the Fail2ban log file.'
},
};
@@ -721,22 +690,22 @@ netdataDashboard.menu = {
netdataDashboard.submenu = {
'web_log.squid_bandwidth': {
title: '频宽',
- info: 'squid响应的带宽(发送
)。此图表可能会出现异常的峰值,因为带宽是在服务器保存日志行时核算的,即使服务日志行所需的时间跨度更长。我们建议使用QoS(例如FireQOS)来准确核算服务器带宽。'
+ info: 'Bandwidth of responses (sent
) by squid. This chart may present unusual spikes, since the bandwidth is accounted at the time the log line is saved by the server, even if the time needed to serve it spans across a longer duration. We suggest to use QoS (e.g. FireQOS) for accurate accounting of the server bandwidth.'
},
'web_log.squid_responses': {
title: '回应',
- info: '与squid发送的回复相关的信息。'
+ info: 'Information related to the responses sent by squid.'
},
'web_log.squid_requests': {
title: '请求',
- info: 'squid收到的与请求相关的信息。'
+ info: 'Information related to the requests squid has received.'
},
'web_log.squid_hierarchy': {
title: '等级制度',
- info: '用于服务请求的squid层次结构的绩效指标。'
+ info: 'Performance metrics for the squid hierarchy used to serve the requests.'
},
'web_log.squid_squid_transport': {
@@ -745,12 +714,12 @@ netdataDashboard.submenu = {
'web_log.squid_squid_cache': {
title: '缓存',
- info: 'squid缓存性能的性能指标。'
+ info: 'squid缓存性能的性能指标.'
},
'web_log.squid_timings': {
title: 'timings',
- info: 'squid请求的持续时间。可能会报告不切实际的激增,因为squid会在请求完成后记录请求的总时间。特别是对于HTTPS,客户端从代理获取隧道,并直接与上游服务器交换请求,因此squid无法评估单个请求并报告隧道打开的总时间。'
+ info: 'Duration of squid requests. Unrealistic spikes may be reported, since squid logs the total time of the requests, when they complete. Especially for HTTPS, the clients get a tunnel from the proxy and exchange requests directly with the upstream servers, so squid cannot evaluate the individual requests and reports the total time the tunnel was open.'
},
'web_log.squid_clients': {
@@ -758,32 +727,28 @@ netdataDashboard.submenu = {
},
'web_log.bandwidth': {
- info: '请求(接收
)和响应(发送
)的带宽。接收
需要扩展日志格式(没有它,Web服务器日志没有此信息)。此图表可能会出现异常的峰值,因为带宽是在Web服务器保存日志行时核算的,即使服务日志行所需的时间跨度更长。我们建议使用QoS(例如FireQOS)来准确核算Web服务器带宽。'
+ info: 'Bandwidth of requests (received
) and responses (sent
). received
requires an extended log format (without it, the web server log does not have this information). This chart may present unusual spikes, since the bandwidth is accounted at the time the log line is saved by the web server, even if the time needed to serve it spans across a longer duration. We suggest to use QoS (e.g. FireQOS) for accurate accounting of the web server bandwidth.'
},
'web_log.urls': {
- info: '/etc/netdata/python.d/web_log.conf
中定义的每个URL模式
的请求数量。该图表计算与定义的URL模式匹配的所有请求,独立于Web服务器响应代码(即成功和失败)。'
+ info: 'Number of requests for each URL pattern
defined in /etc/netdata/python.d/web_log.conf
. This chart counts all requests matching the URL patterns defined, independently of the web server response codes (i.e. both successful and unsuccessful).'
},
'web_log.clients': {
- info: '显示访问Web服务器的唯一客户端IP数量的图表。'
+ info: 'Charts showing the number of unique client IPs, accessing the web server.'
},
'web_log.timings': {
- info: 'Web服务器响应时间-Web服务器准备和响应请求所需的时间。这需要扩展日志格式,其含义特定于Web服务器。对于大多数Web服务器来说,这计入了从收到完整请求到发送响应最后一个字节的时间。因此,它包括响应的网络延迟,但它不包括请求的网络延迟。'
+ info: 'Web server response timings - the time the web server needed to prepare and respond to requests. This requires an extended log format and its meaning is web server specific. For most web servers this accounts the time from the reception of a complete request, to the dispatch of the last byte of the response. So, it includes the network delays of responses, but it does not include the network delays of requests.'
},
'mem.ksm': {
title: 'deduper (ksm)',
- info: 'Kernel同页合并 '+
- '(KSM)性能监控,从/sys/kernel/mm/ksm/
中的几个文件中读取。 '+
- 'KSM是Linux内核中节省内存的重复数据删除功能。 '+
- 'KSM守护进程ksmd定期扫描已注册的用户内存区域, '+
- '寻找内容相同的页面,这些页面可以替换为单个受写保护的页面。'
+ info: 'Kernel Same-page Merging (KSM) 效能监视,经由读取 /sys/kernel/mm/ksm/
下的档案而来。KSM 是在 Linux 核心 (自 2.6.32 版起) 内含的一种节省记忆体使用率重复资料删除功能。)。 KSM 服务程序 ksmd 会定期扫描记忆体区域,寻找正有资料要更新进来且相同资料存在的分页。KSM 最初是从 KVM 专案开发中而来,利用这种共用相同资料的机制,即可以让更多的虚拟机器放到记忆体中。另外,对许多会产生同样内容的应用程序来说,这个功能是相当有效益的。'
},
'mem.hugepages': {
- info: 'Hugepages是一项功能,允许内核利用现代硬件架构的多个页面大小功能。内核创建了多页虚拟内存,从物理RAM和交换进行映射。CPU架构中有一个名为“翻译Lookaside缓冲区”(TLB)的机制,用于管理虚拟内存页面与实际物理内存地址的映射。TLB是一个有限的硬件资源,因此使用默认页面大小的大量物理内存会消耗TLB并增加处理开销。通过使用大型页面,内核能够创建更大大小的页面,每个页面消耗TLB中的单个资源。大型页面被固定在物理RAM上,无法交换/分页。'
+ info: 'Hugepages is a feature that allows the kernel to utilize the multiple page size capabilities of modern hardware architectures. The kernel creates multiple pages of virtual memory, mapped from both physical RAM and swap. There is a mechanism in the CPU architecture called "Translation Lookaside Buffers" (TLB) to manage the mapping of virtual memory pages to actual physical memory addresses. The TLB is a limited hardware resource, so utilizing a large amount of physical memory with the default page size consumes the TLB and adds processing overhead. By utilizing Huge Pages, the kernel is able to create pages of much larger sizes, each page consuming a single resource in the TLB. Huge Pages are pinned to physical RAM and cannot be swapped/paged out.'
},
'mem.numa': {
@@ -791,300 +756,300 @@ netdataDashboard.submenu = {
},
'mem.ecc': {
- info: 'ECC内存'+ - '是一种使用错误更正代码(ECC)进行检测的计算机数据存储 '+ - '并纠正内存中发生的n位数据损坏。 '+ - '通常,ECC内存保持对单位错误的免疫记忆系统: '+ - '从每个单词读取的数据始终与写入它的数据相同, '+ - '即使实际存储的位数之一被翻转到错误的状态。
'+ - '内存错误可分为两类:'+ - '软错误,随机损坏位数,但不留下物理损坏。 '+ - '软错误本质上是短暂的,不可重复,可能是由于电 '+ - '磁干扰。 '+ - '硬错误,它以可重复的方式损坏位,因为 '+ - '物理/硬件缺陷或环境问题。' + info: '
ECC 内存 '+ + 'is a type of computer data storage that uses an error correction code (ECC) to detect '+ + 'and correct n-bit data corruption which occurs in memory. '+ + 'Typically, ECC memory maintains a memory system immune to single-bit errors: '+ + 'the data that is read from each word is always the same as the data that had been written to it, '+ + 'even if one of the bits actually stored has been flipped to the wrong state.
'+ + 'Memory errors can be classified into two types: '+
+ 'Soft errors, which randomly corrupt bits but do not leave physical damage. '+
+ 'Soft errors are transient in nature and are not repeatable, can be because of electrical or '+
+ 'magnetic interference. '+
+ 'Hard errors, which corrupt bits in a repeatable manner because '+
+ 'of a physical/hardware defect or an environmental problem.'
},
'mem.pagetype': {
- info: '内存统计数据可从 '+
- '记忆分配器。'+
- 'buddy分配器是系统内存分配器。 '+
- '整个内存空间被分割成物理页面,这些页面按 '+
- 'NUMA节点,区域, '+
- '迁移类型,以及块的大小。 '+
- '通过根据页面的移动能力对其进行分组, '+
- '内核可以回收页面块中的页面,以满足高阶分配。 '+
- '当内核或应用程序请求一些内存时,好友分配器会提供与请求最近的页面匹配。'
+ info: '可用可用内存的统计信息 '+
+ '内存伙伴分配器. '+
+ 'The buddy allocator is the system memory allocator. '+
+ 'The whole memory space is split in physical pages, which are grouped by '+
+ 'NUMA node, zone, '+
+ 'migrate type, and size of the block. '+
+ 'By keeping pages grouped based on their ability to move, '+
+ 'the kernel can reclaim pages within a page block to satisfy a high-order allocation. '+
+ 'When the kernel or an application requests some memory, the buddy allocator provides a page that matches closest the request.'
},
'ip.ecn': {
- info: '显式拥堵通知(ECN) '+
- '是IP和TCP的扩展,允许在不丢失数据包的情况下端到端通知网络拥塞。 '+
- 'ECN是一项可选功能,可以在两个支持ECN的端点之间使用,当 '+
- '基础网络基础设施也支持它。'
+ info: '显式拥塞通知(ECN) '+
+ 'is an extension to the IP and to the TCP that allows end-to-end notification of network congestion without dropping packets. '+
+ 'ECN is an optional feature that may be used between two ECN-enabled endpoints when '+
+ 'the underlying network infrastructure also supports it.'
},
'ip.multicast': {
- info: 'IP多播是一种技术 '+
- 'IP 网络上的一对多通信。 '+
- '多播高效地使用网络基础设施,要求源只发送一次数据包, '+
- '即使它需要交付给大量接收器。 '+
- '网络中的节点仅在必要时负责复制数据包以到达多个接收器。'
+ info: 'IP multicast is a technique for '+
+ 'IP网络上的一对多通信。'+
+ 'Multicast uses network infrastructure efficiently by requiring the source to send a packet only once, '+
+ 'even if it needs to be delivered to a large number of receivers. '+
+ 'The nodes in the network take care of replicating the packet to reach multiple receivers only when necessary.'
},
'ip.broadcast': {
info: '在计算机网络中, '+
- '广播是指传输网络上每台设备都将接收的数据包。 '+
- '在实践中,广播范围仅限于广播领域。'
+ 'broadcasting refers to transmitting a packet that will be received by every device on the network. '+
+ 'In practice, the scope of the broadcast is limited to a broadcast domain.'
},
'netfilter.conntrack': {
- title: 'connection tracker',
+ title: '连接跟踪器',
info: 'Netfilter connection tracker 效能指标。Connection tracker 会追踪这台主机上所有的连接,包括流入与流出。工作原理是将所有开启的连接都储存到资料库,以追踪网路、位址转换与连接目标。'
},
'netfilter.nfacct': {
- title: 'bandwidth accounting',
- info: '以下信息使用nfacct.plugin
阅读。'
+ title: '带宽计费',
+ info: 'The following information is read using the nfacct.plugin
.'
},
'netfilter.synproxy': {
- title: 'DDoS保护',
- info: 'DDoS保护性能指标。SYNPROXY '+
- '是TCP SYN数据包代理。 '+
- '它用于保护任何TCP服务器(如Web服务器)免受SYN洪水和类似的DDoS攻击。 '+
- 'SYNPROXY拦截新的TCP连接,并使用syncookie处理最初的3向握手 '+
- '而不是连接来建立连接。 '+
- '它经过优化,可以利用所有可用的CPUs处理数百万个数据包,而无需 '+
- '连接之间的任何并发锁定。 '+
- '它可用于任何类型的TCP流量(甚至加密), '+
- '因为它不会干扰内容本身。'
+ title: 'DDoS防护',
+ info: 'DDoS保护性能指标. SYNPROXY '+
+ 'is a TCP SYN packets proxy. '+
+ 'It is used to protect any TCP server (like a web server) from SYN floods and similar DDoS attacks. '+
+ 'SYNPROXY intercepts new TCP connections and handles the initial 3-way handshake using syncookies '+
+ 'instead of conntrack to establish the connection. '+
+ 'It is optimized to handle millions of packets per second utilizing all CPUs available without '+
+ 'any concurrency locking between the connections. '+
+ 'It can be used for any kind of TCP traffic (even encrypted), '+
+ 'since it does not interfere with the content itself.'
},
'ipfw.dynamic_rules': {
- title: 'dynamic rules',
- info: '由相应的有状态防火墙规则创建的动态规则数量。'
+ title: '动态规则',
+ info: '由相应的有状态防火墙规则创建的动态规则数。'
},
'system.softnet_stat': {
title: 'softnet',
info: function (os) {
if (os === 'linux')
- return '
与网络接收工作相关的CPU SoftIRQ的统计数据。 '+ - '每个CPU内核的细分可以在CPU/softnet统计上找到。 '+ - '有关识别网络驱动程序相关问题并进行故障诊断的更多信息,请参阅 '+ - '红帽企业Linux网络性能调优指南。
'+ - '已处理 - 处理数据包。 '+ - '已删除 - 由于网络设备积压已满,数据包已丢失。 '+ - '挤压 - 网络设备预算消耗或达到时限的次数, '+ - '但还有更多工作要做。 '+ - 'ReceivedRPS - 这个CPU被唤醒通过处理器间中断处理数据包的次数。 '+ - '流量限制计数 - 达到流量限制的次数(流量限制是可选的 '+ - '接收数据包转向功能)。
'; + return '与网络接收工作相关的CPU软件的统计信息. '+ + 'Break down per CPU core can be found at CPU / softnet statistics. '+ + 'More information about identifying and troubleshooting network driver related issues can be found at '+ + 'Red Hat Enterprise Linux Network Performance Tuning Guide.
'+ + 'Processed - packets processed. '+ + 'Dropped - packets dropped because the network device backlog was full. '+ + 'Squeezed - number of times the network device budget was consumed or the time limit was reached, '+ + 'but more work was available. '+ + 'ReceivedRPS - number of times this CPU has been woken up to process packets via an Inter-processor Interrupt. '+ + 'FlowLimitCount - number of times the flow limit has been reached (flow limiting is an optional '+ + 'Receive Packet Steering feature).
'; else - return '与网络接收工作相关的CPU SoftIRQ的统计数据。'; + return 'Statistics for CPUs SoftIRQs related to network receive work.'; } }, 'system.clock synchronization': { info: 'NTP '+ - '允许您自动将系统时间与远程服务器同步。 '+ - '这通过与已知具有准确时间的服务器同步来保持机器时间的准确性。' + '允许您自动将系统时间与远程服务器同步. '+ + 'This keeps your machine’s time accurate by syncing with servers that are known to have accurate times.' }, 'cpu.softnet_stat': { - title: 'softnet', + title: '软网', info: function (os) { if (os === 'linux') - return '与网络接收工作相关的CPU SoftIRQ的统计数据。 '+ - '所有CPU内核的总和可在系统/软网统计中找到。 '+ - '有关识别网络驱动程序相关问题并进行故障诊断的更多信息,请参阅 '+ - '红帽企业Linux网络性能调优指南。
'+ - '已处理 - 处理数据包。 '+ - '已删除 - 由于网络设备积压已满,数据包已丢失。 '+ - '挤压 - 网络设备预算消耗或达到时限的次数, '+ - '但还有更多工作要做。 '+ - 'ReceivedRPS - 这个CPU被唤醒通过处理器间中断处理数据包的次数。 '+ - '流量限制计数 - 达到流量限制的次数(流量限制是可选的 '+ - '接收数据包转向功能)。
'; + return '与网络接收工作相关的CPU软件的统计信息. '+ + 'Total for all CPU cores can be found at System / softnet statistics. '+ + 'More information about identifying and troubleshooting network driver related issues can be found at '+ + 'Red Hat Enterprise Linux Network Performance Tuning Guide.
'+ + 'Processed - packets processed. '+ + 'Dropped - packets dropped because the network device backlog was full. '+ + 'Squeezed - number of times the network device budget was consumed or the time limit was reached, '+ + 'but more work was available. '+ + 'ReceivedRPS - number of times this CPU has been woken up to process packets via an Inter-processor Interrupt. '+ + 'FlowLimitCount - number of times the flow limit has been reached (flow limiting is an optional '+ + 'Receive Packet Steering feature).
'; else - return '与网络接收工作相关的每个CPU核心SoftIRQ的统计数据。所有CPU内核的总和可在系统/软网统计中找到。'; + return 'Statistics for per CPUs core SoftIRQs related to network receive work. Total for all CPU cores can be found at System / softnet statistics.'; } }, 'go_expvar.memstats': { - title: 'memory statistics', - info: '运行时内存统计。有关每个图表和值的更多信息,请参阅runtime.MemStats文档。' + title: '内存统计信息', + info: 'Go runtime memory statistics. See runtime.MemStats documentation for more info about each chart and the values.' }, 'couchdb.dbactivity': { - title: 'db activity', - info: '整个数据库为整个服务器读取和写入。这包括任何外部HTTP流量,以及在集群中执行的内部复制流量,以确保节点一致性。' + title: 'db活动', + info: 'Overall database reads and writes for the entire server. This includes any external HTTP traffic, as well as internal replication traffic performed in a cluster to ensure node consistency.' }, 'couchdb.httptraffic': { - title: 'http traffic breakdown', - info: '所有HTTP流量,按请求类型(GET、PUT、POST等)和响应状态代码(200、201、4xx等)ntpq -c rl
所示的系统变量统计信息。系统变量被分配为零的关联ID,也可以显示在readvar广告牌ntpq -c“rv 0”
中。这些变量用于时钟纪律算法,以计算最低和最稳定的偏移量。'
+ title: '系统',
+ info: 'Statistics of the system variables as shown by the readlist billboard ntpq -c rl
. System variables are assigned an association ID of zero and can also be shown in the readvar billboard ntpq -c "rv 0"
. These variables are used in the Clock Discipline Algorithm, to calculate the lowest and most stable offset.'
},
'ntpd.peers': {
- title: 'peers',
- info: '在/etc/ntp.conf
中配置的每个对等变量的统计信息,如readvar广告牌ntpq -c“rv <association>”
所示,而每个对等方都分配了一个非零关联ID,如ntpq -c“apeers”
所示。该模块定期扫描新的/更改的对等机(默认:每60秒一次)。ntpd从可用对等机中选择最佳对等机来同步时钟。至少需要3名同行才能正确识别最佳同行。'
+ title: '同行',
+ info: 'Statistics of the peer variables for each peer configured in /etc/ntp.conf
as shown by the readvar billboard ntpq -c "rv <association>"
, while each peer is assigned a nonzero association ID as shown by ntpq -c "apeers"
. The module periodically scans for new/changed peers (default: every 60s). ntpd selects the best possible peer from the available peers to synchronize the clock. A minimum of at least 3 peers is required to properly identify the best possible peer.'
},
'mem.page_cache': {
- title: 'page cache (eBPF)',
- info: '监控对用于操作Linux页面缓存的函数的调用。当与应用程序的集成启用时,Netdata还根据应用程序显示页面缓存操作。'
+ title: '页面缓存(eBPF)',
+ info: 'Monitor calls to functions used to manipulate Linux page cache. When integration with apps is enabled, Netdata also shows page cache manipulation per application.'
},
'apps.page_cache': {
- title: 'page cache (eBPF)',
- info: 'Netdata还在内存子菜单中对这些图表进行了摘要。'
+ title: '页面缓存 (eBPF)',
+ info: 'Netdata also gives a summary for these charts in Memory submenu.'
},
'filesystem.vfs': {
title: 'vfs (eBPF)',
- info: '监控对用于操作文件系统的调用。当与应用程序的集成启用时,Netdata还根据应用程序显示虚拟文件系统。'
+ info: 'Monitor calls to functions used to manipulate File Systems. When integration with apps is enabled, Netdata also shows Virtual File System per application.'
},
'apps.vfs': {
title: 'vfs (eBPF)',
- info: 'Netdata还在文件系统子菜单中对这些图表进行了摘要。'
+ info: 'Netdata also gives a summary for these charts in Filesystem submenu.'
},
'filesystem.ext4_latency': {
- title: 'ext4 latency (eBPF)',
- info: '延迟是完成事件所需的时间。我们计算调用和返回时间之间的差异,这跨越磁盘I/O、文件系统操作(锁定、I/O)、运行队列延迟以及与监控操作相关的所有事件。基于BCC工具中的eBPF ext4dist。'
+ title: 'ext4延迟 (eBPF)',
+ info: 'Latency is the time it takes for an event to be completed. We calculate the difference between the calling and return times, this spans disk I/O, file system operations (lock, I/O), run queue latency and all events related to the monitored action. Based on the eBPF ext4dist from BCC tools.'
},
'filesystem.xfs_latency': {
- title: 'xfs latency (eBPF)',
- info: '延迟是完成事件所需的时间。我们计算调用和返回时间之间的差异,这跨越磁盘I/O、文件系统操作(锁定、I/O)、运行队列延迟以及与监控操作相关的所有事件。基于BCC工具中的eBPF xfsdist。'
+ title: 'xfs延迟 (eBPF)',
+ info: 'Latency is the time it takes for an event to be completed. We calculate the difference between the calling and return times, this spans disk I/O, file system operations (lock, I/O), run queue latency and all events related to the monitored action. Based on the eBPF xfsdist from BCC tools.'
},
'filesystem.nfs_latency': {
- title: 'nfs latency (eBPF)',
- info: '延迟是完成事件所需的时间。我们计算调用和返回时间之间的差异,这跨越磁盘I/O、文件系统操作(锁定、I/O)、运行队列延迟以及与监控操作相关的所有事件。基于BCC工具中的eBPF nfsdist。'
+ title: 'nfs延迟 (eBPF)',
+ info: 'Latency is the time it takes for an event to be completed. We calculate the difference between the calling and return times, this spans disk I/O, file system operations (lock, I/O), run queue latency and all events related to the monitored action. Based on the eBPF nfsdist from BCC tools.'
},
'filesystem.zfs_latency': {
- title: 'zfs latency (eBPF)',
- info: '延迟是完成事件所需的时间。我们计算调用和返回时间之间的差异,这跨越磁盘I/O、文件系统操作(锁定、I/O)、运行队列延迟以及与监控操作相关的所有事件。基于BCC工具中的eBPF zfsdist。'
+ title: 'zfs延迟 (eBPF)',
+ info: 'Latency is the time it takes for an event to be completed. We calculate the difference between the calling and return times, this spans disk I/O, file system operations (lock, I/O), run queue latency and all events related to the monitored action. Based on the eBPF zfsdist from BCC tools.'
},
'filesystem.btrfs_latency': {
- title: 'btrfs latency (eBPF)',
- info: '延迟是完成事件所需的时间。我们计算调用和返回时间之间的差异,获得最终结果的对数,并将一个值相加到各自的bin。基于BCC工具中的eBPF btrfsdist。'
+ title: 'btrfs延迟 (eBPF)',
+ info: 'Latency is the time it takes for an event to be completed. We calculate the difference between the calling and return times, we get the logarithmic for the final result and we sum one value to the respective bin. Based on the eBPF btrfsdist from BCC tools.'
},
'filesystem.file_access': {
- title: 'file access (eBPF)',
- info: '当与应用程序的集成启用时,Netdata还根据应用程序显示文件访问权限。'
+ title: '文件访问权限 (eBPF)',
+ info: 'When integration with apps is enabled, Netdata also shows file access per application.'
},
'apps.file_access': {
- title: 'file access (eBPF)',
- info: 'Netdata还在文件系统子菜单上提供了此图表的摘要(有关eBPF插件文件图表部分的更多详细信息)。'
+ title: '文件访问权限 (eBPF)',
+ info: 'Netdata also gives a summary for this chart on Filesystem submenu (more details on eBPF plugin file chart section).'
},
'ip.kernel': {
- title: 'kernel functions (eBPF)',
- info: '当ebpf.plugin
在主机上运行时,会制作下一个图表。当与应用程序的集成启用时,Netdata还根据应用程序显示对内核函数的调用。'
+ title: '内核函数 (eBPF)',
+ info: 'Next charts are made when ebpf.plugin
is running on your host. When integration with apps is enabled, Netdata also shows calls for kernel functions per application.'
},
'apps.net': {
- title: 'network',
- info: 'Netdata还总结了网络堆栈子菜单中的eBPF图表。'
+ title: '网络',
+ info: 'Netdata also gives a summary for eBPF charts in Networking Stack submenu.'
},
'system.ipc semaphores': {
- info: '系统V信号量是一种进程间通信(IPC)机制。 '+
+ info: 'System V信号量是一种进程间通信(IPC)机制. '+
'It allows processes or threads within a process to synchronize their actions. '+
- '它们通常用于监控共享内存段等系统资源的可用性。 ' +
- '有关详细信息,请参阅svipc(7)。 ' +
- '要查看主机IPC信号量信息,请运行ipcs -us
。对于限制,请运行ipcs -ls
。'
+ 'They are often used to monitor and control the availability of system resources such as shared memory segments. ' +
+ 'For details, see svipc(7). ' +
+ 'To see the host IPC semaphore information, run ipcs -us
. For limits, run ipcs -ls
.'
},
'system.ipc shared memory': {
- info: '系统共享内存是一种进程间通信(IPC)机制。 '+
- '它允许进程通过共享内存区域来通信信息。 '+
- '这是可用的最快进程间通信形式,因为当数据在进程之间传递时(没有复制),不会发生内核参与。 '+
- '通常,进程必须同步对共享内存对象的访问,例如使用POSIX信号量。 '+
- '有关详细信息,请参阅svipc(7)。 '+
- '要查看主机IPC共享内存信息,请运行ipcs -um
。对于限制,请运行ipcs -lm
。'
+ info: 'System V共享内存是一种进程间通信(IPC)机制. '+
+ 'It allows processes to communicate information by sharing a region of memory. '+
+ 'It is the fastest form of inter-process communication available since no kernel involvement occurs when data is passed between the processes (no copying). '+
+ 'Typically, processes must synchronize their access to a shared memory object, using, for example, POSIX semaphores. '+
+ 'For details, see svipc(7). '+
+ 'To see the host IPC shared memory information, run ipcs -um
. For limits, run ipcs -lm
.'
},
'system.ipc message queues': {
- info: '系统消息队列是一种进程间通信(IPC)机制。 '+
- '它允许进程以消息形式交换数据。 '+
- '有关详细信息,请参阅svipc(7)。 ' +
- '要查看主机IPC消息信息,请运行ipcs -uq
。对于限制,请运行ipcs -lq
。'
+ info: 'System V消息队列是一种进程间通信(IPC)机制. '+
+ 'It allow processes to exchange data in the form of messages. '+
+ 'For details, see svipc(7). ' +
+ 'To see the host IPC messages information, run ipcs -uq
. For limits, run ipcs -lq
.'
},
'system.interrupts': {
- info: 'Interrupts 是'+
- '通过外部设备(通常是I/O设备)或程序(运行进程)发送到CPU。 '+
- '它们告诉CPU停止当前的活动,并执行操作系统的相应部分。 '+
- 'Interrupt 类型包括 '+
- 'hardware (由硬件设备生成,以表明它们需要操作系统的注意), '+
- 'software (当程序想要请求操作系统执行系统调用时生成), 及 '+
- 'traps (由CPU本身生成,以指示发生了某些错误或情况,需要操作系统的帮助).'
+ info: 'Interrupts are signals '+
+ 'sent to the CPU by external devices (normally I/O devices) or programs (running processes). '+
+ 'They tell the CPU to stop its current activities and execute the appropriate part of the operating system. '+
+ 'Interrupt types are '+
+ 'hardware (generated by hardware devices to signal that they need some attention from the OS), '+
+ 'software (generated by programs when they want to request a system call to be performed by the operating system), and '+
+ 'traps (generated by the CPU itself to indicate that some error or condition occurred for which assistance from the operating system is needed).'
},
'system.softirqs': {
- info: '软件中断(或“softirqs”)是内核中最古老的延迟执行机制之一。 '+
- '内核执行的几项任务并不重要: '+
- '如有必要,它们可以被长时间推迟。 '+
- '在启用所有中断的情况下,可以执行可执行的任务 '+
- '(软件在硬件中断后模式化)。 '+
- '将它们从中断处理程序中取出有助于保持内核响应时间小。'
+ info: '软件中断(或“softirq”)是内核中最古老的延迟执行机制之一. '+
+ 'Several tasks among those executed by the kernel are not critical: '+
+ 'they can be deferred for a long period of time, if necessary. '+
+ 'The deferrable tasks can execute with all interrupts enabled '+
+ '(softirqs are patterned after hardware interrupts). '+
+ 'Taking them out of the interrupt handler helps keep kernel response time small.'
},
'cpu.softirqs': {
- info: '每个CPU的软件中断总数。 '+
- '要查看系统的总数,请检查 softirqs 查看'
+ info: '每个CPU的软件中断总数. '+
+ 'To see the total number for the system check the softirqs section.'
},
'cpu.interrupts': {
- info: '每个CPU的中断总数。 '+
- '要查看系统的总数,请查看中断部分。 '+
- '/proc/interrupts
的最后一列提供了中断描述或注册该中断处理程序的设备名称。'
+ info: '每个CPU的中断总数. '+
+ 'To see the total number for the system check the interrupts section. '+
+ 'The last column in /proc/interrupts
provides an interrupt description or the device name that registered the handler for that interrupt.'
},
'cpu.throttling': {
- info: ' CPU节流通常用于自动减慢计算机的速度 '+
- '在可能的情况下减少能源消耗并节省电池电量。'
+ info: ' CPU调节通常用于自动降低计算机速度'+
+ 'when possible to use less energy and conserve battery.'
},
'cpu.cpuidle': {
- info: '空闲状态(C-states) '+
- '用于在处理器闲置时节省电力。'
+ info: 'Idle States (C-states) '+
+ 'are used to save power when the processor is idle.'
},
'services.net': {
- title: 'network (eBPF)',
+ title: '网络 (eBPF)',
},
'services.page_cache': {
- title: 'pache cache (eBPF)',
+ title: 'Pache缓存 (eBPF)',
},
};
@@ -1107,17 +1072,10 @@ var cgroupMemLimitIsSet = 0;
netdataDashboard.context = {
'system.cpu': {
info: function (os) {
- void (os);
- return 'CPU 使用率总表 (全部核心)。 当数值为 100% 时,表示您的 CPU 非常忙碌没有闲置空间。您可以在 CPUs 区段及以及 应用程序 区段深入了解每个核心与应用程序的使用情况。'
+ void(os);
+ return 'CPU 使用率总表 (全部核心)。 当数值为 100% 时,表示您的 CPU 非常忙碌没有闲置空间。您可以在 CPU 区段及以及 应用程序 区段深入了解每个核心与应用程序的使用情况。'
+ netdataDashboard.sparkline('所有的 Swap I/O.
'+ - '输入-系统从磁盘交换到RAM的页面。 '+ - '输出 - 系统已从 RAM 交换到磁盘的页面。' + info: '所有的 Swap I/O. (netdata 会合并显示输入
与 输出
。如果图表中没有任何数值,则表示为 0。 - 您可以修改这一页的设定,让图表显示固定的维度。'
},
'system.pgfaults': {
- info: '所有的页面错误。主要页面错误表示系统正在使用其交换。您可以在应用程序监控部分找到哪些应用程序使用交换。'
+ info: '所有的 Page 错误. Major page faults indicates that the system is using its swap. You can find which applications use the swap at the Applications Monitoring section.'
},
'system.entropy': {
colors: '#CC22AA',
- info: 'Entropy,主要是用在密码学的乱数集区 (/dev/random) 如果Entropy的集区为空,需要乱数的程序可能会导致执行变慢 (这取决于每个程序使用的介面),等待集区补充。在理想情况下,有高度熵需求的系统应该要具备专用的硬体装置 (例如 TPM 装置)。您也可以安装纯软体的方案,例如 haveged
,通常这些方案只会使用在伺服器上。'
+ info: '熵 (Entropy),主要是用在密码学的乱数集区 (/dev/random)。如果熵的集区为空,需要乱数的程序可能会导致执行变慢 (这取决于每个程序使用的介面),等待集区补充。在理想情况下,有高度熵需求的系统应该要具备专用的硬体装置 (例如 TPM 装置)。您也可以安装纯软体的方案,例如 haveged
,通常这些方案只会使用在伺服器上。'
},
'system.clock_sync_state': {
- info:'系统时钟同步状态。 '+ - '强烈建议时钟与可靠的NTP服务器同步。否则, '+ - '这会导致不可预测的问题。 '+ - 'NTP守护进程可能需要几分钟(通常最多17分钟)才能选择要同步的服务器。 '+ - '
状态图:0-不同步,1-同步。
' + info:'系统时钟同步状态. '+ + 'It is strongly recommended having the clock in sync with reliable NTP servers. Otherwise, '+ + 'it leads to unpredictable problems. '+ + 'It can take several minutes (usually up to 17) before NTP daemon selects a server to synchronize with. '+ + '
State map: 0 - not synchronized, 1 - synchronized.
' }, 'system.clock_sync_offset': { - info: '典型的NTP客户端定期轮询一个或多个NTP服务器。 '+ - '客户必须计算其 '+ - '时间偏移 '+ - '和往返延迟。 '+ - '时间偏移是两个时钟之间绝对时间的差异。' + info: '典型的NTP客户端定期轮询一个或多个NTP服务器. '+ + 'The client must compute its '+ + 'time offset '+ + 'and round-trip delay. '+ + 'Time offset is the difference in absolute time between the two clocks.' }, 'system.forks': { @@ -1205,45 +1161,33 @@ netdataDashboard.context = { 'system.intr': { colors: '#DD5555', - info: 'CPU 中断的总数。透过检查system.interrupts
,得知每一个中断的细节资讯。在 CPUs 区段提供每一个 CPU 核心的中断情形。per CPU core.'
+ info: 'CPU 中断的总数。透过检查 system.interrupts
,得知每一个中断的细节资讯。在 CPU 区段提供每一个 CPU 核心的中断情形。'
},
'system.interrupts': {
- info: 'CPU 中断的细节。在 CPUs 区段中,依据每个 CPU 核心分析中断。 per CPU core. '+
- '/proc/interrupts
的最后一列提供了中断描述或注册该中断处理程序的设备名称。'
+ info: 'CPU 中断的细节。在 CPU 区段中,依据每个 CPU 核心分析中断。'
},
'system.hardirq_latency': {
- info: '维修硬件中断的总时间。基于BCC工具中的eBPF hardirqs。'
+ info: '维护硬件中断所花费的总时间。基于eBPF hardirqs from BCC tools.'
},
'system.softirqs': {
- info: '系统中的软件中断总数。 '+ - '在CPU部分,对每个CPU内核进行了分析。
'+ - 'HI - 高优先级任务组。 '+ - 'TIMER - 与计时器中断相关的任务组。 '+ - 'NET_TX,NET_RX-用于网络传输和接收处理。 '+ - 'BLOCK - 处理阻止I/O完成事件。 '+ - 'IRQ_POLL - IO子系统用于提高性能(块设备的一种类似NAPI的方法)。 '+ - 'TASKLET - 处理常规任务。 '+ - 'SCHED - 调度程序用于执行负载平衡和其他调度任务。 '+ - 'HRTIMER - 用于高分辨率计时器。 '+ - 'RCU - 执行读拷贝更新 (RCU) 处理。
' - + info: 'CPU softirqs 的细节。在 CPU 区段中,依据每个 CPU 核心分析 softirqs。' }, 'system.softirq_latency': { - info: '维修软件中断的总时间。基于BCC工具中的eBPF softirqs。' + info: '维护软件中断所花费的总时间。基于eBPFsoftirqs from BCC tools.' }, 'system.processes': { - info: '系统程序。
'+ - 'Running - 显示正在 CPU 中的程序。'+ - 'Blocked - 显示目前被挡下无法进入 CPU 执行的程序,例如:正在等待磁碟完成动作,才能继续。
' + info: '系统流程.
'+ + 'Running - running or ready to run (runnable). '+ + 'Blocked - currently blocked, waiting for I/O to complete.
' }, 'system.active_processes': { - info: '所有的系统程序。' + info: '系统中的进程总数.' }, 'system.ctxt': { @@ -1286,64 +1230,64 @@ netdataDashboard.context = { }, 'system.swapcalls': { - info: '监控对函数swap_readpage
和swap_writepage
的调用。当启用时,Netdata还显示应用程序的交换访问权限。'
+ info: '监视对函数的调用 swap_readpage
and swap_writepage
. When integration with apps is enabled, Netdata also shows swap access per application.'
},
'system.ipc_semaphores': {
- info: '分配的系统V IPC信号量。 '+
- '/proc/sys/kernel/sem
文件(第二个字段)规定了所有信号量集中信号量的系统范围限制。'
+ info: '分配的System V IPC信号量的数量. '+
+ 'The system-wide limit on the number of semaphores in all semaphore sets is specified in /proc/sys/kernel/sem
file (2nd field).'
},
'system.ipc_semaphore_arrays': {
- info: '使用过的System V IPC信号量阵列(集)的数量。信号量支持信号量集,其中每个信号量都是计数信号量。 '+
- '因此,当应用程序请求信号量时,内核会以集合的方式释放它们。 '+
- '/proc/sys/kernel/sem
文件(第4个字段)中指定了信号量集最大数量的系统范围限制。'
+ info: 'Number of used System V IPC semaphore arrays (sets). Semaphores support semaphore sets where each one is a counting semaphore. '+
+ 'So when an application requests semaphores, the kernel releases them in sets. '+
+ 'The system-wide limit on the maximum number of semaphore sets is specified in /proc/sys/kernel/sem
file (4th field).'
},
'system.shared_memory_segments': {
- info: '分配的System V IPC内存段数。 '+
- '/proc/sys/kernel/shmmni
文件中指定了可以创建的系统范围内共享内存段的最大数量。'
+ info: '分配的System V IPC内存段数. '+
+ 'The system-wide maximum number of shared memory segments that can be created is specified in /proc/sys/kernel/shmmni
file.'
},
'system.shared_memory_bytes': {
- info: 'System V IPC内存段目前使用的内存量。 '+
- '可以创建的最大共享内存段大小的运行时限制在/proc/sys/kernel/shmmax
文件中指定。'
+ info: 'System V IPC内存段当前使用的内存量. '+
+ 'The run-time limit on the maximum shared memory segment size that can be created is specified in /proc/sys/kernel/shmmax
file.'
},
'system.shared_memory_calls': {
- info: '监控对函数shmget
、shmat
、shmdt
和shmctl
的调用。当与应用程序的集成启用时,Netdata还显示每个应用程序的共享内存系统调用使用情况。'
+ info: '监视对函数的调用 shmget
, shmat
, shmdt
, and shmctl
. When integration with apps is enabled, Netdata also shows shared memory system call usage per application.'
},
'system.message_queue_messages': {
- info: '系统V IPC消息队列中当前存在的消息数量。'
+ info: '当前存在于System V IPC消息队列中的消息数。'
},
'system.message_queue_bytes': {
- info: '系统V IPC消息队列中消息当前使用的内存量。'
+ info: 'System V IPC消息队列中消息当前使用的内存量。'
},
'system.uptime': {
- info: '系统已运行的时间量,包括暂停的时间。'
+ info: '系统已运行的时间量,包括挂起所用的时间.'
},
'system.process_thread': {
- title : 'Task creation',
- info: 'do_fork,或者kernel_clone
(如果您运行的内核更新于5.16)来创建新任务的次数,这是用于定义内核内进程和任务的常用名称。Netdata标识监控跟踪点sched_process_fork
的线程。此图表由eBPF插件提供。'
+ title : '任务创建',
+ info: '其中一项的次数 do_fork, or kernel_clone
if you are running kernel newer than 5.9.16, is called to create a new task, which is the common name used to define process and tasks inside the kernel. Netdata identifies the threads monitoring tracepoint sched_process_fork
. This chart is provided by eBPF plugin.'
},
'system.exit': {
- title : 'Exit monitoring',
- info: '呼吁负责关闭的功能(do_exit)和发布(release_task)任务。此图表由eBPF插件提供。'
+ title : '退出监控',
+ info: '调用负责关闭的函数 (do_exit) and releasing (release_task) tasks. This chart is provided by eBPF plugin.'
},
'system.task_error': {
- title : 'Task error',
- info: '创建新进程或线程的错误数量。此图表由eBPF插件提供。'
+ title : '任务错误',
+ info: '创建新进程或线程的错误数。此图表由eBPF插件提供.'
},
'system.process_status': {
- title : 'Task status',
- info: '创建的进程数量和每个周期创建的线程数量(process
维度)之间的差异,它还显示了在系统上运行的可能僵尸进程的数量。此图表由eBPF插件提供。'
+ title : '任务状态',
+ info: '每个期间创建的进程数和创建的线程数之间的差异(process
dimension), it also shows the number of possible zombie process running on system. This chart is provided by eBPF plugin.'
},
// ------------------------------------------------------------------------
@@ -1371,41 +1315,41 @@ netdataDashboard.context = {
},
'cpu.core_throttling': {
- info: '根据CPU的核心温度对CPU的时钟速度所做的调整次数。'
+ info: '根据CPU核心温度对CPU时钟速度进行的调整次数.'
},
'cpu.package_throttling': {
- info: '根据CPU的封装(芯片)温度对CPU的时钟速度进行的调整次数。'
+ info: '根据CPU的封装(芯片)温度对CPU时钟速度进行的调整次数.'
},
'cpufreq.cpufreq': {
- info: '频率测量CPU每秒执行的周期数。'
+ info: '频率测量CPU每秒执行的周期数.'
},
'cpuidle.cpuidle': {
- info: '在C-states中花费的时间百分比'
+ info: '在C状态花费的时间百分比.'
},
// ------------------------------------------------------------------------
// MEMORY
'mem.ksm': {
- info: '内存页面合并统计数据。 '+ - '共享与共享的高比率表示良好的共享, '+ - '但未共享与共享的高比率表明浪费了精力。
'+ - '共享 - 使用共享页面。 '+ - '未共享 - 内存不再共享(页面是唯一的,但反复检查合并)。 '+ - '共享-当前共享的内存(有多少个网站正在共享页面,即保存了多少)。 '+ - '易变 - 易变页面(变化太快,无法放在树上)。
' + info: '内存页合并统计信息. '+ + 'A high ratio of Sharing to Shared indicates good sharing, '+ + 'but a high ratio of Unshared to Sharing indicates wasted effort.
'+ + 'Shared - used shared pages. '+ + 'Unshared - memory no longer shared (pages are unique but repeatedly checked for merging). '+ + 'Sharing - memory currently shared (how many more sites are sharing the pages, i.e. how much saved). '+ + 'Volatile - volatile pages (changing too fast to be placed in a tree).
' }, 'mem.ksm_savings': { heads: [ netdataDashboard.gaugeChart('Saved', '12%', 'savings', '#0099CC') ], - info: 'KSM节省的内存量。
'+ - '节省 - 保存内存。 '+ - '提供 - 标记为可合并的内存。
' + info: 'KSM保存的内存量.
'+ + 'Savings - 保存的内存. '+ + 'Offered - 标记为可合并的内存.
' }, 'mem.ksm_ratios': { @@ -1425,23 +1369,23 @@ netdataDashboard.context = { + ' role="application">'; } ], - info: 'The effectiveness of KSM. '+ - '这是当前合并的可合并页面的百分比。' + info: 'KSM的有效性. '+ + '这是当前合并的可合并页面的百分比.' }, 'mem.zram_usage': { - info: 'ZRAM总RAM使用指标。ZRAM使用一些内存来存储有关存储内存页面的元数据,从而引入了与磁盘大小成正比的开销。它排除了相同元素填充的页面,因为没有为它们分配内存。' + info: 'ZRAM total RAM usage metrics. ZRAM uses some memory to store metadata about stored memory pages, thus introducing an overhead which is proportional to disk size. It excludes same-element-filled-pages since no memory is allocated for them.' }, 'mem.zram_savings': { - info: '显示原始和压缩内存数据大小。' + info: '显示原始和压缩内存数据大小.' }, 'mem.zram_ratio': { heads: [ netdataDashboard.gaugeChart('Compression Ratio', '12%', 'ratio', '#0099CC') ], - info: '压缩率,计算为100 * original_size / compressed_size
。更多意味着更好的压缩和更多的RAM节省。'
+ info: 'Compression ratio, calculated as 100 * original_size / compressed_size
. More means better compression and more RAM savings.'
},
'mem.zram_efficiency': {
@@ -1451,17 +1395,17 @@ netdataDashboard.context = {
commonMin: true,
commonMax: true,
valueRange: "[0, 100]",
- info: '内存使用效率,计算为100 * compressed_size / total_mem_used
。'
+ info: 'Memory usage efficiency, calculated as 100 * compressed_size / total_mem_used
.'
},
'mem.pgfaults': {
- info: '页面错误是一种中断, '+ - '称为陷阱,当运行中的程序访问内存页面时,由计算机硬件引发 '+ - '映射到虚拟地址空间,但实际上没有加载到主内存中。
'+ - '次要-页面在生成故障时加载到内存中, '+ - '但在内存管理单元中未标记为正在加载内存中。 '+ - '主要-当系统需要从磁盘加载内存页面或交换内存时生成。' + info: 'A page fault is a type of interrupt, '+ + 'called trap, raised by computer hardware when a running program accesses a memory page '+ + 'that is mapped into the virtual address space, but not actually loaded into main memory.
'+ + 'Minor - the page is loaded in memory at the time the fault is generated, '+ + 'but is not marked in the memory management unit as being loaded in memory. '+ + 'Major - generated when the system needs to load the memory page from disk or swap memory.' }, 'mem.committed': { @@ -1470,30 +1414,30 @@ netdataDashboard.context = { }, 'mem.oom_kill': { - info: '被杀死的进程数量 '+ - '内存不足杀手。 '+ - '当系统缺少可用内存时,内核的OOM杀手会被召唤,并且 '+ - '无法在不杀死一个或多个进程的情况下进行。 '+ - '它试图选择其消亡将释放最多记忆的过程,同时 '+ - '给系统用户带来最少的痛苦。 '+ - '此计数器还包括容器中超过内存限制的进程。' + info: '被终止的进程数 '+ + 'Out of Memory Killer. '+ + 'The kernel\'s OOM killer is summoned when the system runs short of free memory and '+ + 'is unable to proceed without killing one or more processes. '+ + 'It tries to pick the process whose demise will free the most memory while '+ + 'causing the least misery for users of the system. '+ + 'This counter also includes processes within containers that have exceeded the memory limit.' }, 'mem.numa': { - info: 'NUMA平衡统计数据。
'+ - '本地-通过此节点上的进程成功分配了页面。 '+ - '外国 - 最初用于分配给另一个节点的页面。 '+ - '交错-交错策略页面已成功分配给此节点。 '+ - '其他-通过另一个节点上的进程在这个节点上分配的页面。 '+ - 'PteUpdates - 标记为NUMA提示故障的基页。 '+ - 'HugePteUpdates - 标记为NUMA提示故障的透明大页面。 '+ - '与pte_updates相结合,可以计算标记的总地址空间。 '+ - 'HintFaults - NUMA暗示被困的故障。 '+ - 'HintFaultsLocal - 提示本地节点的故障。 '+ - '结合提示故障,可以计算局部故障与远程故障的百分比。 '+ - '很高比例的局部提示故障表明工作量更接近收敛。 '+ - 'PagesMigrated - 页面被迁移,因为它们放错了地方。 '+ - '由于迁移是一种复制操作,它贡献了NUMA平衡产生的开销的最大部分。
' + info: 'NUMA平衡统计.
'+ + 'Local - pages successfully allocated on this node, by a process on this node. '+ + 'Foreign - pages initially intended for this node that were allocated to another node instead. '+ + 'Interleave - interleave policy pages successfully allocated to this node. '+ + 'Other - pages allocated on this node, by a process on another node. '+ + 'PteUpdates - base pages that were marked for NUMA hinting faults. '+ + 'HugePteUpdates - transparent huge pages that were marked for NUMA hinting faults. '+ + 'In Combination with pte_updates the total address space that was marked can be calculated. '+ + 'HintFaults - NUMA hinting faults that were trapped. '+ + 'HintFaultsLocal - hinting faults that were to local nodes. '+ + 'In combination with HintFaults, the percentage of local versus remote faults can be calculated. '+ + 'A high percentage of local hinting faults indicates that the workload is closer to being converged. '+ + 'PagesMigrated - pages were migrated because they were misplaced. '+ + 'As migration is a copying operation, it contributes the largest part of the overhead created by NUMA balancing.
' }, 'mem.available': { @@ -1505,260 +1449,260 @@ netdataDashboard.context = { }, 'mem.kernel': { - info: '内核使用的总内存量。
'+ - 'Slab - 内核用于缓存数据结构供自己使用。 '+ - 'KernelStack - 为内核完成的每个任务分配。 '+ - 'PageTables - 专用于最低级别的页面表(页面表用于将虚拟地址转换为物理内存地址)。 '+ - 'VmallocUsed-用作虚拟地址空间。 '+ - 'Percpu - 分配给用于支持每个CPU分配的每个CPU分配器(不包括元数据成本)。 '+ - '当您创建每个CPU变量时,系统上的每个处理器都会获得该变量的副本。
' + info: '内核使用的内存总量.
'+ + 'Slab - used by the kernel to cache data structures for its own use. '+ + 'KernelStack - allocated for each task done by the kernel. '+ + 'PageTables - dedicated to the lowest level of page tables (A page table is used to turn a virtual address into a physical memory address). '+ + 'VmallocUsed - being used as virtual address space. '+ + 'Percpu - allocated to the per-CPU allocator used to back per-CPU allocations (excludes the cost of metadata). '+ + 'When you create a per-CPU variable, each processor on the system gets its own copy of that variable.
' }, 'mem.slab': { - info: '平板内存统计。
'+ - '
可回收 - 内核可以重用的内存量。 '+ - '不可回收 - 即使内核缺乏内存,也无法重用。
' + info: 'Slab memory statistics.
'+ + '
Reclaimable - amount of memory which the kernel can reuse. '+ + 'Unreclaimable - can not be reused even when the kernel is lacking memory.
' }, 'mem.hugepages': { - info: '专用(或直接)大型页面是为配置为使用大型页面的应用程序保留的内存。巨页使用内存,即使有免费的巨页可用。' + info: 'Dedicated (or Direct) HugePages is memory reserved for applications configured to utilize huge pages. Hugepages are used memory, even if there are free hugepages available.' }, 'mem.transparent_hugepages': { - info: '透明巨页(THP)用巨页支持虚拟内存,支持页面大小的自动推广和降级。它适用于匿名内存映射和tmpfs/shmem的所有应用程序。' + info: 'Transparent HugePages (THP) is backing virtual memory with huge pages, supporting automatic promotion and demotion of page sizes. It works for all applications for anonymous memory mappings and tmpfs/shmem.' }, 'mem.hwcorrupt': { - info: '存在物理损坏问题的内存量,由ECC识别,并由内核预留,使其不被使用。' + info: '存在物理损坏问题的内存量,由 ECC and set aside by the kernel so it does not get used.' }, 'mem.ecc_ce': { - info: '可更正(单位)ECC错误的数量。 '+ - '这些错误不影响系统的正常运行 '+ - '因为他们仍在纠正。 '+ - '周期性可更正错误可能表明其中一个内存模块正在缓慢故障。' + info: '存在物理损坏问题的内存量,由. '+ + 'These errors do not affect the normal operation of the system '+ + 'because they are still being corrected. '+ + 'Periodic correctable errors may indicate that one of the memory modules is slowly failing.' }, 'mem.ecc_ue': { - info: '无法更正(多位)ECC错误的数量。 '+ - '无法更正的错误是一个致命的问题,通常会导致操作系统崩溃。' + info: '无法纠正的(多位)ECC错误数. '+ + 'An uncorrectable error is a fatal issue that will typically lead to an OS crash.' }, 'mem.pagetype_global': { - info: '以一定大小的块为单位的可用内存量。' + info: '在一定大小的块中可用的内存量.' }, 'mem.cachestat_ratio': { - info: '当处理器需要读取或写入主内存中的位置时,它会检查页面缓存中的相应条目。如果条目在那里,则发生了页面缓存命中,并且读取来自缓存。如果没有条目,则会发生页面缓存丢失,内核会分配一个新的条目并从磁盘中复制数据。Netdata计算内存上缓存的访问文件的百分比。计算的比率是计算访问的缓存页面(不计算脏页面和因读取丢失而添加的页面)除以没有脏页面的总访问量。' + info: 'When the processor needs to read or write a location in main memory, it checks for a corresponding entry in the page cache. If the entry is there, a page cache hit has occurred and the read is from the cache. If the entry is not there, a page cache miss has occurred and the kernel allocates a new entry and copies in data from the disk. Netdata calculates the percentage of accessed files that are cached on memory. The ratio is calculated counting the accessed cached pages (without counting dirty pages and pages added because of read misses) divided by total access without dirty pages.' }, 'mem.cachestat_dirties': { - info: '肮脏(修改)页面缓存的数量。引入后修改的页面缓存中的页面称为脏页面。由于页面缓存中的非脏页面在辅助存储(例如硬盘驱动器或固态驱动器)中具有相同的副本,因此丢弃和重用其空间比分页应用程序内存快得多,通常比将脏页面冲入辅助存储并重复使用其空间更可取。' + info: 'Number of dirty(modified) pages cache. Pages in the page cache modified after being brought in are called dirty pages. Since non-dirty pages in the page cache have identical copies in secondary storage (e.g. hard disk drive or solid-state drive), discarding and reusing their space is much quicker than paging out application memory, and is often preferred over flushing the dirty pages into secondary storage and reusing their space.' }, 'mem.cachestat_hits': { - info: '当处理器需要读取或写入主内存中的位置时,它会检查页面缓存中的相应条目。如果条目在那里,则发生了页面缓存命中,并且读取来自缓存。点击量显示未修改的访问页面(我们排除脏页面),此计数还不包括最近插入供阅读的页面。' + info: 'When the processor needs to read or write a location in main memory, it checks for a corresponding entry in the page cache. If the entry is there, a page cache hit has occurred and the read is from the cache. Hits show pages accessed that were not modified (we are excluding dirty pages), this counting also excludes the recent pages inserted for read.' }, 'mem.cachestat_misses': { - info: '当处理器需要读取或写入主内存中的位置时,它会检查页面缓存中的相应条目。如果没有条目,则发生页面缓存丢失,缓存分配新条目并复制主内存的数据。缺少与编写无关的内存的页面插入计数。' + info: 'When the processor needs to read or write a location in main memory, it checks for a corresponding entry in the page cache. If the entry is not there, a page cache miss has occurred and the cache allocates a new entry and copies in data for the main memory. Misses count page insertions to the memory not related to writing.' }, 'mem.sync': { - info: '系统调用sync()和syncfs(),这将文件系统缓冲区刷新到存储设备。这些通话可能会造成性能扰动。sync()
调用基于BCC工具中的eBPF syncsnoop。'
+ info: 'System calls for sync() and syncfs() which flush the file system buffers to storage devices. Performance perturbations might be caused by these calls. The sync()
calls are based on the eBPF syncsnoop from BCC tools.'
},
'mem.file_sync': {
- info: '系统调用fsync()和fdatasync()传输磁盘设备上文件的所有修改页面缓存。这些通话会阻止,直到设备报告转接已完成。'
+ info: 'System calls for fsync() and fdatasync() transfer all modified page caches for the files on disk devices. These calls block until the device reports that the transfer has been completed.'
},
'mem.memory_map': {
- info: '系统调用msync(),该更改刷新了对映射文件的核心副本所做的更改。'
+ info: 'System calls for msync() which flushes changes made to the in-core copy of a file that was mapped.'
},
'mem.file_segment': {
- info: 'sync_file_range()的系统调用允许在将文件描述符fd引用的打开文件与磁盘同步时进行精细控制。这种系统调用极其危险,不应用于便携式程序。'
+ info: 'System calls for sync_file_range() permits fine control when synchronizing the open file referred to by the file descriptor fd with disk. This system call is extremely dangerous and should not be used in portable programs.'
},
'filesystem.dc_hit_ratio': {
- info: '目录缓存中存在的文件访问百分比。100%表示访问的每个文件都存在于目录缓存中。如果目录缓存中不存在文件1)它们不存在于文件系统中,2)以前没有访问过文件。阅读更多关于目录缓存的信息。当与应用程序的集成启用时,Netdata还根据应用程序显示目录缓存。'
+ info: 'Percentage of file accesses that were present in the directory cache. 100% means that every file that was accessed was present in the directory cache. If files are not present in the directory cache 1) they are not present in the file system, 2) the files were not accessed before. Read more about directory cache. When integration with apps is enabled, Netdata also shows directory cache per application.'
},
'filesystem.dc_reference': {
- info: '文件访问计数器。引用
是当有文件访问且文件不存在于目录缓存中时。Miss
是当有文件访问且文件系统中找不到文件时。慢
是指有文件访问,文件存在于文件系统中,但不存在于目录缓存中。阅读更多关于目录缓存的信息。'
+ info: 'Counters of file accesses. Reference
is when there is a file access and the file is not present in the directory cache. Miss
is when there is file access and the file is not found in the filesystem. Slow
is when there is a file access and the file is present in the filesystem but not in the directory cache. Read more about directory cache.'
},
'md.health': {
- info: '每个MD阵列的故障设备数量。 '+
- 'Netdata从md状态行的[n/m]字段检索此数据。 '+
- '这意味着理想情况下,数组将有n设备,但目前,m设备正在使用中。 '+
- '失败磁盘
是n-m。'
+ info: 'Number of failed devices per MD array. '+
+ 'Netdata retrieves this data from the [n/m] field of the md status line. '+
+ 'It means that ideally the array would have n devices however, currently, m devices are in use. '+
+ 'failed disks
is n-m.'
},
'md.disks': {
- info: '处于使用和处于停机状态的设备数量。 '+
- 'Netdata从md状态行的[n/m]字段检索此数据。 '+
- '这意味着理想情况下,数组将有n设备,但目前,m设备正在使用中。 '+
- 'inuse
是m,down
是n-m。'
+ info: 'Number of devices in use and in the down state. '+
+ 'Netdata retrieves this data from the [n/m] field of the md status line. '+
+ 'It means that ideally the array would have n devices however, currently, m devices are in use. '+
+ 'inuse
is m, down
is n-m.'
},
'md.status': {
- info: '完成正在进行的业务的进展。'
+ info: 'Completion progress of the ongoing operation.'
},
'md.expected_time_until_operation_finish': {
- info: '完成正在进行的操作的预计时间。 '+
- '时间只是一个近似值,因为操作速度将根据其他I/O要求而变化。'
+ info: 'Estimated time to complete the ongoing operation. '+
+ 'The time is only an approximation since the operation speed will vary according to other I/O demands.'
},
'md.operation_speed': {
- info: '持续运营的速度。 '+
- '/proc/sys/dev/raid/{speed_limit_min,speed_limit_max}
文件中指定了系统范围的重建速度限制。 '+
- '这些选项有利于调整重建过程,并可能增加整体系统负载、cpu和内存使用率。'
+ info: 'Speed of the ongoing operation. '+
+ 'The system-wide rebuild speed limits are specified in /proc/sys/dev/raid/{speed_limit_min,speed_limit_max}
files. '+
+ 'These options are good for tweaking rebuilt process and may increase overall system load, cpu and memory usage.'
},
'md.mismatch_cnt': {
- info: '在执行检查和修复时,以及可能在执行重新同步时,md将计算发现的错误数量。 '+
- '不匹配计数记录在sysfs
文件md/mismatch_cnt
中。 '+
- '此值是重写或(对于check)将重写的扇区数量。 '+
- '它可能大于页面扇区数量的因子的实际错误数量。 '+
- '在RAID1或RAID10上无法非常可靠地解释不匹配,特别是在设备用于交换时。 '+
- '在真正干净的RAID5或RAID6阵列上,任何不匹配都应表明在某些级别上存在硬件问题- '+
- '软件问题绝不应导致此类不匹配。 '+
- '有关详细信息,请参阅md(4)。'
+ info: 'When performing check and repair, and possibly when performing resync, md will count the number of errors that are found. '+
+ 'A count of mismatches is recorded in the sysfs
file md/mismatch_cnt
. '+
+ 'This value is the number of sectors that were re-written, or (for check) would have been re-written. '+
+ 'It may be larger than the number of actual errors by a factor of the number of sectors in a page. '+
+ 'Mismatches can not be interpreted very reliably on RAID1 or RAID10, especially when the device is used for swap. '+
+ 'On a truly clean RAID5 or RAID6 array, any mismatches should indicate a hardware problem at some level - '+
+ 'software issues should never cause such a mismatch. '+
+ 'For details, see md(4).'
},
'md.flush': {
- info: '每个MD阵列的刷新计数。基于BCC工具中的eBPF mdflush。'
+ info: 'Number of flush counts per MD array. Based on the eBPF mdflush from BCC tools.'
},
// ------------------------------------------------------------------------
// IP
'ip.inerrors': {
- info: '接收IP数据包时遇到的错误数量。
' + - 'NoRoutes - 由于没有发送路线而删除的数据包。 ' + - 'Truncated - 由于数据报帧没有携带足够的数据而被丢弃的数据包。 ' + - '校验和-因校验和错误而删除的数据包。' + info: '在接收IP数据包期间遇到的错误数.
' + + 'NoRoutes - packets that were dropped because there was no route to send them. ' + + 'Truncated - packets which is being discarded because the datagram frame didn\'t carry enough data. ' + + 'Checksum - packets that were dropped because they had wrong checksum.' }, 'ip.mcast': { - info: '系统中的总多播流量。' + info: '系统中的总多播流量.' }, 'ip.mcastpkts': { - info: '系统中传输的多播数据包总数。' + info: '系统中传输的多播数据包总数.' }, 'ip.bcast': { - info: '系统中的总广播流量。' + info: '系统中的总广播流量.' }, 'ip.bcastpkts': { - info: '系统中传输的广播数据包总数。' + info: '系统中传输的广播数据包总数.' }, 'ip.ecnpkts': { - info: '系统中设置了ECN位的接收IP数据包总数。
'+ - 'CEP - 遇到拥堵。 '+ - 'NoECTP - 不支持ECN的运输。 '+ - 'ECTP0和ECTP1-支持ECN的传输。
' + info: '系统中设置ECN位的接收IP数据包总数.
'+ + 'CEP - congestion encountered. '+ + 'NoECTP - non ECN-capable transport. '+ + 'ECTP0 and ECTP1 - ECN capable transport.
' }, 'ip.tcpreorders': { - info: 'TCP通过按正确的顺序排序数据包或防止数据包失序 '+ - '通过请求重新传输出序的数据包。
'+ - '时间戳 - 使用时间戳选项检测到重新排序。 '+ - 'SACK - 使用选择性确认算法检测到重新排序。 '+ - 'FACK - 使用正向确认算法检测到重新排序。 '+ - 'Reno - 使用快速重新传输算法检测到重新排序。
' + info: 'TCP通过按正确的顺序对数据包进行排序或 '+ + 'by requesting the retransmission of out-of-order packets.
'+ + 'Timestamp - detected re-ordering using the timestamp option. '+ + 'SACK - detected re-ordering using Selective Acknowledgment algorithm. '+ + 'FACK - detected re-ordering using Forward Acknowledgment algorithm. '+ + 'Reno - detected re-ordering using Fast Retransmit algorithm.
' }, 'ip.tcpofo': { - info: 'TCP维护一个无序队列,以在TCP通信中保留无序数据包。
'+ - 'InQueue - TCP层收到一个无序的数据包,并有足够的内存排队。 '+ - 'Droppped - TCP层收到一个无序的数据包,但没有足够的内存,因此将其删除。 '+ - '合并 - 收到的无序数据包与上一个数据包具有覆盖。 '+ - '覆盖部分将被删除。所有这些数据包也将计入InQueue。 '+ - '修剪 - 由于套接字缓冲区溢出,数据包从无序队列中删除。
' + info: 'TCP维护一个无序队列,以保持TCP通信中无序的数据包.
'+ + 'InQueue - the TCP layer receives an out-of-order packet and has enough memory to queue it. '+ + 'Dropped - the TCP layer receives an out-of-order packet but does not have enough memory, so drops it. '+ + 'Merged - the received out-of-order packet has an overlay with the previous packet. '+ + 'The overlay part will be dropped. All these packets will also be counted into InQueue. '+ + 'Pruned - packets dropped from out-of-order queue because of socket buffer overrun.
' }, 'ip.tcpsyncookies': { info: 'SYN cookies '+ - '用于缓解SYN洪水。
'+ - '收到-发送SYN Cookie后,它回到我们身边并通过了支票。'+ - '发送 - 应用程序无法足够快地接受连接,因此内核无法存储 '+ - '此连接队列中的条目。它没有删除它,而是向客户端发送了一个SYN cookie。 '+ - '失败-从SYN Cookie解码的MSS无效。当这个计数器递增时, '+ - '接收的数据包不会被视为SYN Cookie。
' + 'are used to mitigate SYN flood.'+ + 'Received - after sending a SYN cookie, it came back to us and passed the check. '+ + 'Sent - an application was not able to accept a connection fast enough, so the kernel could not store '+ + 'an entry in the queue for this connection. Instead of dropping it, it sent a SYN cookie to the client. '+ + 'Failed - the MSS decoded from the SYN cookie is invalid. When this counter is incremented, '+ + 'the received packet won’t be treated as a SYN cookie.
' }, 'ip.tcpmemorypressures': { - info: '套接字因非致命内存分配失败而施加内存压力的次数 '+ - '(内核试图通过减少发送缓冲区等来解决这个问题)。' + info: 'The number of times a socket was put in memory pressure due to a non fatal memory allocation failure '+ + '(the kernel attempts to work around this situation by reducing the send buffers, etc).' }, 'ip.tcpconnaborts': { - info: 'TCP连接中止。
'+ - 'BadData - 当连接在FIN_WAIT1上且内核收到数据包时发生 '+ - '此连接的序列号超过最后一个序列号- '+ - '内核使用RST响应(关闭连接)。 '+ - 'UserClosed - 当内核在已关闭的连接上接收数据并 '+ - '用RST回复。 '+ - 'NoMemory - 当Orphan插太多(未连接到fd)和 '+ - '内核必须删除连接——有时它会发送RST,有时不会。 '+ - '超时 - 当连接超时发生。 '+ - 'Linger - 当内核杀死已被应用程序关闭的套接字并 '+ - '徘徊了足够长的时间。 '+ - '失败 - 当内核尝试发送 RST 但因没有可用内存而失败时发生。
' + info: 'TCP connection aborts.
'+ + 'BadData - happens while the connection is on FIN_WAIT1 and the kernel receives a packet '+ + 'with a sequence number beyond the last one for this connection - '+ + 'the kernel responds with RST (closes the connection). '+ + 'UserClosed - happens when the kernel receives data on an already closed connection and '+ + 'responds with RST. '+ + 'NoMemory - happens when there are too many orphaned sockets (not attached to an fd) and '+ + 'the kernel has to drop a connection - sometimes it will send an RST, sometimes it won\'t. '+ + 'Timeout - happens when a connection times out. '+ + 'Linger - happens when the kernel killed a socket that was already closed by the application and '+ + 'lingered around for long enough. '+ + 'Failed - happens when the kernel attempted to send an RST but failed because there was no memory available.
' }, 'ip.tcp_functions': { - title : 'TCP calls', - info: '对函数tcp_sendmsg
、tcp_cleanup_rbuf
和tcp_close
的调用成功或失败。'
+ title : 'TCP调用',
+ info: 'Successful or failed calls to functions tcp_sendmsg
, tcp_cleanup_rbuf
, and tcp_close
.'
},
'ip.total_tcp_bandwidth': {
- title : 'TCP bandwidth',
- info: '由函数tcp_sendmsg
和tcp_cleanup_rbuf
发送和接收的字节。我们使用tcp_cleanup_rbuf
而不是tcp_recvmsg
,因为最后一个错过了tcp_read_sock()
流量,我们还需要有更多的探针来获得套接字和包大小。'
+ title : 'TCP带宽',
+ info: 'Bytes sent and received by functions tcp_sendmsg
and tcp_cleanup_rbuf
. We use tcp_cleanup_rbuf
instead of tcp_recvmsg
, because the last one misses tcp_read_sock()
traffic and we would also need to have more probes to get the socket and package size.'
},
'ip.tcp_error': {
- title : 'TCP errors',
- info: '对函数tcp_sendmsg
、tcp_cleanup_rbuf
和tcp_close
的调用失败。'
+ title : 'TCP错误',
+ info: 'Failed calls to functions tcp_sendmsg
, tcp_cleanup_rbuf
, and tcp_close
.'
},
'ip.tcp_retransmit': {
- title : 'TCP retransmit',
- info: '通过函数tcp_retransmit_skb
重新传输的数据包数量。'
+ title : 'TCP重新传输',
+ info: 'Number of packets retransmitted by function tcp_retransmit_skb
.'
},
'ip.udp_functions': {
- title : 'UDP calls',
- info: '对函数udp_sendmsg
和udp_recvmsg
的调用成功或失败。'
+ title : 'UDP呼叫',
+ info: 'Successful or failed calls to functions udp_sendmsg
and udp_recvmsg
.'
},
'ip.total_udp_bandwidth': {
- title : 'UDP bandwidth',
- info: '由函数udp_sendmsg
和udp_recvmsg
发送和接收的字节。'
+ title : 'UDP带宽',
+ info: 'Bytes sent and received by functions udp_sendmsg
and udp_recvmsg
.'
},
'ip.udp_error': {
- title : 'UDP errors',
- info: '对函数udp_sendmsg
和udp_recvmsg
的调用失败。'
+ title : 'UDP错误',
+ info: 'Failed calls to functions udp_sendmsg
and udp_recvmsg
.'
},
'ip.tcp_syn_queue': {
- info: '内核的SYN队列跟踪TCP握手,直到连接完全建立。 ' + - '当太多传入的TCP连接请求处于半开放状态和服务器时,它会溢出 ' + - '未配置回退到SYN Cookie。溢出通常由SYN洪水DoS攻击引起。
' + - 'Drops - 由于SYN队列已满且SYN cookie被禁用,连接数量下降。 ' + - 'Cookies - 由于SYN队列已满而发送的SYN Cookie数量。
' + info: '内核的SYN队列跟踪TCP握手,直到连接完全建立. ' + + 'It overflows when too many incoming TCP connection requests hang in the half-open state and the server ' + + 'is not configured to fall back to SYN cookies. Overflows are usually caused by SYN flood DoS attacks.
' + + 'Drops - number of connections dropped because the SYN queue was full and SYN cookies were disabled. ' + + 'Cookies - number of SYN cookies sent because the SYN queue was full.
' }, 'ip.tcp_accept_queue': { - info: '内核的接受队列持有完全建立的TCP连接,等待处理 ' + - '通过收听应用程序。
'+ - '溢出 - 因 '+ - '监听应用程序的接收队列已满。 '+ - 'Drops - 无法处理的传入连接数量,包括SYN洪水, '+ - '溢出、内存不足、安全问题、没有前往目的地的路线、接收相关的ICMP消息、 '+ - '套接字是广播或多播。' + info: '内核的接受队列保存完全建立的TCP连接,等待处理 ' + + 'by the listening application.
'+ + 'Overflows - the number of established connections that could not be handled because '+ + 'the receive queue of the listening application was full. '+ + 'Drops - number of incoming connections that could not be handled, including SYN floods, '+ + 'overflows, out of memory, security issues, no route to destination, reception of related ICMP messages, '+ + 'socket is broadcast or multicast.' }, @@ -1766,368 +1710,368 @@ netdataDashboard.context = { // IPv4 'ipv4.packets': { - info: '此主机的IPv4数据包统计。
'+ - '已收到 - IP 层接收的数据包。 '+ - '即使稍后删除数据包,这个计数器也会增加。 '+ - '发送-通过IP层发送的数据包,适用于单播和多播数据包。 '+ - '此计数器不包括转发中计算的任何数据包。 '+ - '转发 - 此主机不是其最终IP目的地的输入数据包, '+ - '结果,有人试图找到一条路线将他们转发到最终目的地。 '+ - '在不充当IP网关的主机中,此计数器将仅包括那些 '+ + info: '
此主机的IPv4数据包统计信息.
'+ + 'Received - IP层接收的数据包. '+ + 'This counter will be increased even if the packet is dropped later. '+ + 'Sent - packets sent via IP layer, for both single cast and multicast packets. '+ + 'This counter does not include any packets counted in Forwarded. '+ + 'Forwarded - input packets for which this host was not their final IP destination, '+ + 'as a result of which an attempt was made to find a route to forward them to that final destination. '+ + 'In hosts which do not act as IP Gateways, this counter will include only those packets which were '+ 'Source-Routed '+ - '源路由选项处理成功。 '+ - '已交付 - 交付到上层协议的数据包,例如TCP、UDP、ICMP等。
' + 'and the Source-Route option processing was successful. '+ + 'Delivered - packets delivered to the upper layer protocols, e.g. TCP, UDP, ICMP, and so on.' }, 'ipv4.fragsout': { info: 'IPv4碎片 '+ - '此系统的统计数据。
'+ - '好的 - 已成功碎片化的数据包。 '+ - '失败 - 由于需要碎片化而被丢弃的数据包 '+ - '但不能,例如,由于Don\'t Fragment (DF)标志已设置。 '+ - '创建-因碎片生成的碎片。
' + '此系统的统计信息.'+ + 'OK - packets that have been successfully fragmented. '+ + 'Failed - packets that have been discarded because they needed to be fragmented '+ + 'but could not be, e.g. due to Don\'t Fragment (DF) flag was set. '+ + 'Created - fragments that have been generated as a result of fragmentation.
' }, 'ipv4.fragsin': { info: 'IPv4重新组装 '+ - '此系统的统计数据。
'+ - '好的 - 已成功重新组装的数据包。 '+ - '失败 - IP 重新组装算法检测到故障。 '+ - '这不一定是被丢弃的IP片段的计数,因为一些算法 '+ - '通过在收到碎片时进行组合,可能会丢失碎片数量。 '+ - '所有-收到需要重新组装的IP片段。
' + '此系统的统计信息.'+ + 'OK - packets that have been successfully reassembled. '+ + 'Failed - failures detected by the IP reassembly algorithm. '+ + 'This is not necessarily a count of discarded IP fragments since some algorithms '+ + 'can lose track of the number of fragments by combining them as they are received. '+ + 'All - received IP fragments which needed to be reassembled.
' }, 'ipv4.errors': { - info: '丢弃的IPv4数据包的数量。
'+ - 'InDiscards,OutDiscards-选择的入站和出站数据包 '+ - '即使没有出错,也要被丢弃 '+ - '检测到以防止它们交付到更高级别的协议。 '+ - 'InHdrErrors - 由于IP头错误而被丢弃的输入数据包,包括 '+ - '校验和不好,版本号不匹配,其他格式错误,超过生存时间, '+ - '在处理他们的IP选项等时发现的错误。 '+ - 'OutNoRoutes - 由于找不到路线而被丢弃的数据包 '+ - '将它们传输到目的地。这包括主机无法路由的任何数据包 '+ - '因为它所有的默认网关都关闭了。 '+ - 'InAddrErrors - 由于IP地址无效或 '+ - '目标IP地址不是本地地址,并且没有启用IP转发。 '+ - 'InUnknownProtos - 由于未知或不支持的协议而被丢弃的输入数据包。
' + info: '丢弃的IPv4数据包数.
'+ + 'InDiscards, OutDiscards - inbound and outbound packets which were chosen '+ + 'to be discarded even though no errors had been '+ + 'detected to prevent their being deliverable to a higher-layer protocol. '+ + 'InHdrErrors - input packets that have been discarded due to errors in their IP headers, including '+ + 'bad checksums, version number mismatch, other format errors, time-to-live exceeded, '+ + 'errors discovered in processing their IP options, etc. '+ + 'OutNoRoutes - packets that have been discarded because no route could be found '+ + 'to transmit them to their destination. This includes any packets which a host cannot route '+ + 'because all of its default gateways are down. '+ + 'InAddrErrors - input packets that have been discarded due to invalid IP address or '+ + 'the destination IP address is not a local address and IP forwarding is not enabled. '+ + 'InUnknownProtos - input packets which were discarded because of an unknown or unsupported protocol.
' }, 'ipv4.icmp': { - info: '传输的IPv4 ICMP消息的数量。
'+ - '收到,发送-主机收到并试图发送的ICMP消息。 '+ - '这两个计数器都包含错误。
' + info: '传输的IPv4 ICMP消息数.
'+ + 'Received, Sent - ICMP messages which the host received and attempted to send. '+ + 'Both these counters include errors.
' }, 'ipv4.icmp_errors': { - info: 'IPv4 ICMP错误的数量。
'+ - 'InErrors - 收到ICMP消息,但确定存在ICMP特定错误, '+ - '例如,ICMP校验和不好,长度不好等。 '+ - 'OutErrors - 此主机由于 '+ - '在ICMP中发现的问题,如缺乏缓冲区。 '+ - '此计数器不包括在ICMP层外发现的错误 '+ - '例如IP无法路由生成的数据报。 '+ - 'InCsumErrors-收到校验和不良的ICMP消息。
' + info: 'IPv4 ICMP错误数.
'+ + 'InErrors - received ICMP messages but determined as having ICMP-specific errors, '+ + 'e.g. bad ICMP checksums, bad length, etc. '+ + 'OutErrors - ICMP messages which this host did not send due to '+ + 'problems discovered within ICMP such as a lack of buffers. '+ + 'This counter does not include errors discovered outside the ICMP layer '+ + 'such as the inability of IP to route the resultant datagram. '+ + 'InCsumErrors - received ICMP messages with bad checksum.
' }, 'ipv4.icmpmsg': { - info: '转让数量 '+ - 'IPv4 ICMP控制消息。' + info: '已传输的数量 '+ + 'IPv4 ICMP control messages.' }, 'ipv4.udppackets': { - info: '传输的UDP数据包的数量。' + info: '传输的UDP数据包数.' }, 'ipv4.udperrors': { - info: '在传输UDP数据包时遇到的错误数量。
'+ - 'RcvbufErrors - 接收缓冲区已满。 '+ - 'SndbufErrors - 发送缓冲区已满,没有可用的内核内存,或 '+ - 'IP层在尝试发送数据包时报告了错误,并且没有设置错误队列。 '+ - 'InErrors - 这是所有错误的聚合计数器,不包括NoPorts。 '+ - 'NoPorts - 没有应用程序在目标端口监听。 '+ - 'InCsumErrors - 检测到UDP校验和失败。 '+ - '忽略多 - 忽略多播数据包。' + info: '传输UDP数据包期间遇到的错误数.
'+ + 'RcvbufErrors - receive buffer is full. '+ + 'SndbufErrors - send buffer is full, no kernel memory available, or '+ + 'the IP layer reported an error when trying to send the packet and no error queue has been setup. '+ + 'InErrors - that is an aggregated counter for all errors, excluding NoPorts. '+ + 'NoPorts - no application is listening at the destination port. '+ + 'InCsumErrors - a UDP checksum failure is detected. '+ + 'IgnoredMulti - ignored multicast packets.' }, 'ipv4.udplite': { - info: '传输的UDP-Lite数据包的数量。' + info: '传输的UDP Lite数据包数.' }, 'ipv4.udplite_errors': { - info: '传输UDP-Lite数据包时遇到的错误数量。
'+ - 'RcvbufErrors - 接收缓冲区已满。 '+ - 'SndbufErrors - 发送缓冲区已满,没有可用的内核内存,或 '+ - 'IP层在尝试发送数据包时报告了错误,并且没有设置错误队列。 '+ - 'InErrors - 这是所有错误的聚合计数器,不包括NoPorts。 '+ - 'NoPorts - 没有应用程序在目标端口监听。 '+ - 'InCsumErrors - 检测到UDP校验和失败。 '+ - '忽略多 - 忽略多播数据包。' + info: '传输UDP Lite数据包期间遇到的错误数.
'+ + 'RcvbufErrors - receive buffer is full. '+ + 'SndbufErrors - send buffer is full, no kernel memory available, or '+ + 'the IP layer reported an error when trying to send the packet and no error queue has been setup. '+ + 'InErrors - that is an aggregated counter for all errors, excluding NoPorts. '+ + 'NoPorts - no application is listening at the destination port. '+ + 'InCsumErrors - a UDP checksum failure is detected. '+ + 'IgnoredMulti - ignored multicast packets.' }, 'ipv4.tcppackets': { - info: 'TCP层传输的数据包数量。
'+ - '已收到-已收到的数据包,包括错误接收的数据包, '+ - '例如校验和错误、无效的TCP标头等。 '+ - '发送-发送数据包,不包括重新传输的数据包。 '+ - '但它包括SYN、ACK和RST数据包。' + info: 'TCP层传输的数据包数.
'+ + 'Received - received packets, including those received in error, '+ + 'such as checksum error, invalid TCP header, and so on. '+ + 'Sent - sent packets, excluding the retransmitted packets. '+ + 'But it includes the SYN, ACK, and RST packets.' }, 'ipv4.tcpsock': { - info: '当前状态已建立或关闭的TCP连接数量。 '+ - '这是测量时已建立连接的快照 '+ - '(即在同一迭代中建立连接和断开连接不会影响此指标)。' + info: '当前状态为“已建立”或“关闭等待”的TCP连接数. '+ + 'This is a snapshot of the established connections at the time of measurement '+ + '(i.e. a connection established and a connection disconnected within the same iteration will not affect this metric).' }, 'ipv4.tcpopens': { - info: 'TCP连接统计。
'+ - '活跃 - 此主机尝试的传出TCP连接数量。 '+ - '被动 - 此主机接受的传入TCP连接数量。
' + info: 'TCP连接统计信息.
'+ + 'Active - number of outgoing TCP connections attempted by this host. '+ + 'Passive - number of incoming TCP connections accepted by this host.
' }, 'ipv4.tcperrors': { - info: 'TCP错误。
'+ - 'InErrs - 错误地收到 TCP 时段 '+ - '(包括标题太小、校验和错误、序列错误、错误数据包——适用于IPv4和IPv6)。 '+ - 'InCsumErrors - 收到校验和错误的TCP段(适用于IPv4和IPv6)。 '+ - 'RetransSegs - TCP段重新传输。
' + info: 'TCP错误.
'+ + 'InErrs - TCP segments received in error '+ + '(including header too small, checksum errors, sequence errors, bad packets - for both IPv4 and IPv6). '+ + 'InCsumErrors - TCP segments received with checksum errors (for both IPv4 and IPv6). '+ + 'RetransSegs - TCP segments retransmitted.
' }, 'ipv4.tcphandshake': { - info: 'TCP握手统计。
'+ - 'EstabResets - 已建立的连接重置 '+ - '(即从 ESTABLISHED 或 CLOSE_WAIT 直接过渡到 CLOSED 的连接)。 '+ - 'OutRsts - 发送TCP段,并设置RST标志(适用于IPv4和IPv6)。 '+ - 'AttemptFails - TCP连接从任一方向直接过渡的次数 '+ - 'SYN_SENT或SYN_RECV到CLOED,加上TCP连接直接过渡的次数 '+ - '从SYN_RECV到监听。 '+ - 'SynRetrans - 显示新的出站 TCP 连接的重试, '+ - '这可能表明远程主机上的一般连接问题或积压。
' + info: 'TCP握手统计信息.
'+ + 'EstabResets - established connections resets '+ + '(i.e. connections that made a direct transition from ESTABLISHED or CLOSE_WAIT to CLOSED). '+ + 'OutRsts - TCP segments sent, with the RST flag set (for both IPv4 and IPv6). '+ + 'AttemptFails - number of times TCP connections made a direct transition from either '+ + 'SYN_SENT or SYN_RECV to CLOSED, plus the number of times TCP connections made a direct transition '+ + 'from the SYN_RECV to LISTEN. '+ + 'SynRetrans - shows retries for new outbound TCP connections, '+ + 'which can indicate general connectivity issues or backlog on the remote host.
' }, 'ipv4.sockstat_sockets': { - info: '所有使用的套接字总数 '+ - '地址家庭'+ - '在这个系统中。' + info: '所有已用套接字的总数 '+ + 'address families '+ + 'in this system.' }, 'ipv4.sockstat_tcp_sockets': { - info: '系统中某些TCP套接字的数量 '+ - 'states。
'+ - 'Alloc - 处于任何 TCP 状态。 '+ - 'Orphan - 在任何用户进程中不再连接到套接字描述符, '+ - '但为了完成传输协议,内核仍然需要保持状态。 '+ - 'InUse - 处于任何 TCP 状态,TIME-WAIT 和 CLOSED 除外。 '+ - 'TimeWait - 处于TIME-WAIT状态。
' + info: '系统中特定位置的TCP套接字数 '+ + 'states.
'+ + 'Alloc - in any TCP state. '+ + 'Orphan - no longer attached to a socket descriptor in any user processes, '+ + 'but for which the kernel is still required to maintain state in order to complete the transport protocol. '+ + 'InUse - in any TCP state, excluding TIME-WAIT and CLOSED. '+ + 'TimeWait - in the TIME-WAIT state.
' }, 'ipv4.sockstat_tcp_mem': { - info: '分配的TCP套接字使用的内存量。' + info: '分配的TCP套接字使用的内存量.' }, 'ipv4.sockstat_udp_sockets': { - info: '使用UDP套接字的数量。' + info: '使用的UDP套接字数.' }, 'ipv4.sockstat_udp_mem': { - info: '分配的UDP套接字使用的内存量。' + info: '分配的UDP套接字使用的内存量.' }, 'ipv4.sockstat_udplite_sockets': { - info: '使用UDP-Lite套接字的数量。' + info: '使用的UDP Lite套接字数.' }, 'ipv4.sockstat_raw_sockets': { - info: '使用原始套接字的数量。' + info: '使用的数量 采用原始套接字.' }, 'ipv4.sockstat_frag_sockets': { - info: '散列表中用于数据包重新组装的条目数量。' + info: '哈希表中用于数据包重组的条目数.' }, 'ipv4.sockstat_frag_mem': { - info: '用于数据包重新组装的内存量。' + info: '用于数据包重组的内存量.' }, // ------------------------------------------------------------------------ // IPv6 'ipv6.packets': { - info: '此主机的IPv6数据包统计信息。
'+ - '已收到 - IP 层接收的数据包。 '+ - '即使稍后删除数据包,这个计数器也会增加。 '+ - '发送-通过IP层发送的数据包,适用于单播和多播数据包。 '+ - '此计数器不包括转发中计算的任何数据包。 '+ - '转发 - 此主机不是其最终IP目的地的输入数据包, '+ - '结果,有人试图找到一条路线将他们转发到最终目的地。 '+ - '在不充当IP网关的主机中,此计数器将仅包括那些 '+ + info: '
此主机的IPv6数据包统计信息.
'+ + 'Received - IP层接收的数据包. '+ + 'This counter will be increased even if the packet is dropped later. '+ + 'Sent - packets sent via IP layer, for both single cast and multicast packets. '+ + 'This counter does not include any packets counted in Forwarded. '+ + 'Forwarded - input packets for which this host was not their final IP destination, '+ + 'as a result of which an attempt was made to find a route to forward them to that final destination. '+ + 'In hosts which do not act as IP Gateways, this counter will include only those packets which were '+ 'Source-Routed '+ - '源路由选项处理成功。 '+ - '交付 - 交付到上层协议的数据包,例如TCP、UDP、ICMP等。
' + 'and the Source-Route option processing was successful. '+ + 'Delivers - packets delivered to the upper layer protocols, e.g. TCP, UDP, ICMP, and so on.' }, 'ipv6.fragsout': { - info: 'IPv6碎片'+ - '此系统的统计数据。
'+ - '好的 - 已成功碎片化的数据包。 '+ - '失败 - 由于需要碎片化而被丢弃的数据包 '+ - '但不能,例如,由于Don\'t Fragment (DF)标志已设置。 '+ - '所有-碎片生成的碎片。
' + info: 'IPv6碎片 '+ + '此系统的统计信息.
'+ + 'OK - packets that have been successfully fragmented. '+ + 'Failed - packets that have been discarded because they needed to be fragmented '+ + 'but could not be, e.g. due to Don\'t Fragment (DF) flag was set. '+ + 'All - fragments that have been generated as a result of fragmentation.
' }, 'ipv6.fragsin': { info: 'IPv6重新组装 '+ - '此系统的统计数据。
'+ - '好的 - 已成功重新组装的数据包。 '+ - '失败 - IP 重新组装算法检测到故障。 '+ - '这不一定是被丢弃的IP片段的计数,因为一些算法 '+ - '通过在收到碎片时进行组合,可能会丢失碎片数量。 '+ - '超时 - 检测到重新组装超时。 '+ - '所有-收到需要重新组装的IP片段。
' + '此系统的统计信息.'+ + 'OK - packets that have been successfully reassembled. '+ + 'Failed - failures detected by the IP reassembly algorithm. '+ + 'This is not necessarily a count of discarded IP fragments since some algorithms '+ + 'can lose track of the number of fragments by combining them as they are received. '+ + 'Timeout - reassembly timeouts detected. '+ + 'All - received IP fragments which needed to be reassembled.
' }, 'ipv6.errors': { - info: '丢弃的IPv6数据包的数量。
'+ - 'InDiscards,OutDiscards - 即使 '+ - '没有检测到错误来阻止它们交付到更高级别的协议。 '+ - 'InHdrErrors - IP头中的错误,包括糟糕的校验和、版本号不匹配、 '+ - '其他格式错误、超出使用时间等。 '+ - 'InAddrErrors - 无效的IP地址或目标IP地址不是本地地址,并且 '+ - '未启用IP转发。 '+ - 'InUnknownProtos - 未知或不支持的协议。 '+ - 'InTooBigErrors - 大小超过链接MTU。 '+ - 'InTruncatedPkts - 数据包框架没有携带足够的数据。 '+ - 'InNoRoutes - 转发时找不到任何路线。 '+ - 'OutNoRoutes - 找不到此主机生成的数据包的路由。
' + info: '丢弃的IPv6数据包数.
'+ + 'InDiscards, OutDiscards - packets which were chosen to be discarded even though '+ + 'no errors had been detected to prevent their being deliverable to a higher-layer protocol. '+ + 'InHdrErrors - errors in IP headers, including bad checksums, version number mismatch, '+ + 'other format errors, time-to-live exceeded, etc. '+ + 'InAddrErrors - invalid IP address or the destination IP address is not a local address and '+ + 'IP forwarding is not enabled. '+ + 'InUnknownProtos - unknown or unsupported protocol. '+ + 'InTooBigErrors - the size exceeded the link MTU. '+ + 'InTruncatedPkts - packet frame did not carry enough data. '+ + 'InNoRoutes - no route could be found while forwarding. '+ + 'OutNoRoutes - no route could be found for packets generated by this host.
' }, 'ipv6.udppackets': { - info: '传输的UDP数据包的数量。' + info: '传输的UDP数据包数.' }, 'ipv6.udperrors': { - info: '在传输UDP数据包时遇到的错误数量。
'+ - 'RcvbufErrors - 接收缓冲区已满。 '+ - 'SndbufErrors - 发送缓冲区已满,没有可用的内核内存,或 '+ - 'IP层在尝试发送数据包时报告了错误,并且没有设置错误队列。 '+ - 'InErrors - 这是所有错误的聚合计数器,不包括NoPorts。 '+ - 'NoPorts - 没有应用程序在目标端口监听。 '+ - 'InCsumErrors - 检测到UDP校验和失败。 '+ - '忽略多 - 忽略多播数据包。' + info: '传输UDP数据包期间遇到的错误数.
'+ + 'RcvbufErrors - receive buffer is full. '+ + 'SndbufErrors - send buffer is full, no kernel memory available, or '+ + 'the IP layer reported an error when trying to send the packet and no error queue has been setup. '+ + 'InErrors - that is an aggregated counter for all errors, excluding NoPorts. '+ + 'NoPorts - no application is listening at the destination port. '+ + 'InCsumErrors - a UDP checksum failure is detected. '+ + 'IgnoredMulti - ignored multicast packets.' }, 'ipv6.udplitepackets': { - info: '传输的UDP-Lite数据包的数量。' + info: '传输的UDP Lite数据包数.' }, 'ipv6.udpliteerrors': { - info: '传输UDP-Lite数据包时遇到的错误数量。
'+ - 'RcvbufErrors - 接收缓冲区已满。 '+ - 'SndbufErrors - 发送缓冲区已满,没有可用的内核内存,或 '+ - 'IP层在尝试发送数据包时报告了错误,并且没有设置错误队列。 '+ - 'InErrors - 这是所有错误的聚合计数器,不包括NoPorts。 '+ - 'NoPorts - 没有应用程序在目标端口监听。 '+ - 'InCsumErrors - 检测到UDP校验和失败。
' + info: '传输UDP Lite数据包期间遇到的错误数.
'+ + 'RcvbufErrors - receive buffer is full. '+ + 'SndbufErrors - send buffer is full, no kernel memory available, or '+ + 'the IP layer reported an error when trying to send the packet and no error queue has been setup. '+ + 'InErrors - that is an aggregated counter for all errors, excluding NoPorts. '+ + 'NoPorts - no application is listening at the destination port. '+ + 'InCsumErrors - a UDP checksum failure is detected.
' }, 'ipv6.mcast': { - info: 'IPv6组播总流量。' + info: 'IPv6多播通信总量.' }, 'ipv6.bcast': { - info: 'IPv6广播总流量。' + info: 'IPv6广播总流量.' }, 'ipv6.mcastpkts': { - info: '传输的IPv6组播数据包总数。' + info: '传输的IPv6多播数据包总数.' }, 'ipv6.icmp': { - info: '传输的ICMPv6消息数量。
'+ - '收到,发送-主机收到并试图发送的ICMP消息。 '+ - '这两个计数器都包含错误。
' + info: '传输的ICMPv6消息数.
'+ + 'Received, Sent - ICMP messages which the host received and attempted to send. '+ + 'Both these counters include errors.
' }, 'ipv6.icmpredir': { - info: '传输的ICMPv6重定向消息的数量。'+ - '这些信息通知主机更新其路由信息(在替代路由上发送数据包)。' + info: '传输的ICMPv6重定向消息数. '+ + 'These messages inform a host to update its routing information (to send packets on an alternative route).' }, 'ipv6.icmpechos': { - info: 'ICMPv6回声消息的数量。' + info: '传输的ICMPv6重定向消息数.' }, 'ipv6.icmperrors': { - info: 'ICMPv6错误的数量和 '+ - '错误消息。
'+ - 'InErrors,OutErrors - 糟糕的ICMP消息(错误的ICMP校验和,糟糕的长度等)。 '+ - 'InCsumErrors - 校验和错误。
' + info: 'ICMPv6错误数和 '+ + 'error messages.
'+ + 'InErrors, OutErrors - bad ICMP messages (bad ICMP checksums, bad length, etc.). '+ + 'InCsumErrors - wrong checksum.
' }, 'ipv6.groupmemb': { - info: '传输的ICMPv6组成员消息的数量。
'+ - '多播路由器发送组成员查询消息,以了解哪些组在其每个组上都有成员 '+ - '连接物理网络。主机计算机通过为每个 '+ - '主机加入的多播组。主机计算机也可以在以下情况下发送组成员报告 '+ - '它加入了一个新的多播组。 '+ - '当主机离开组播组时,会发送组成员减少消息。
' + info: '传输的ICMPv6组成员身份消息数.
'+ + 'Multicast routers send Group Membership Query messages to learn which groups have members on each of their '+ + 'attached physical networks. Host computers respond by sending a Group Membership Report for each '+ + 'multicast group joined by the host. A host computer can also send a Group Membership Report when '+ + 'it joins a new multicast group. '+ + 'Group Membership Reduction messages are sent when a host computer leaves a multicast group.
' }, 'ipv6.icmprouter': { - info: '转让ICMPv6的数量 '+ - '路由器发现消息。
'+ - '路由器招标消息从计算机主机发送到局域网上的任何路由器 '+ - '要求他们在网络上做广告。 '+ - '路由器广告消息由局域网上的路由器发送,以宣布其IP地址 '+ - '可供路由。
' + info: '传输的ICMPv6的数量 '+ + 'Router Discovery messages.
'+ + 'Router Solicitations message is sent from a computer host to any routers on the local area network '+ + 'to request that they advertise their presence on the network. '+ + 'Router Advertisement message is sent by a router on the local area network to announce its IP address '+ + 'as available for routing.
' }, 'ipv6.icmpneighbor': { - info: '转让ICMPv6的数量 '+ - '邻居发现消息。
'+ - '邻居请求被节点用于确定链接层地址 '+ - '邻居,或验证邻居是否仍然可以通过缓存的链接层地址访问。 '+ - '邻居广告被节点用于响应邻居邀约消息。
' + info: '传输的ICMPv6的数量 '+ + 'Neighbour Discovery messages.
'+ + 'Neighbor Solicitations are used by nodes to determine the link layer address '+ + 'of a neighbor, or to verify that a neighbor is still reachable via a cached link layer address. '+ + 'Neighbor Advertisements are used by nodes to respond to a Neighbor Solicitation message.
' }, 'ipv6.icmpmldv2': { - info: '转让ICMPv6的数量'+ - '多播监听器发现(MLD)消息。' + info: '传输的ICMPv6的数量'+ + 'Multicast Listener Discovery (MLD) messages.' }, 'ipv6.icmptypes': { - info: '传输的ICMPv6消息数量 '+ - '某些类型。' + info: '已传输的ICMPv6消息数 '+ + 'certain types.' }, 'ipv6.ect': { - info: '系统中设置了ECN位的接收IPv6数据包总数。
'+ - 'CEP - 遇到拥堵。 '+ - 'NoECTP - 不支持ECN的运输。 '+ - 'ECTP0和ECTP1-支持ECN的传输。
' + info: '系统中设置了ECN位的已接收IPv6数据包总数.
'+ + 'CEP - congestion encountered. '+ + 'NoECTP - non ECN-capable transport. '+ + 'ECTP0 and ECTP1 - ECN capable transport.
' }, 'ipv6.sockstat6_tcp_sockets': { - info: '任何TCP套接字的数量 '+ - 'state, '+ - '不包括时间等待和关闭。' + info: 'The number of TCP sockets in any '+ + 'state, '+ + 'excluding TIME-WAIT and CLOSED.' }, 'ipv6.sockstat6_udp_sockets': { - info: '使用UDP套接字的数量。' + info: '使用的UDP套接字数.' }, 'ipv6.sockstat6_udplite_sockets': { - info: '使用UDP-Lite套接字的数量。' + info: '使用的UDP Lite套接字数.' }, 'ipv6.sockstat6_raw_sockets': { - info: '使用原始套接字的数量。' + info: '使用的数量 raw sockets.' }, 'ipv6.sockstat6_frag_sockets': { - info: '散列表中用于数据包重新组装的条目数量。' + info: '哈希表中用于数据包重组的条目数.' }, @@ -2135,99 +2079,99 @@ netdataDashboard.context = { // SCTP 'sctp.established': { - info: '当前状态为的关联数量 '+ - '已建立、已关闭接收或即将关闭。' + info: 'The number of associations for which the current state is either '+ + 'ESTABLISHED, SHUTDOWN-RECEIVED or SHUTDOWN-PENDING.' }, 'sctp.transitions': { - info: '关联在州之间直接过渡的次数。
'+ - '活跃 - 从COOKIE-ECHOED到已建立。上层发起了关联尝试。 '+ - '被动 - 从关闭到已建立。远程端点发起了关联尝试。 '+ - '中止-使用原始ABORT从任何状态到关闭。不光彩地终止协会。 '+ - 'Shutdown - 从SHUTDOWN-SENT或SHUTDOWN-ACK-SENT到CLOSHED。优雅地终止协会。
' + info: '协会在国家间直接过渡的次数.
'+ + 'Active - from COOKIE-ECHOED to ESTABLISHED. The upper layer initiated the association attempt. '+ + 'Passive - from CLOSED to ESTABLISHED. The remote endpoint initiated the association attempt. '+ + 'Aborted - from any state to CLOSED using the primitive ABORT. Ungraceful termination of the association. '+ + 'Shutdown - from SHUTDOWN-SENT or SHUTDOWN-ACK-SENT to CLOSED. Graceful termination of the association.
' }, 'sctp.packets': { - info: '传输的SCTP数据包数量。
'+ - '已收到 - 包含重复的数据包。 '+ - '发送-包括重新传输的数据块。
' + info: '传输的SCTP数据包数.
'+ + 'Received - includes duplicate packets. '+ + 'Sent - includes retransmitted DATA chunks.
' }, 'sctp.packet_errors': { - info: '接收SCTP数据包时遇到的错误数量。
'+ - '无效 - 接收方无法识别适当关联的数据包。 '+ - '校验和 - 校验和无效的数据包。
' + info: '接收SCTP数据包期间遇到的错误数.
'+ + 'Invalid - packets for which the receiver was unable to identify an appropriate association. '+ + 'Checksum - packets with an invalid checksum.
' }, 'sctp.fragmentation': { - info: '碎片化和重新组装的SCTP消息的数量。
'+ - '重新组装 - 重新组装用户消息,在转换为数据块后。 '+ - '碎片化 - 由于MTU而不得不碎片化的用户消息。
' + info: '分段和重新组合的SCTP消息数.
'+ + 'Reassembled - reassembled user messages, after conversion into DATA chunks. '+ + 'Fragmented - user messages that have to be fragmented because of the MTU.
' }, 'sctp.chunks': { - info: '传输控件、有序和无顺序数据块的数量。 '+ - '不包括重播和重复。' + info: '传输的控制、有序和无序数据块的数量. '+ + 'Retransmissions and duplicates are not included.' }, // ------------------------------------------------------------------------ // Netfilter Connection Tracker 'netfilter.conntrack_sockets': { - info: 'Conntrack表中的条目数。' + info: 'conntrack表中的条目数.' }, 'netfilter.conntrack_new': { - info: '数据包跟踪统计信息。新(自v4.9以来)和忽略(自v5.10以来)在最新内核中被硬编码为零。
'+ - '新 - 添加以前意想不到的条目。 '+ - '忽略-已连接到conntrack条目的数据包。 '+ - '无效 - 看到无法跟踪的数据包。
' + info: '数据包跟踪统计信息. New (since v4.9) and Ignore (since v5.10) are hardcoded to zeros in the latest kernel.
'+ + 'New - conntrack entries added which were not expected before. '+ + 'Ignore - packets seen which are already connected to a conntrack entry. '+ + 'Invalid - packets seen which can not be tracked.
' }, 'netfilter.conntrack_changes': { - info: 'conntrack表格中的更改数量。
'+ - '插入,删除-跟踪插入或删除的条目。 '+ - '删除列表 - 跟踪被列入垂死列表的条目。
' + info: 'conntrack表中的更改数.
'+ + 'Inserted, Deleted - conntrack entries which were inserted or removed. '+ + 'Delete-list - conntrack entries which were put to dying list.
' }, 'netfilter.conntrack_expect': { - info: '“预期”表中的事件数量。 '+ - '连接跟踪预期是用于“预期”与现有连接相关连接的机制。 '+ - '期望是预计在一段时间内发生的连接。
'+ - '创建,删除-跟踪插入或删除的条目。 '+ - '新 - 在对它们的预期已经存在后添加了conntrack条目。
' + info: 'The number of events in the "expect" table. '+ + 'Connection tracking expectations are the mechanism used to "expect" RELATED connections to existing ones. '+ + 'An expectation is a connection that is expected to happen in a period of time.
'+ + 'Created, Deleted - conntrack entries which were inserted or removed. '+ + 'New - conntrack entries added after an expectation for them was already present.
' }, 'netfilter.conntrack_search': { - info: 'Conntrack表查找统计信息。
'+ - 'Searched - 进行conntrack 表格查找。 '+ - '重新启动-由于散列调整大小而不得不重新启动的conntrack表查找。 '+ - '找到-成功跟踪表格查找。
' + info: 'Conntrack表查找统计信息.
'+ + 'Searched - conntrack table lookups performed. '+ + 'Restarted - conntrack table lookups which had to be restarted due to hashtable resizes. '+ + 'Found - conntrack table lookups which were successful.
' }, 'netfilter.conntrack_errors': { - info: 'Conntrack错误。
'+ - 'IcmpError - 由于错误情况无法跟踪的数据包。 '+ - '插入失败 - 尝试插入列表但失败的条目 '+ - '(如果同一条目已经存在,则可能)。 '+ - 'Drop - 由于conntrack失败而删除的数据包。 '+ - '要么新的conntrack条目分配失败,要么协议帮助程序删除数据包。 '+ - 'EarlyDrop - 如果达到最大表大小,请删除conntrack条目,为新条目腾出空间。
' + info: 'Conntrack错误.
'+ + 'IcmpError - packets which could not be tracked due to error situation. '+ + 'InsertFailed - entries for which list insertion was attempted but failed '+ + '(happens if the same entry is already present). '+ + 'Drop - packets dropped due to conntrack failure. '+ + 'Either new conntrack entry allocation failed, or protocol helper dropped the packet. '+ + 'EarlyDrop - dropped conntrack entries to make room for new ones, if maximum table size was reached.
' }, 'netfilter.synproxy_syn_received': { - info: '从客户端收到的初始TCP SYN数据包的数量。' + info: '从客户端接收的初始TCP SYN数据包数.' }, 'netfilter.synproxy_conn_reopened': { - info: '直接从TIME-WAIT状态由新的TCP SYN数据包重新打开连接的数量。' + info: '新TCP SYN数据包直接从TIME-WAIT状态重新打开的连接数.' }, 'netfilter.synproxy_cookies': { - info: 'SYNPROXY Cookie统计。
'+ - '有效,无效-从客户端收到的TCP ACK数据包中的cookie验证结果。 '+ - '重新传输 - TCP SYN数据包重新传输到服务器。 '+ - '当客户端重复TCP ACK且与服务器的连接尚未建立时,就会发生这种情况。
' + info: 'SYNPROXY cookie统计信息.
'+ + 'Valid, Invalid - result of cookie validation in TCP ACK packets received from clients. '+ + 'Retransmits - TCP SYN packets retransmitted to the server. '+ + 'It happens when the client repeats TCP ACK and the connection to the server is not yet established.
' }, // ------------------------------------------------------------------------ @@ -2235,414 +2179,414 @@ netdataDashboard.context = { // APPS cpu 'apps.cpu': { - info: 'CPU总利用率(所有内核)。它包括用户、系统和客人时间。' + info: 'Total CPU utilization (all cores). It includes user, system and guest time.' }, 'groups.cpu': { - info: 'CPU总利用率(所有内核)。它包括用户、系统和客人时间。' + info: 'Total CPU utilization (all cores). It includes user, system and guest time.' }, 'users.cpu': { - info: 'CPU总利用率(所有内核)。它包括用户、系统和客人时间。' + info: 'Total CPU utilization (all cores). It includes user, system and guest time.' }, 'apps.cpu_user': { - info: 'CPU 忙于执行代码所需的时间 '+ - '用户模式(所有核心)。' + info: 'The amount of time the CPU was busy executing code in '+ + 'user mode (all cores).' }, 'groups.cpu_user': { - info: 'CPU 忙于执行代码所需的时间 '+ - '用户模式(所有核心)。' + info: 'The amount of time the CPU was busy executing code in '+ + 'user mode (all cores).' }, 'users.cpu_user': { - info: 'TCPU忙于执行代码的大量时间 '+ - '用户模式(所有核心)。' + info: 'The amount of time the CPU was busy executing code in '+ + 'user mode (all cores).' }, 'apps.cpu_system': { - info: 'CPU 忙于执行代码所需的时间 '+ - '内核模式(所有内核)。' + info: 'The amount of time the CPU was busy executing code in '+ + 'kernel mode (all cores).' }, 'groups.cpu_system': { - info: 'CPU 忙于执行代码所需的时间 '+ - '内核模式(所有内核)。' + info: 'The amount of time the CPU was busy executing code in '+ + 'kernel mode (all cores).' }, 'users.cpu_system': { - info: 'CPU 忙于执行代码所需的时间 '+ - '内核模式(所有内核)。' + info: 'The amount of time the CPU was busy executing code in '+ + 'kernel mode (all cores).' }, 'apps.cpu_guest': { - info: '为来宾操作系统(所有内核)运行虚拟CPU所花费的时间。' + info: 'The amount of time spent running a virtual CPU for a guest operating system (all cores).' }, 'groups.cpu_guest': { - info: '为来宾操作系统(所有内核)运行虚拟CPU所花费的时间。' + info: 'The amount of time spent running a virtual CPU for a guest operating system (all cores).' }, 'users.cpu_guest': { - info: '为来宾操作系统(所有内核)运行虚拟CPU所花费的时间。' + info: 'The amount of time spent running a virtual CPU for a guest operating system (all cores).' }, // APPS disk 'apps.preads': { - info: '从存储层读取的数据量。 '+ - '需要实际的物理磁盘I/O。' + info: 'The amount of data that has been read from the storage layer. '+ + 'Actual physical disk I/O was required.' }, 'groups.preads': { - info: '从存储层读取的数据量。 '+ - '需要实际的物理磁盘I/O。' + info: 'The amount of data that has been read from the storage layer. '+ + 'Actual physical disk I/O was required.' }, 'users.preads': { - info: '从存储层读取的数据量。 '+ - '需要实际的物理磁盘I/O。' + info: 'The amount of data that has been read from the storage layer. '+ + 'Actual physical disk I/O was required.' }, 'apps.pwrites': { - info: '已写入存储层的数据量。 '+ - '需要实际的物理磁盘I/O。' + info: 'The amount of data that has been written to the storage layer. '+ + 'Actual physical disk I/O was required.' }, 'groups.pwrites': { - info: '已写入存储层的数据量。 '+ - '需要实际的物理磁盘I/O。' + info: 'The amount of data that has been written to the storage layer. '+ + 'Actual physical disk I/O was required.' }, 'users.pwrites': { - info: '已写入存储层的数据量。 '+ - '需要实际的物理磁盘I/O。' + info: 'The amount of data that has been written to the storage layer. '+ + 'Actual physical disk I/O was required.' }, 'apps.lreads': { - info: '从存储层读取的数据量。 '+ - '它包括I/O终端等内容,不受是否或 '+ - '不是实际的物理磁盘I/O是必需的 '+ - '(读数可能已从pagecache中满意)。' + info: 'The amount of data that has been read from the storage layer. '+ + 'It includes things such as terminal I/O and is unaffected by whether or '+ + 'not actual physical disk I/O was required '+ + '(the read might have been satisfied from pagecache).' }, 'groups.lreads': { - info: '从存储层读取的数据量。 '+ - '它包括I/O终端等内容,不受是否或 '+ - '不是实际的物理磁盘I/O是必需的 '+ - '(读数可能已从pagecache中满意)。' + info: 'The amount of data that has been read from the storage layer. '+ + 'It includes things such as terminal I/O and is unaffected by whether or '+ + 'not actual physical disk I/O was required '+ + '(the read might have been satisfied from pagecache).' }, 'users.lreads': { - info: '从存储层读取的数据量。 '+ - '它包括I/O终端等内容,不受是否或 '+ - '不是实际的物理磁盘I/O是必需的 '+ - '(读数可能已从pagecache中满意)。' + info: 'The amount of data that has been read from the storage layer. '+ + 'It includes things such as terminal I/O and is unaffected by whether or '+ + 'not actual physical disk I/O was required '+ + '(the read might have been satisfied from pagecache).' }, 'apps.lwrites': { - info: '已写入或应写入存储层的数据量。 '+ - '它包括I/O终端等内容,不受是否或 '+ - '不是需要实际的物理磁盘I/O。' + info: 'The amount of data that has been written or shall be written to the storage layer. '+ + 'It includes things such as terminal I/O and is unaffected by whether or '+ + 'not actual physical disk I/O was required.' }, 'groups.lwrites': { - info: '已写入或应写入存储层的数据量。 '+ - '它包括I/O终端等内容,不受是否或 '+ - '不是需要实际的物理磁盘I/O。' + info: 'The amount of data that has been written or shall be written to the storage layer. '+ + 'It includes things such as terminal I/O and is unaffected by whether or '+ + 'not actual physical disk I/O was required.' }, 'users.lwrites': { - info: '已写入或应写入存储层的数据量。 '+ - '它包括I/O终端等内容,不受是否或 '+ - '不是需要实际的物理磁盘I/O。' + info: 'The amount of data that has been written or shall be written to the storage layer. '+ + 'It includes things such as terminal I/O and is unaffected by whether or '+ + 'not actual physical disk I/O was required.' }, 'apps.files': { - info: '打开的文件和目录的数量。' + info: 'The number of open files and directories.' }, 'groups.files': { - info: '打开的文件和目录的数量。' + info: 'The number of open files and directories.' }, 'users.files': { - info: '打开的文件和目录的数量。' + info: 'The number of open files and directories.' }, // APPS mem 'apps.mem': { - info: '应用程序使用的真实内存(RAM)。这不包括共享内存。' + info: 'Real memory (RAM) used by applications. This does not include shared memory.' }, 'groups.mem': { - info: '每个用户组使用的真实内存(RAM)。这不包括共享内存。' + info: 'Real memory (RAM) used per user group. This does not include shared memory.' }, 'users.mem': { - info: '每个用户组使用的真实内存(RAM)。这不包括共享内存。' + info: 'Real memory (RAM) used per user group. This does not include shared memory.' }, 'apps.vmem': { - info: '由应用程序分配的虚拟内存。 '+ - '有关更多信息,请查看本文。' + info: 'Virtual memory allocated by applications. '+ + 'Check this article for more information.' }, 'groups.vmem': { - info: '自Netdata重新启动以来,每个用户组分配的虚拟内存。有关更多信息,请查看本文。' + info: 'Virtual memory allocated per user group since the Netdata restart. Please check this article for more information.' }, 'users.vmem': { - info: '自Netdata重新启动以来,每个用户组分配的虚拟内存。有关更多信息,请查看本文。' + info: 'Virtual memory allocated per user group since the Netdata restart. Please check this article for more information.' }, 'apps.minor_faults': { - info: '小故障的数量 '+ - '不需要从磁盘加载内存页面。 '+ - '当一个进程需要内存中的数据并分配给另一个进程时,会出现轻微的页面故障。 '+ - '他们在多个进程之间共享内存页面—— '+ - '无需将其他数据从磁盘读取到内存。' + info: 'The number of minor faults '+ + 'which have not required loading a memory page from the disk. '+ + 'Minor page faults occur when a process needs data that is in memory and is assigned to another process. '+ + 'They share memory pages between multiple processes – '+ + 'no additional data needs to be read from disk to memory.' }, 'groups.minor_faults': { - info: '小故障的数量 '+ - '不需要从磁盘加载内存页面。 '+ - '当一个进程需要内存中的数据并分配给另一个进程时,会出现轻微的页面故障。 '+ - '他们在多个进程之间共享内存页面—— '+ - '无需将其他数据从磁盘读取到内存。' + info: 'The number of minor faults '+ + 'which have not required loading a memory page from the disk. '+ + 'Minor page faults occur when a process needs data that is in memory and is assigned to another process. '+ + 'They share memory pages between multiple processes – '+ + 'no additional data needs to be read from disk to memory.' }, 'users.minor_faults': { - info: '小故障的数量 '+ - '不需要从磁盘加载内存页面。 '+ - '当一个进程需要内存中的数据并分配给另一个进程时,会出现轻微的页面故障。 '+ - '他们在多个进程之间共享内存页面——'+ - '无需将其他数据从磁盘读取到内存。' + info: 'The number of minor faults '+ + 'which have not required loading a memory page from the disk. '+ + 'Minor page faults occur when a process needs data that is in memory and is assigned to another process. '+ + 'They share memory pages between multiple processes – '+ + 'no additional data needs to be read from disk to memory.' }, // APPS processes 'apps.threads': { - info: '线程的数量。' + info: 'The number of threads.' }, 'groups.threads': { - info: '线程的数量。' + info: 'The number of threads.' }, 'users.threads': { - info: '线程的数量。' + info: 'The number of threads.' }, 'apps.processes': { - info: '进程的数量。' + info: 'The number of processes.' }, 'groups.processes': { - info: '进程的数量。' + info: 'The number of processes.' }, 'users.processes': { - info: '进程的数量。' + info: 'The number of processes.' }, 'apps.uptime': { - info: '组中至少一个进程运行的时间段。' + info: 'The period of time within which at least one process in the group has been running.' }, 'groups.uptime': { - info: '组中至少一个进程运行的时间段。' + info: 'The period of time within which at least one process in the group has been running.' }, 'users.uptime': { - info: '组中至少一个进程运行的时间段。' + info: 'The period of time within which at least one process in the group has been running.' }, 'apps.uptime_min': { - info: '组中进程中最短的正常运行时间。' + info: 'The shortest uptime among processes in the group.' }, 'groups.uptime_min': { - info: '组中进程中最短的正常运行时间。' + info: 'The shortest uptime among processes in the group.' }, 'users.uptime_min': { - info: '组中进程中最短的正常运行时间。' + info: 'The shortest uptime among processes in the group.' }, 'apps.uptime_avg': { - info: '组中进程的平均正常运行时间。' + info: 'The average uptime of processes in the group.' }, 'groups.uptime_avg': { - info: '组中进程的平均正常运行时间。' + info: 'The average uptime of processes in the group.' }, 'users.uptime_avg': { - info: '组中进程的平均正常运行时间。' + info: 'The average uptime of processes in the group.' }, 'apps.uptime_max': { - info: '组中进程中最长的正常运行时间。' + info: 'The longest uptime among processes in the group.' }, 'groups.uptime_max': { - info: '组中进程中最长的正常运行时间。' + info: 'The longest uptime among processes in the group.' }, 'users.uptime_max': { - info: '组中进程中最长的正常运行时间。' + info: 'The longest uptime among processes in the group.' }, 'apps.pipes': { - info: '开放数量 '+ - '管道。 '+ - '管道是一种单向数据通道,可用于进程间通信。' + info: 'The number of open '+ + 'pipes. '+ + 'A pipe is a unidirectional data channel that can be used for interprocess communication.' }, 'groups.pipes': { - info: '开放数量 '+ - '管道。 '+ - '管道是一种单向数据通道,可用于进程间通信。' + info: 'The number of open '+ + 'pipes. '+ + 'A pipe is a unidirectional data channel that can be used for interprocess communication.' }, 'users.pipes': { - info: '开放数量 '+ - '管道。 '+ - '管道是一种单向数据通道,可用于进程间通信。' + info: 'The number of open '+ + 'pipes. '+ + 'A pipe is a unidirectional data channel that can be used for interprocess communication.' }, // APPS swap 'apps.swap': { - info: '匿名私人页面交换虚拟内存的数量。 '+ - '这不包括共享交换内存。' + info: 'The amount of swapped-out virtual memory by anonymous private pages. '+ + 'This does not include shared swap memory.' }, 'groups.swap': { - info: '匿名私人页面交换虚拟内存的数量。 '+ - '这不包括共享交换内存。' + info: 'The amount of swapped-out virtual memory by anonymous private pages. '+ + 'This does not include shared swap memory.' }, 'users.swap': { - info: '匿名私人页面交换虚拟内存的数量。 '+ - '这不包括共享交换内存。' + info: 'The amount of swapped-out virtual memory by anonymous private pages. '+ + 'This does not include shared swap memory.' }, 'apps.major_faults': { - info: '重大故障的数量 '+ - '需要从磁盘加载内存页面。 '+ - '由于RAM中缺少所需的页面,会出现重大页面故障。 '+ - '当流程开始或需要读取其他数据时,它们是正常的 '+ - '在这些情况下,不表示问题状况。 '+ - '然而,一个主要的页面错误也可能是阅读已写出的内存页面的结果 '+ - '交换文件,这可能表明内存短缺。' + info: 'The number of major faults '+ + 'which have required loading a memory page from the disk. '+ + 'Major page faults occur because of the absence of the required page from the RAM. '+ + 'They are expected when a process starts or needs to read in additional data and '+ + 'in these cases do not indicate a problem condition. '+ + 'However, a major page fault can also be the result of reading memory pages that have been written out '+ + 'to the swap file, which could indicate a memory shortage.' }, 'groups.major_faults': { - info: '重大故障的数量 '+ - '需要从磁盘加载内存页面。 '+ - '由于RAM中缺少所需的页面,会出现重大页面故障。 '+ - '当流程开始或需要读取其他数据时,它们是正常的 '+ - '在这些情况下,不表示问题状况。 '+ - '然而,一个主要的页面错误也可能是阅读已写出的内存页面的结果 '+ - '交换文件,这可能表明内存短缺。' + info: 'The number of major faults '+ + 'which have required loading a memory page from the disk. '+ + 'Major page faults occur because of the absence of the required page from the RAM. '+ + 'They are expected when a process starts or needs to read in additional data and '+ + 'in these cases do not indicate a problem condition. '+ + 'However, a major page fault can also be the result of reading memory pages that have been written out '+ + 'to the swap file, which could indicate a memory shortage.' }, 'users.major_faults': { - info: '重大故障的数量 '+ - '需要从磁盘加载内存页面。 '+ - '由于RAM中缺少所需的页面,会出现重大页面故障。 '+ - '当流程开始或需要读取其他数据时,它们是正常的 '+ - '在这些情况下,不表示问题状况。 '+ - '然而,一个主要的页面错误也可能是阅读已写出的内存页面的结果 '+ - '交换文件,这可能表明内存短缺。' + info: 'The number of major faults '+ + 'which have required loading a memory page from the disk. '+ + 'Major page faults occur because of the absence of the required page from the RAM. '+ + 'They are expected when a process starts or needs to read in additional data and '+ + 'in these cases do not indicate a problem condition. '+ + 'However, a major page fault can also be the result of reading memory pages that have been written out '+ + 'to the swap file, which could indicate a memory shortage.' }, // APPS net 'apps.sockets': { - info: '打开sockets的数量。 '+ - 'sockets是一种在服务器上运行的程序之间实现进程间通信的方式, '+ - '或在不同服务器上运行的程序之间。这包括网络和UNIX sockets。' + info: 'The number of open sockets. '+ + 'Sockets are a way to enable inter-process communication between programs running on a server, '+ + 'or between programs running on separate servers. This includes both network and UNIX sockets.' }, 'groups.sockets': { - info: '打开sockets的数量。 '+ - 'sockets是一种在服务器上运行的程序之间实现进程间通信的方式, '+ - '或在不同服务器上运行的程序之间。这包括网络和UNIX sockets。' + info: 'The number of open sockets. '+ + 'Sockets are a way to enable inter-process communication between programs running on a server, '+ + 'or between programs running on separate servers. This includes both network and UNIX sockets.' }, 'users.sockets': { - info: '打开sockets的数量 '+ - 'sockets是一种在服务器上运行的程序之间实现进程间通信的方式, '+ - '或在不同服务器上运行的程序之间。这包括网络和UNIX sockets。' + info: 'The number of open sockets. '+ + 'Sockets are a way to enable inter-process communication between programs running on a server, '+ + 'or between programs running on separate servers. This includes both network and UNIX sockets.' }, // Apps eBPF stuff 'apps.file_open': { - info: '对内部函数do_sys_open
的调用(对于比5.5.19
更新的内核,我们在do_sys_openat2
中添加一个kprobe。),这是从' +
+ info: 'Calls to the internal function do_sys_open
(for kernels newer than 5.5.19
we add a kprobe to do_sys_openat2
. ), which is the common function called from' +
' open(2) ' +
' and openat(2). '
},
'apps.file_open_error': {
- info: '对内部函数do_sys_open
的调用失败(对于比5.5.19
更新的内核,我们向do_sys_openat2
添加了一个kprobe。)。'
+ info: 'Failed calls to the internal function do_sys_open
(for kernels newer than 5.5.19
we add a kprobe to do_sys_openat2
. ).'
},
'apps.file_closed': {
- info: '根据内核版本调用内部函数__close_fd或close_fd,该版本调用' +
+ info: 'Calls to the internal function __close_fd or close_fd according to your kernel version, which is called from' +
' close(2). '
},
'apps.file_close_error': {
- info: '根据内核版本,对内部函数__close_fd或close_fd的调用失败。'
+ info: 'Failed calls to the internal function __close_fd or close_fd according to your kernel version.'
},
'apps.file_deleted': {
- info: '调用函数vfs_unlink。此图表没有显示从文件系统中删除文件的所有事件,因为文件系统可以创建自己的功能来删除文件。'
+ info: 'Calls to the function vfs_unlink. This chart does not show all events that remove files from the filesystem, because filesystems can create their own functions to remove files.'
},
'apps.vfs_write_call': {
- info: '成功调用了函数vfs_write。如果此图表使用其他功能将数据存储在磁盘上,则可能不会显示所有文件系统事件。'
+ info: 'Successful calls to the function vfs_write. This chart may not show all filesystem events if it uses other functions to store data on disk.'
},
'apps.vfs_write_error': {
- info: '对函数vfs_write的调用失败。如果此图表使用其他功能将数据存储在磁盘上,则可能不会显示所有文件系统事件。'
+ info: 'Failed calls to the function vfs_write. This chart may not show all filesystem events if it uses other functions to store data on disk.'
},
'apps.vfs_read_call': {
- info: '成功调用函数vfs_read。如果此图表使用其他功能将数据存储在磁盘上,则可能不会显示所有文件系统事件。'
+ info: 'Successful calls to the function vfs_read. This chart may not show all filesystem events if it uses other functions to store data on disk.'
},
'apps.vfs_read_error': {
- info: '对函数vfs_read的调用失败。如果此图表使用其他功能将数据存储在磁盘上,则可能不会显示所有文件系统事件。'
+ info: 'Failed calls to the function vfs_read. This chart may not show all filesystem events if it uses other functions to store data on disk.'
},
'apps.vfs_write_bytes': {
- info: '使用函数vfs_write成功编写的字节总数。'
+ info: 'Total of bytes successfully written using the function vfs_write.'
},
'apps.vfs_read_bytes': {
- info: '使用函数vfs_read成功读取的总字节总数。'
+ info: 'Total of bytes successfully read using the function vfs_read.'
},
'apps.process_create': {
- info: '调用do_fork,或者kernel_clone
(如果您运行的内核更新于5.16),以创建一个新任务,这是用于定义内核内进程和任务的常用名称。此图表由eBPF插件提供。'
+ info: 'Calls to either do_fork, or kernel_clone
if you are running kernel newer than 5.9.16, to create a new task, which is the common name used to define process and tasks inside the kernel. This chart is provided by eBPF plugin.'
},
'apps.thread_create': {
- info: '调用do_fork,或者kernel_clone
(如果您运行的内核更新于5.16),以创建一个新任务,这是用于定义内核内进程和任务的常用名称。Netdata标识监控跟踪点sched_process_fork
的线程。此图表由eBPF插件提供。'
+ info: 'Calls to either do_fork, or kernel_clone
if you are running kernel newer than 5.9.16, to create a new task, which is the common name used to define process and tasks inside the kernel. Netdata identifies the threads monitoring tracepoint sched_process_fork
. This chart is provided by eBPF plugin.'
},
'apps.task_exit': {
- info: '对负责关闭的函数的调用(do_exit)任务。此图表由eBPF插件提供。'
+ info: 'Calls to the function responsible for closing (do_exit) tasks. This chart is provided by eBPF plugin.'
},
'apps.task_close': {
- info: '对负责发布功能的调用(release_task)任务。此图表由eBPF插件提供。'
+ info: 'Calls to the function responsible for releasing (release_task) tasks. This chart is provided by eBPF plugin.'
},
'apps.task_error': {
- info: '创建新进程或线程的错误数量。此图表由eBPF插件提供。'
+ info: 'Number of errors to create a new process or thread. This chart is provided by eBPF plugin.'
},
'apps.total_bandwidth_sent': {
- info: '由函数tcp_sendmsg
和udp_sendmsg
发送的字节。'
+ info: 'Bytes sent by functions tcp_sendmsg
and udp_sendmsg
.'
},
'apps.total_bandwidth_recv': {
- info: '函数tcp_cleanup_rbuf
和udp_recvmsg
收到的字节。我们使用tcp_cleanup_rbuf
而不是tcp_recvmsg
,因为这最后错过了tcp_read_sock()
流量,我们还需要有更多的探针来获取套接字和包大小。'
+ info: 'Bytes received by functions tcp_cleanup_rbuf
and udp_recvmsg
. We use tcp_cleanup_rbuf
instead tcp_recvmsg
, because this last misses tcp_read_sock()
traffic and we would also need to have more probes to get the socket and package size.'
},
'apps.bandwidth_tcp_send': {
- info: '函数tcp_sendmsg
用于收集从TCP连接发送的字节数。'
+ info: 'The function tcp_sendmsg
is used to collect number of bytes sent from TCP connections.'
},
'apps.bandwidth_tcp_recv': {
- info: 'tcp_cleanup_rbuf
函数用于收集从TCP连接接收的字节数。'
+ info: 'The function tcp_cleanup_rbuf
is used to collect number of bytes received from TCP connections.'
},
'apps.bandwidth_tcp_retransmit': {
- info: '当主机没有收到发送的数据包的预期返回时,将调用函数tcp_retransmit_skb
。'
+ info: 'The function tcp_retransmit_skb
is called when the host did not receive the expected return from a packet sent.'
},
'apps.bandwidth_udp_send': {
- info: 'udp_sendmsg
函数用于收集从UDP连接发送的字节数。'
+ info: 'The function udp_sendmsg
is used to collect number of bytes sent from UDP connections.'
},
'apps.bandwidth_udp_recv': {
- info: '函数udp_recvmsg
用于收集从UDP连接接收的字节数。'
+ info: 'The function udp_recvmsg
is used to collect number of bytes received from UDP connections.'
},
'apps.dc_hit_ratio': {
- info: '目录缓存中存在的文件访问百分比。100%表示访问的每个文件都存在于目录缓存中。如果目录缓存中不存在文件1)它们不存在于文件系统中,2)以前没有访问过文件。阅读更多关于目录缓存的信息。Netdata还在文件系统子菜单中对这些图表进行了摘要。'
+ info: 'Percentage of file accesses that were present in the directory cache. 100% means that every file that was accessed was present in the directory cache. If files are not present in the directory cache 1) they are not present in the file system, 2) the files were not accessed before. Read more about directory cache. Netdata also gives a summary for these charts in Filesystem submenu.'
},
'apps.dc_reference': {
- info: '文件访问计数器。引用
是文件访问时,请参阅filesystem.dc_reference
图表以了解更多上下文。阅读更多关于目录缓存的信息。'
+ info: 'Counters of file accesses. Reference
is when there is a file access, see the filesystem.dc_reference
chart for more context. Read more about directory cache.'
},
'apps.dc_not_cache': {
- info: '文件访问计数器。慢
是指有文件访问且目录缓存中不存在文件时,请参阅filesystem.dc_reference
图表以了解更多上下文。阅读更多关于目录缓存的信息。'
+ info: 'Counters of file accesses. Slow
is when there is a file access and the file is not present in the directory cache, see the filesystem.dc_reference
chart for more context. Read more about directory cache.'
},
'apps.dc_not_found': {
- info: '文件访问计数器。Miss
是当有文件访问且文件系统中找不到文件时,请参阅filesystem.dc_reference
图表以获取更多上下文。阅读更多关于目录缓存的信息。'
+ info: 'Counters of file accesses. Miss
is when there is file access and the file is not found in the filesystem, see the filesystem.dc_reference
chart for more context. Read more about directory cache.'
},
// ------------------------------------------------------------------------
@@ -2709,20 +2653,20 @@ netdataDashboard.context = {
return '';
}
],
- info: '网络接口传输的流量。'
+ info: 'The amount of traffic transferred by the network interface.'
},
'net.packets': {
- info: '网络接口传输的数据包数量。 '+
- '收到的multicast计数器是 '+
- '通常在设备级别计算(与接收不同),因此可能包括未到达主机的数据包。'
+ info: 'The number of packets transferred by the network interface. '+
+ 'Received multicast counter is '+
+ 'commonly calculated at the device level (unlike received) and therefore may include packets which did not reach the host.'
},
'net.errors': {
- info: '网络接口遇到的错误数量。
'+ - '入站 - 此界面上收到的不良数据包。 '+ - '它包括因长度无效、CRC、帧对齐和其他错误而掉落的数据包。 '+ - '出站 - 传输问题。 '+ - '它包括因运营商丢失而导致的帧传输错误、FIFO超支/下流、心跳、 '+ - '延迟碰撞和其他问题。
' + info: 'The number of errors encountered by the network interface.
'+ + 'Inbound - bad packets received on this interface. '+ + 'It includes dropped packets due to invalid length, CRC, frame alignment, and other errors. '+ + 'Outbound - transmit problems. '+ + 'It includes frames transmission errors due to loss of carrier, FIFO underrun/underflow, heartbeat, '+ + 'late collisions, and other problems.
' }, 'net.fifo': { info: 'The number of FIFO errors encountered by the network interface.
'+ @@ -2909,7 +2853,7 @@ netdataDashboard.context = { }, 'disk_ext.io': { - info: 'The amount of discarded data that are no longer in use by a mounted file system.' + info: '已装入的文件系统不再使用的丢弃数据量.' }, 'disk.ops': { @@ -2962,7 +2906,7 @@ netdataDashboard.context = { }, 'disk_ext.avgsz': { height: 0.5, - info: 'The average discard operation size.' + info: '平均丢弃操作大小.' }, 'disk.await': { height: 0.5, @@ -3674,7 +3618,7 @@ netdataDashboard.context = { + ' role="application">'; } ], - info: 'Total CPU utilization within the configured or system-wide (if not set) limits. '+ + info: 'CPU总利用率在配置或系统范围(如果未设置)限制内。 '+ 'When the CPU utilization of a cgroup exceeds the limit for the configured period, '+ 'the tasks belonging to its hierarchy will be throttled and are not allowed to run again until the next period.' }, @@ -3699,7 +3643,7 @@ netdataDashboard.context = { return ''; } ], - info: 'Total CPU utilization within the system-wide CPU resources (all cores). '+ + info: '系统范围CPU资源(所有内核)内的总CPU利用率。 '+ 'The amount of time spent by tasks of the cgroup in '+ 'user and kernel modes.' }, @@ -6353,57 +6297,57 @@ netdataDashboard.context = { }, 'systemd.scope_unit_state': { - info: '切片单元可用于对管理系统流程的单元进行分组(如服务和范围单元) ' + - '在用于资源管理的分层树中。 ' + - '请参阅 systemd.scope(5)。' + info: 'Slice units may be used to group units which manage system processes (such as service and scope units) ' + + 'in a hierarchical tree for resource management purposes. ' + + 'See systemd.scope(5).' }, 'systemd.slice_unit_state': { - info: '范围单位与服务单位相似,但也管理外国流程,而不是启动它们。 ' + - '请参阅 systemd.slice(5)。' + info: 'Scope units are similar to service units, but manage foreign processes instead of starting them as well. ' + + 'See systemd.slice(5).' }, 'anomaly_detection.dimensions': { - info: '被认为异常或正常的维度总数。 ' + info: 'Total count of dimensions considered anomalous or normal. ' }, 'anomaly_detection.anomaly_rate': { - info: '异常维度的百分比。 ' + info: 'Percentage of anomalous dimensions. ' }, 'anomaly_detection.detector_window': { - info: '探测器使用的有源窗口的长度。 ' + info: 'The length of the active window used by the detector. ' }, 'anomaly_detection.detector_events': { - info: '标志(0或1),用于显示探测器何时触发异常事件。 ' + info: 'Flags (0 or 1) to show when an anomaly event has been triggered by the detector. ' }, 'anomaly_detection.prediction_stats': { - info: '与异常检测预测时间相关的诊断指标。 ' + info: 'Diagnostic metrics relating to prediction time of anomaly detection. ' }, 'anomaly_detection.training_stats': { - info: '与异常检测培训时间相关的诊断指标。 ' + info: 'Diagnostic metrics relating to training time of anomaly detection. ' }, // ------------------------------------------------------------------------ // Supervisor 'fail2ban.failed_attempts': { - info: '尝试失败的次数。
'+ - '此图表反映了\'Found\'行的数量。 '+ - '找到意味着服务日志文件中的一行与其过滤器中的失败正则表达式匹配。
' + info: 'The number of failed attempts.
'+ + 'This chart reflects the number of \'Found\' lines. '+ + 'Found means a line in the service’s log file matches the failregex in its filter.
' }, 'fail2ban.bans': { - info: '禁令数量。
'+ - '此图表反映了\'Ban\'和\'Restore Ban\'行的数量。 '+ - '当上次配置的间隔(查找时间)发生失败的尝试次数(最大尝试)时,就会发生禁用操作。
' + info: 'The number of bans.
'+ + 'This chart reflects the number of \'Ban\' and \'Restore Ban\' lines. '+ + 'Ban action happens when the number of failed attempts (maxretry) occurred in the last configured interval (findtime).
' }, 'fail2ban.banned_ips': { - info: '禁用IP地址的数量。
' + info: 'The number of banned IP addresses.
' }, }; diff --git a/luci-app-netdata/root/usr/share/netdata/webcn/index.html b/luci-app-netdata/root/usr/share/netdata/webcn/index.html index 6bef614de..5a81a58ee 100644 --- a/luci-app-netdata/root/usr/share/netdata/webcn/index.html +++ b/luci-app-netdata/root/usr/share/netdata/webcn/index.html @@ -12,5 +12,5 @@ theme = localStorage.getItem('netdataTheme') || 'slate'; } const overlayEl = document.getElementById('loadOverlay'); - overlayEl.innerHTML = 'netdata