This is an automated email from the ASF dual-hosted git repository.

gongchao 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 024152ec3 [bugfix] dns monitoring template add query class parameter 
(#1825)
024152ec3 is described below

commit 024152ec32b34217f67db14d39344b9377061007
Author: LiuTianyou <[email protected]>
AuthorDate: Wed Apr 24 00:09:28 2024 +0800

    [bugfix] dns monitoring template add query class parameter (#1825)
    
    Co-authored-by: tomsun28 <[email protected]>
---
 .../collector/collect/dns/DnsCollectImpl.java      |  4 +++
 .../collector/collect/dns/DnsCollectImplTest.java  |  1 +
 .../common/entity/job/protocol/DnsProtocol.java    |  3 +-
 home/docs/help/dns.md                              |  1 +
 .../current/help/dns.md                            |  1 +
 manager/src/main/resources/define/app-dns.yml      | 39 +++++++++++++++++++++-
 6 files changed, 47 insertions(+), 2 deletions(-)

diff --git 
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/dns/DnsCollectImpl.java
 
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/dns/DnsCollectImpl.java
index 57f5ffde1..138720c9e 100644
--- 
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/dns/DnsCollectImpl.java
+++ 
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/dns/DnsCollectImpl.java
@@ -92,6 +92,10 @@ public class DnsCollectImpl extends AbstractCollect {
 
     @Override
     public void collect(CollectRep.MetricsData.Builder builder, long 
monitorId, String app, Metrics metrics) {
+        // compatible with monitoring template configurations of older versions
+        if (StringUtils.isBlank(metrics.getDns().getQueryClass())) {
+            metrics.getDns().setQueryClass(DClass.string(DClass.IN));
+        }
         // check params
         if (checkDnsProtocolFailed(metrics.getDns())) {
             builder.setCode(CollectRep.Code.FAIL);
diff --git 
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/dns/DnsCollectImplTest.java
 
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/dns/DnsCollectImplTest.java
index a23d3f566..46601b818 100644
--- 
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/dns/DnsCollectImplTest.java
+++ 
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/dns/DnsCollectImplTest.java
@@ -38,6 +38,7 @@ public class DnsCollectImplTest {
         dnsCollect = new DnsCollectImpl();
         dnsProtocol = DnsProtocol.builder()
                 .dnsServerIP("8.8.8.8")
+                .queryClass("IN")
                 .address("www.google.com")
                 .build();
     }
diff --git 
a/common/src/main/java/org/apache/hertzbeat/common/entity/job/protocol/DnsProtocol.java
 
b/common/src/main/java/org/apache/hertzbeat/common/entity/job/protocol/DnsProtocol.java
index 6909683b7..331d3832c 100644
--- 
a/common/src/main/java/org/apache/hertzbeat/common/entity/job/protocol/DnsProtocol.java
+++ 
b/common/src/main/java/org/apache/hertzbeat/common/entity/job/protocol/DnsProtocol.java
@@ -36,8 +36,9 @@ public class DnsProtocol {
     private String address;
     private String timeout;
     private String tcp;
+    private String queryClass;
 
     public boolean isInvalid() {
-        return StringUtils.isAnyBlank(dnsServerIP, port, address, timeout, 
tcp);
+        return StringUtils.isAnyBlank(dnsServerIP, port, address, timeout, 
tcp, queryClass);
     }
 }
diff --git a/home/docs/help/dns.md b/home/docs/help/dns.md
index 0dfa1a076..7587452c1 100644
--- a/home/docs/help/dns.md
+++ b/home/docs/help/dns.md
@@ -18,6 +18,7 @@ keywords: [ open source monitoring tool, open source DNS 
monitoring tool, monito
 | Monitoring port     | The port for DNS service provided to the 
outside,default is 53.                                                          
|
 | Address For DNS     | The address for domain name resolution.                
                                                                  |
 | Connect Timeout     | Set the timeout for connecting to the DNS server, 
default is 6000 milliseconds.                                          |
+| Query Class         | Resource class for DNS query. Optional values include 
`IN`, `CHAOS`, `HESIOD`, `NONE`, and `ANY`,default is IN.          |
 | Use TCP Protocol    | DNS queries use the TCP protocol.                      
                                                                  |
 | Collection interval | Interval time of monitor periodic data collection, 
unit: second, and the minimum interval that can be set is 30 seconds. |
 | Bind Tags           | Used to classify and manage monitoring resources.      
                                                                  |
diff --git a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/dns.md 
b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/dns.md
index 775ca76c9..67ea72c17 100644
--- a/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/dns.md
+++ b/home/i18n/zh-cn/docusaurus-plugin-content-docs/current/help/dns.md
@@ -20,6 +20,7 @@ keywords: [ 开源监控系统, 开源DNS监控工具, 监控DNS指标 ]
 | 端口        | DNS服务对外提供的端口,默认为53。                            |
 | 域名解析的地址   | 域名解析的地址。                                       |
 | 连接超时时间    | 设置连接DNS服务器的超时时间,单位ms毫秒,默认6000毫秒。               |
+| 查询类别      | DNS查询的类别. 可选的值包括 `IN`, `CHAOS`, `HESIOD`, `NONE`, 和 `ANY`。默认值:IN 
|
 | 是否使用tcp协议 | 设置DNS查询是否使用tcp协议。                              |
 | 采集间隔      | 监控周期性数据采集的时间间隔,单位:秒,最小可设置为30秒。                 |
 | 绑定标签      | 用于对监控资源进行分类管理。                                 |
diff --git a/manager/src/main/resources/define/app-dns.yml 
b/manager/src/main/resources/define/app-dns.yml
index 7fefdb588..9650db25b 100644
--- a/manager/src/main/resources/define/app-dns.yml
+++ b/manager/src/main/resources/define/app-dns.yml
@@ -113,7 +113,29 @@ params:
     # default value false
     # 默认值 false
     defaultValue: false
-
+  - field: queryClass
+    # name-param field display i18n name
+    # name-参数字段显示名称
+    name:
+      zh-CN: 查询类别
+      en-US: Query Class
+    type: radio
+    required: true
+    options:
+      - label: IN
+        value: IN
+      - label: CHAOS
+        value: CHAOS
+      - label: HESIOD
+        value: HESIOD
+      - label: NONE
+        value: NONE
+      - label: ANY
+        value: ANY
+    # default value IN
+    # 默认值 IN
+    defaultValue: IN
+    hide: true
 # collect metrics config list
 # 采集指标配置列表
 metrics:
@@ -194,6 +216,9 @@ metrics:
       # 是否使用tcp协议
       # Use TCP Protocol
       tcp: ^_^tcp^_^
+      # 查询类别
+      # Query Class
+      queryClass: ^_^queryClass^_^
 
   # metrics - question
   # 监控指标 - question
@@ -236,6 +261,9 @@ metrics:
       # 是否使用tcp协议
       # Use TCP Protocol
       tcp: ^_^tcp^_^
+      # 查询类别
+      # Query Class
+      queryClass: ^_^queryClass^_^
 
   # metrics - answer
   # 监控指标 - answer
@@ -323,6 +351,9 @@ metrics:
       # 是否使用tcp协议
       # Use TCP Protocol
       tcp: ^_^tcp^_^
+      # 查询类别
+      # Query Class
+      queryClass: ^_^queryClass^_^
 
   # metrics - authority
   # 监控指标 - authority
@@ -410,6 +441,9 @@ metrics:
       # 是否使用tcp协议
       # Use TCP Protocol
       tcp: ^_^tcp^_^
+      # 查询类别
+      # Query Class
+      queryClass: ^_^queryClass^_^
 
   # metrics - additional
   # 监控指标 - additional
@@ -497,3 +531,6 @@ metrics:
       # 是否使用tcp协议
       # Use TCP Protocol
       tcp: ^_^tcp^_^
+      # 查询类别
+      # Query Class
+      queryClass: ^_^queryClass^_^


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to