This is an automated email from the ASF dual-hosted git repository.
zhaoqingran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hertzbeat.git
The following commit(s) were added to refs/heads/master by this push:
new 9b31fe785 [improve]add zookeeper envi monitor (#2202)
9b31fe785 is described below
commit 9b31fe785f4d43b6e13c364554a15c7fc646f702
Author: Jast <[email protected]>
AuthorDate: Fri Jul 5 09:40:35 2024 +0800
[improve]add zookeeper envi monitor (#2202)
Co-authored-by: Logic <[email protected]>
---
.../collect/telnet/TelnetCollectImpl.java | 9 +-
.../common/constants/CollectorConstants.java | 4 +
.../src/main/resources/define/app-zookeeper.yml | 116 +++++++++++++++++++++
3 files changed, 127 insertions(+), 2 deletions(-)
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/telnet/TelnetCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/telnet/TelnetCollectImpl.java
index 7f867a690..134e3d54d 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/telnet/TelnetCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/telnet/TelnetCollectImpl.java
@@ -64,7 +64,7 @@ public class TelnetCollectImpl extends AbstractCollect {
if (telnetClient.isConnected()) {
long responseTime = System.currentTimeMillis() - startTime;
List<String> aliasFields = metrics.getAliasFields();
- Map<String, String> resultMap =
execCmdAndParseResult(telnetClient, telnet.getCmd());
+ Map<String, String> resultMap =
execCmdAndParseResult(telnetClient, telnet.getCmd(), app);
resultMap.put(CollectorConstants.RESPONSE_TIME,
Long.toString(responseTime));
if (resultMap.size() < aliasFields.size()) {
log.error("telnet response data not enough: {}",
resultMap);
@@ -115,7 +115,7 @@ public class TelnetCollectImpl extends AbstractCollect {
return DispatchConstants.PROTOCOL_TELNET;
}
- private static Map<String, String> execCmdAndParseResult(TelnetClient
telnetClient, String cmd) throws IOException {
+ private static Map<String, String> execCmdAndParseResult(TelnetClient
telnetClient, String cmd, String app) throws IOException {
if (cmd == null || cmd.trim().length() == 0) {
return new HashMap<>(16);
}
@@ -124,6 +124,11 @@ public class TelnetCollectImpl extends AbstractCollect {
outputStream.flush();
String result = new
String(telnetClient.getInputStream().readAllBytes());
String[] lines = result.split("\n");
+ if (CollectorConstants.ZOOKEEPER_APP.equals(app) &&
CollectorConstants.ZOOKEEPER_ENVI_HEAD.equals(lines[0])) {
+ lines = Arrays.stream(lines)
+ .skip(1)
+ .toArray(String[]::new);
+ }
boolean contains = lines[0].contains("=");
return Arrays.stream(lines)
.map(item -> {
diff --git
a/common/src/main/java/org/apache/hertzbeat/common/constants/CollectorConstants.java
b/common/src/main/java/org/apache/hertzbeat/common/constants/CollectorConstants.java
index daa08f270..ace1ea800 100644
---
a/common/src/main/java/org/apache/hertzbeat/common/constants/CollectorConstants.java
+++
b/common/src/main/java/org/apache/hertzbeat/common/constants/CollectorConstants.java
@@ -49,4 +49,8 @@ public interface CollectorConstants {
* MongoDB Atlas model
*/
String MONGO_DB_ATLAS_MODEL = "mongodb-atlas";
+
+ String ZOOKEEPER_APP = "zookeeper";
+
+ String ZOOKEEPER_ENVI_HEAD = "Environment:";
}
diff --git a/manager/src/main/resources/define/app-zookeeper.yml
b/manager/src/main/resources/define/app-zookeeper.yml
index dea1f4e8d..7708c94be 100644
--- a/manager/src/main/resources/define/app-zookeeper.yml
+++ b/manager/src/main/resources/define/app-zookeeper.yml
@@ -242,3 +242,119 @@ metrics:
port: ^_^port^_^
timeout: ^_^timeout^_^
cmd: mntr
+ - name: envi
+ priority: 1
+ fields:
+ - field: zk_version
+ type: 1
+ i18n:
+ zh-CN: ZooKeeper版本
+ en-US: ZooKeeper Version
+ - field: hostname
+ type: 1
+ i18n:
+ zh-CN: 主机名
+ en-US: Host Name
+ - field: java_version
+ type: 1
+ i18n:
+ zh-CN: Java版本
+ en-US: Java Version
+ - field: java_vendor
+ type: 1
+ i18n:
+ zh-CN: Java供应商
+ en-US: Java Vendor
+ - field: java_home
+ type: 1
+ i18n:
+ zh-CN: Java主目录
+ en-US: Java Home
+ - field: java_class_path
+ type: 1
+ i18n:
+ zh-CN: Java类路径
+ en-US: Java Class Path
+ - field: java_library_path
+ type: 1
+ i18n:
+ zh-CN: Java库路径
+ en-US: Java Library Path
+ - field: java_io_tmpdir
+ type: 1
+ i18n:
+ zh-CN: Java临时目录
+ en-US: Java IO Temp Directory
+ - field: java_compiler
+ type: 1
+ i18n:
+ zh-CN: Java编译器
+ en-US: Java Compiler
+ - field: os_name
+ type: 1
+ i18n:
+ zh-CN: 操作系统名称
+ en-US: OS Name
+ - field: os_arch
+ type: 1
+ i18n:
+ zh-CN: 操作系统架构
+ en-US: OS Architecture
+ - field: os_version
+ type: 1
+ i18n:
+ zh-CN: 操作系统版本
+ en-US: OS Version
+ - field: user_name
+ type: 1
+ i18n:
+ zh-CN: 用户名
+ en-US: User Name
+ - field: user_home
+ type: 1
+ i18n:
+ zh-CN: 用户主目录
+ en-US: User Home
+ - field: user_dir
+ type: 1
+ i18n:
+ zh-CN: 用户当前目录
+ en-US: User Directory
+ aliasFields:
+ - zookeeper.version
+ - host.name
+ - java.version
+ - java.vendor
+ - user.dir
+ - java.home
+ - java.class.path
+ - java.library.path
+ - java.io.tmpdir
+ - java.compiler
+ - os.name
+ - os.arch
+ - os.version
+ - user.name
+ - user.home
+ calculates:
+ - zk_version=zookeeper.version
+ - hostname=host.name
+ - java_version=java.version
+ - java_vendor=java.vendor
+ - user_dir=user.dir
+ - java_home=java.home
+ - java_class_path=java.class.path
+ - java_library_path=java.library.path
+ - java_io_tmpdir=java.io.tmpdir
+ - java_compiler=java.compiler
+ - os_name=os.name
+ - os_arch=os.arch
+ - os_version=os.version
+ - user_name=user.name
+ - user_home=user.home
+ protocol: telnet
+ telnet:
+ host: ^_^host^_^
+ port: ^_^port^_^
+ timeout: ^_^timeout^_^
+ cmd: envi
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]