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]

Reply via email to