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 d52ae67b1 [improve][HIP] HIP-01: Implement refactoring AbstractCollect
(#1966)
d52ae67b1 is described below
commit d52ae67b1243a2a5cba8626bcfecfd852ec40651
Author: crossoverJie <[email protected]>
AuthorDate: Mon May 13 00:05:51 2024 +0800
[improve][HIP] HIP-01: Implement refactoring AbstractCollect (#1966)
Co-authored-by: tomsun28 <[email protected]>
---
.../collector/collect/AbstractCollect.java | 8 ++
.../collect/database/JdbcCommonCollect.java | 35 ++---
.../collector/collect/dns/DnsCollectImpl.java | 10 +-
.../collector/collect/ftp/FtpCollectImpl.java | 37 ++----
.../collector/collect/http/HttpCollectImpl.java | 41 +++---
.../collect/http/SslCertificateCollectImpl.java | 31 +++--
.../collector/collect/httpsd/HttpsdImpl.java | 14 +-
.../collector/collect/icmp/IcmpCollectImpl.java | 14 +-
.../collector/collect/jmx/JmxCollectImpl.java | 20 +--
.../collect/memcached/MemcachedCollectImpl.java | 13 +-
.../collect/mongodb/MongodbSingleCollectImpl.java | 33 ++---
.../collect/mq/RocketmqSingleCollectImpl.java | 28 ++--
.../nebulagraph/NebulaGraphCollectImpl.java | 12 +-
.../collect/nebulagraph/NgqlCollectImpl.java | 27 ++--
.../collector/collect/nginx/NginxCollectImpl.java | 33 ++---
.../collector/collect/ntp/NtpCollectImpl.java | 12 +-
.../collector/collect/pop3/Pop3CollectImpl.java | 28 ++--
.../collector/collect/push/PushCollectImpl.java | 4 +
.../collect/redfish/RedfishCollectImpl.java | 30 ++---
.../collect/redis/RedisCommonCollectImpl.java | 21 +--
.../collector/collect/smtp/SmtpCollectImpl.java | 12 +-
.../collector/collect/snmp/SnmpCollectImpl.java | 28 ++--
.../collector/collect/ssh/SshCollectImpl.java | 20 +--
.../collect/telnet/TelnetCollectImpl.java | 11 +-
.../collector/collect/udp/UdpCollectImpl.java | 12 +-
.../collect/websocket/WebsocketCollectImpl.java | 13 +-
.../collector/dispatch/MetricsCollect.java | 7 +-
.../collector/collect/ftp/FtpCollectImplTest.java | 7 +-
.../collector/collect/httpsd/HttpsdImplTest.java | 4 +-
.../collect/nebulagraph/NgqlCollectImplTest.java | 5 +-
.../collect/nginx/NginxCollectImplTest.java | 12 +-
.../collector/collect/ntp/NtpCollectImplTest.java | 1 +
.../collect/redfish/RedfishCollectImplTest.java | 148 +++++++++++----------
.../collect/redis/RedisClusterCollectImplTest.java | 1 +
.../collect/redis/RedisSingleCollectImplTest.java | 1 +
.../collect/telnet/TelnetCollectImplTest.java | 2 +
.../collector/collect/udp/UdpCollectImplTest.java | 15 ++-
.../websocket/WebsocketCollectImplTest.java | 1 +
38 files changed, 361 insertions(+), 390 deletions(-)
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/AbstractCollect.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/AbstractCollect.java
index 07bbf6642..82caa0012 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/AbstractCollect.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/AbstractCollect.java
@@ -26,6 +26,14 @@ import org.apache.hertzbeat.common.entity.message.CollectRep;
*/
public abstract class AbstractCollect {
+ /**
+ * Pre-check metrics
+ * @param metrics metric configuration
+ * @throws IllegalArgumentException when validation failed
+ */
+ public abstract void preCheck(Metrics metrics) throws
IllegalArgumentException;
+
+
/**
* Real acquisition implementation interface
* @param builder response builder
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/database/JdbcCommonCollect.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/database/JdbcCommonCollect.java
index f1bf2872b..22943694c 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/database/JdbcCommonCollect.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/database/JdbcCommonCollect.java
@@ -63,17 +63,23 @@ public class JdbcCommonCollect extends AbstractCollect {
connectionCommonCache = new ConnectionCommonCache<>();
}
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ if (metrics == null || metrics.getJdbc() == null) {
+ throw new IllegalArgumentException("Database collect must has jdbc
params");
+ }
+ if (StringUtils.hasText(metrics.getJdbc().getUrl())) {
+ for (String keyword : VULNERABLE_KEYWORDS) {
+ if (metrics.getJdbc().getUrl().contains(keyword)) {
+ throw new IllegalArgumentException("Jdbc url prohibit
contains vulnerable param " + keyword);
+ }
+ }
+ }
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
long startTime = System.currentTimeMillis();
- // check the params
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
JdbcProtocol jdbcProtocol = metrics.getJdbc();
String databaseUrl = constructDatabaseUrl(jdbcProtocol);
int timeout = CollectUtil.getTimeout(jdbcProtocol.getTimeout());
@@ -311,17 +317,4 @@ public class JdbcCommonCollect extends AbstractCollect {
default -> throw new IllegalArgumentException("Not support
database platform: " + jdbcProtocol.getPlatform());
};
}
-
- private void validateParams(Metrics metrics) throws
IllegalArgumentException {
- if (metrics == null || metrics.getJdbc() == null) {
- throw new IllegalArgumentException("Database collect must has jdbc
params");
- }
- if (StringUtils.hasText(metrics.getJdbc().getUrl())) {
- for (String keyword : VULNERABLE_KEYWORDS) {
- if (metrics.getJdbc().getUrl().contains(keyword)) {
- throw new IllegalArgumentException("Jdbc url prohibit
contains vulnerable param " + keyword);
- }
- }
- }
- }
}
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 58cb70409..c85565b21 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,17 +92,19 @@ public class DnsCollectImpl extends AbstractCollect {
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
// 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);
- builder.setMsg("DNS collect must have a valid DNS protocol param!
");
- return;
+ throw new IllegalArgumentException("DNS collect must have a valid
DNS protocol param! ");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
DnsResolveResult dnsResolveResult;
try {
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/ftp/FtpCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/ftp/FtpCollectImpl.java
index e03f527b3..e287eea33 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/ftp/FtpCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/ftp/FtpCollectImpl.java
@@ -41,20 +41,25 @@ public class FtpCollectImpl extends AbstractCollect {
private static final String ANONYMOUS = "anonymous";
private static final String PASSWORD = "password";
+ /**
+ * preCheck params
+ */
+ public void preCheck(Metrics metrics) throws IllegalArgumentException{
+ if (metrics == null || metrics.getFtp() == null) {
+ throw new IllegalArgumentException("Ftp collect must has ftp
params.");
+ }
+ FtpProtocol ftpProtocol = metrics.getFtp();
+ Assert.hasText(ftpProtocol.getHost(), "Ftp Protocol host is
required.");
+ Assert.hasText(ftpProtocol.getPort(), "Ftp Protocol port is
required.");
+ Assert.hasText(ftpProtocol.getDirection(), "Ftp Protocol direction is
required.");
+ Assert.hasText(ftpProtocol.getTimeout(), "Ftp Protocol timeout is
required.");
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
FTPClient ftpClient = new FTPClient();
FtpProtocol ftpProtocol = metrics.getFtp();
- // Judge whether the basic information is wrong
- try {
- preCheck(metrics);
- } catch (Exception e) {
- log.info("[FtpProtocol] error: {}",
CommonUtil.getMessageFromThrowable(e), e);
- builder.setCode(CollectRep.Code.UN_CONNECTABLE);
- builder.setMsg(e.getMessage());
- return;
- }
// Set timeout
ftpClient.setControlKeepAliveReplyTimeout(Integer.parseInt(ftpProtocol.getTimeout()));
@@ -141,20 +146,6 @@ public class FtpCollectImpl extends AbstractCollect {
}
}
- /**
- * preCheck params
- */
- private void preCheck(Metrics metrics) {
- if (metrics == null || metrics.getFtp() == null) {
- throw new IllegalArgumentException("Ftp collect must has ftp
params.");
- }
- FtpProtocol ftpProtocol = metrics.getFtp();
- Assert.hasText(ftpProtocol.getHost(), "Ftp Protocol host is
required.");
- Assert.hasText(ftpProtocol.getPort(), "Ftp Protocol port is
required.");
- Assert.hasText(ftpProtocol.getDirection(), "Ftp Protocol direction is
required.");
- Assert.hasText(ftpProtocol.getTimeout(), "Ftp Protocol timeout is
required.");
- }
-
@Override
public String supportProtocol() {
return DispatchConstants.PROTOCOL_FTP;
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/http/HttpCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/http/HttpCollectImpl.java
index 2a2da5b43..01a4ff4d2 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/http/HttpCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/http/HttpCollectImpl.java
@@ -105,18 +105,28 @@ public class HttpCollectImpl extends AbstractCollect {
public HttpCollectImpl() {
}
-
+
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ if (metrics == null || metrics.getHttp() == null) {
+ throw new IllegalArgumentException("Http/Https collect must has
http params");
+ }
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder,
long monitorId, String app, Metrics metrics) {
long startTime = System.currentTimeMillis();
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
+
+ HttpProtocol httpProtocol = metrics.getHttp();
+ String url = httpProtocol.getUrl();
+ if (!StringUtils.hasText(url) || !url.startsWith(RIGHT_DASH)) {
+ httpProtocol.setUrl(StringUtils.hasText(url) ? RIGHT_DASH +
url.trim() : RIGHT_DASH);
+ }
+ if (CollectionUtils.isEmpty(httpProtocol.getSuccessCodes())) {
+ httpProtocol.setSuccessCodes(List.of("200"));
}
+
HttpContext httpContext = createHttpContext(metrics.getHttp());
HttpUriRequest request = createHttpRequest(metrics.getHttp());
try (CloseableHttpResponse response =
CommonHttpClient.getHttpClient().execute(request, httpContext)) {
@@ -198,23 +208,6 @@ public class HttpCollectImpl extends AbstractCollect {
return DispatchConstants.PROTOCOL_HTTP;
}
- private void validateParams(Metrics metrics) throws Exception {
- if (metrics == null || metrics.getHttp() == null) {
- throw new Exception("Http/Https collect must has http params");
- }
-
- HttpProtocol httpProtocol = metrics.getHttp();
- String url = httpProtocol.getUrl();
-
- if (!StringUtils.hasText(url) || !url.startsWith(RIGHT_DASH)) {
- httpProtocol.setUrl(StringUtils.hasText(url) ? RIGHT_DASH +
url.trim() : RIGHT_DASH);
- }
-
- if (CollectionUtils.isEmpty(httpProtocol.getSuccessCodes())) {
- httpProtocol.setSuccessCodes(List.of("200"));
- }
- }
-
private void parseResponseByWebsite(String resp, List<String> aliasFields,
HttpProtocol http,
CollectRep.MetricsData.Builder
builder, Long responseTime) {
CollectRep.ValueRow.Builder valueRowBuilder =
CollectRep.ValueRow.newBuilder();
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/http/SslCertificateCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/http/SslCertificateCollectImpl.java
index 96a4df12b..d214f10f3 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/http/SslCertificateCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/http/SslCertificateCollectImpl.java
@@ -56,18 +56,24 @@ public class SslCertificateCollectImpl extends
AbstractCollect {
public SslCertificateCollectImpl() {}
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ if (metrics == null || metrics.getHttp() == null) {
+ throw new IllegalArgumentException("Http/Https collect must has
http params");
+ }
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder,
long monitorId, String app, Metrics metrics) {
long startTime = System.currentTimeMillis();
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
+
HttpProtocol httpProtocol = metrics.getHttp();
+ String url = httpProtocol.getUrl();
+ if (!StringUtils.hasText(url) || !url.startsWith(RIGHT_DASH)) {
+ httpProtocol.setUrl(StringUtils.hasText(url) ? RIGHT_DASH +
url.trim() : RIGHT_DASH);
+ }
+
HttpsURLConnection urlConnection = null;
try {
String uri = "";
@@ -153,14 +159,7 @@ public class SslCertificateCollectImpl extends
AbstractCollect {
return DispatchConstants.PROTOCOL_SSL_CERT;
}
- private void validateParams(Metrics metrics) throws Exception {
- if (metrics == null || metrics.getHttp() == null) {
- throw new Exception("Http/Https collect must has http params");
- }
- HttpProtocol httpProtocol = metrics.getHttp();
- String url = httpProtocol.getUrl();
- if (!StringUtils.hasText(url) || !url.startsWith(RIGHT_DASH)) {
- httpProtocol.setUrl(StringUtils.hasText(url) ? RIGHT_DASH +
url.trim() : RIGHT_DASH);
- }
+ private void validateParams(Metrics metrics) {
+
}
}
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/httpsd/HttpsdImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/httpsd/HttpsdImpl.java
index a828850c1..977243dfe 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/httpsd/HttpsdImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/httpsd/HttpsdImpl.java
@@ -50,14 +50,16 @@ public class HttpsdImpl extends AbstractCollect {
private DiscoveryClientManagement discoveryClientManagement = new
DiscoveryClientManagement();
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
HttpsdProtocol httpsdProtocol = metrics.getHttpsd();
- // check params
- if (checkParamsFailed(httpsdProtocol)) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("http_sd collect must have a valid http_sd protocol
param! ");
- return;
+ if (Objects.isNull(httpsdProtocol) || httpsdProtocol.isInvalid()){
+ throw new IllegalArgumentException("http_sd collect must have a
valid http_sd protocol param! ");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ HttpsdProtocol httpsdProtocol = metrics.getHttpsd();
try (DiscoveryClient discoveryClient =
discoveryClientManagement.getClient(httpsdProtocol)) {
collectMetrics(builder, metrics, discoveryClient);
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/icmp/IcmpCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/icmp/IcmpCollectImpl.java
index e8042679e..832aaded4 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/icmp/IcmpCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/icmp/IcmpCollectImpl.java
@@ -39,14 +39,16 @@ public class IcmpCollectImpl extends AbstractCollect {
public IcmpCollectImpl(){}
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- long startTime = System.currentTimeMillis();
- // Simple validation requires mandatory parameters
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
if (metrics == null || metrics.getIcmp() == null) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("ICMP collect must has icmp params");
- return;
+ throw new IllegalArgumentException("ICMP collect must has icmp
params");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ long startTime = System.currentTimeMillis();
+
IcmpProtocol icmp = metrics.getIcmp();
// The default timeout is 6000 milliseconds
int timeout = 6000;
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/jmx/JmxCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/jmx/JmxCollectImpl.java
index a45186b08..f1c5ef7ea 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/jmx/JmxCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/jmx/JmxCollectImpl.java
@@ -75,11 +75,20 @@ public class JmxCollectImpl extends AbstractCollect {
connectionCommonCache = new ConnectionCommonCache<>();
}
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ Assert.isTrue(metrics != null && metrics.getJmx() != null, "JMX
collect must have JMX params");
+
+ String url = metrics.getJmx().getUrl();
+ if (StringUtils.hasText(url)) {
+ Assert.doesNotContain(url, IGNORED_STUB, "JMX url prohibit
contains stub, please check");
+ }
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
try {
- validateParams(metrics);
JmxProtocol jmxProtocol = metrics.getJmx();
// Create a jndi remote connection
@@ -164,15 +173,6 @@ public class JmxCollectImpl extends AbstractCollect {
return attributeValueMap;
}
- private void validateParams(Metrics metrics) {
- Assert.isTrue(metrics != null && metrics.getJmx() != null, "JMX
collect must have JMX params");
-
- String url = metrics.getJmx().getUrl();
- if (StringUtils.hasText(url)) {
- Assert.doesNotContain(url, IGNORED_STUB, "JMX url prohibit
contains stub, please check");
- }
- }
-
private JMXConnector getConnectSession(JmxProtocol jmxProtocol) throws
IOException {
CacheIdentifier identifier =
CacheIdentifier.builder().ip(jmxProtocol.getHost())
.port(jmxProtocol.getPort()).username(jmxProtocol.getUsername())
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/memcached/MemcachedCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/memcached/MemcachedCollectImpl.java
index 4c7d1df2e..137a26f30 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/memcached/MemcachedCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/memcached/MemcachedCollectImpl.java
@@ -55,13 +55,16 @@ public class MemcachedCollectImpl extends AbstractCollect {
private static final String STATS_END_RSP = "END";
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- long startTime = System.currentTimeMillis();
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
if (metrics == null || metrics.getMemcached() == null) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("Memcached collect must has Memcached params");
- return;
+ throw new IllegalArgumentException("Memcached collect must has
Memcached params");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ long startTime = System.currentTimeMillis();
+
MemcachedProtocol memcachedProtocol = metrics.getMemcached();
String memcachedHost = memcachedProtocol.getHost();
String memcachedPort = memcachedProtocol.getPort();
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/mongodb/MongodbSingleCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/mongodb/MongodbSingleCollectImpl.java
index 881ee41f9..d54f73591 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/mongodb/MongodbSingleCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/mongodb/MongodbSingleCollectImpl.java
@@ -85,15 +85,21 @@ public class MongodbSingleCollectImpl extends
AbstractCollect {
connectionCommonCache = new ConnectionCommonCache<>();
}
+ /**
+ * Check that the mongodb connection information in metrics is complete
+ */
+ public void preCheck(Metrics metrics) throws IllegalArgumentException{
+ Assert.isTrue(metrics != null && metrics.getMongodb() != null,
"Mongodb collect must has mongodb params");
+ MongodbProtocol mongodbProtocol = metrics.getMongodb();
+ Assert.hasText(mongodbProtocol.getCommand(), "Mongodb Protocol command
is required.");
+ Assert.hasText(mongodbProtocol.getHost(), "Mongodb Protocol host is
required.");
+ Assert.hasText(mongodbProtocol.getPort(), "Mongodb Protocol port is
required.");
+ Assert.hasText(mongodbProtocol.getUsername(), "Mongodb Protocol
username is required.");
+ Assert.hasText(mongodbProtocol.getPassword(), "Mongodb Protocol
password is required.");
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- try {
- preCheck(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
// The command naming convention is the command supported by the above
mongodb diagnostic. Support subdocument
// If the command does not include., execute the command directly and
use the document it returns;
// otherwise, you need to execute the metricsParts[0] command first
and then obtain the related subdocument
@@ -171,19 +177,6 @@ public class MongodbSingleCollectImpl extends
AbstractCollect {
});
}
- /**
- * Check that the mongodb connection information in metrics is complete
- */
- private void preCheck(Metrics metrics) {
- Assert.isTrue(metrics != null && metrics.getMongodb() != null,
"Mongodb collect must has mongodb params");
- MongodbProtocol mongodbProtocol = metrics.getMongodb();
- Assert.hasText(mongodbProtocol.getCommand(), "Mongodb Protocol command
is required.");
- Assert.hasText(mongodbProtocol.getHost(), "Mongodb Protocol host is
required.");
- Assert.hasText(mongodbProtocol.getPort(), "Mongodb Protocol port is
required.");
- Assert.hasText(mongodbProtocol.getUsername(), "Mongodb Protocol
username is required.");
- Assert.hasText(mongodbProtocol.getPassword(), "Mongodb Protocol
password is required.");
- }
-
public static CacheIdentifier getIdentifier(MongodbProtocol
mongodbProtocol){
// try to reuse connection
return CacheIdentifier.builder()
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/mq/RocketmqSingleCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/mq/RocketmqSingleCollectImpl.java
index 7547012d2..e3da22277 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/mq/RocketmqSingleCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/mq/RocketmqSingleCollectImpl.java
@@ -106,15 +106,19 @@ public class RocketmqSingleCollectImpl extends
AbstractCollect implements Dispos
ThreadUtils.shutdownGracefully(this.executorService, 10L,
TimeUnit.SECONDS);
}
+ /**
+ * preCheck params
+ * @param metrics metrics config
+ */
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ Assert.isTrue(metrics != null && metrics.getRocketmq() != null,
"Mongodb collect must has rocketmq params");
+ RocketmqProtocol rocketmq = metrics.getRocketmq();
+ Assert.hasText(rocketmq.getNamesrvHost(), "Rocketmq Protocol
namesrvHost is required.");
+ Assert.hasText(rocketmq.getNamesrvPort(), "Rocketmq Protocol
namesrvPort is required.");
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- try {
- preCheck(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
DefaultMQAdminExt mqAdminExt = null;
try {
mqAdminExt = this.createMqAdminExt(metrics);
@@ -141,16 +145,6 @@ public class RocketmqSingleCollectImpl extends
AbstractCollect implements Dispos
return DispatchConstants.PROTOCOL_ROCKETMQ;
}
- /**
- * preCheck params
- * @param metrics metrics config
- */
- private void preCheck(Metrics metrics) {
- Assert.isTrue(metrics != null && metrics.getRocketmq() != null,
"Mongodb collect must has rocketmq params");
- RocketmqProtocol rocketmq = metrics.getRocketmq();
- Assert.hasText(rocketmq.getNamesrvHost(), "Rocketmq Protocol
namesrvHost is required.");
- Assert.hasText(rocketmq.getNamesrvPort(), "Rocketmq Protocol
namesrvPort is required.");
- }
/**
* create the DefaultMQAdminExt
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/nebulagraph/NebulaGraphCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/nebulagraph/NebulaGraphCollectImpl.java
index 1ffb6b674..3be472396 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/nebulagraph/NebulaGraphCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/nebulagraph/NebulaGraphCollectImpl.java
@@ -69,13 +69,15 @@ public class NebulaGraphCollectImpl extends AbstractCollect
{
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- long startTime = System.currentTimeMillis();
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
if (metrics == null || metrics.getNebulaGraph() == null) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("NebulaGraph collect must has NebulaGraph params");
- return;
+ throw new IllegalArgumentException("NebulaGraph collect must has
NebulaGraph params");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ long startTime = System.currentTimeMillis();
NebulaGraphProtocol nebulaGraph = metrics.getNebulaGraph();
String timePeriod = nebulaGraph.getTimePeriod();
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/nebulagraph/NgqlCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/nebulagraph/NgqlCollectImpl.java
index 9c3e6a27d..fea98f302 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/nebulagraph/NgqlCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/nebulagraph/NgqlCollectImpl.java
@@ -50,16 +50,18 @@ public class NgqlCollectImpl extends AbstractCollect {
private static final String COMMAND_SHOW_JOBS = "SHOW JOBS;";
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ NgqlProtocol ngql = metrics.getNgql();
+ Assert.hasText(ngql.getHost(), "NGQL protocol host is required");
+ Assert.hasText(ngql.getPort(), "Port protocol host is required");
+ Assert.hasText(ngql.getParseType(), "NGQL protocol parseType is
required");
+ Assert.hasText(ngql.getUsername(), "NGQL protocol username is
required");
+ Assert.hasText(ngql.getPassword(), "NGQL protocol password is
required");
+ }
+
@Override
public void collect(Builder builder, long monitorId, String app, Metrics
metrics) {
- // check the params
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
NgqlProtocol ngql = metrics.getNgql();
StopWatch stopWatch = new StopWatch();
stopWatch.start();
@@ -93,15 +95,6 @@ public class NgqlCollectImpl extends AbstractCollect {
}
}
- private void validateParams(Metrics metrics) {
- NgqlProtocol ngql = metrics.getNgql();
- Assert.hasText(ngql.getHost(), "NGQL protocol host is required");
- Assert.hasText(ngql.getPort(), "Port protocol host is required");
- Assert.hasText(ngql.getParseType(), "NGQL protocol parseType is
required");
- Assert.hasText(ngql.getUsername(), "NGQL protocol username is
required");
- Assert.hasText(ngql.getPassword(), "NGQL protocol password is
required");
- }
-
/**
* parseType filterCount Filter the result set according to requirements
and count the quantity
* command: field#ngql#filterName#filterValue
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/nginx/NginxCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/nginx/NginxCollectImpl.java
index d9804182e..62ad719c0 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/nginx/NginxCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/nginx/NginxCollectImpl.java
@@ -80,17 +80,22 @@ public class NginxCollectImpl extends AbstractCollect {
}
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ final NginxProtocol nginxProtocol;
+ if (metrics == null || (nginxProtocol = metrics.getNginx()) == null ||
nginxProtocol.isInValid()) {
+ throw new IllegalArgumentException("Nginx collect must has nginx
params");
+ }
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
long startTime = System.currentTimeMillis();
- // validate parameters
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
+ NginxProtocol nginxProtocol = metrics.getNginx();
+ String url = nginxProtocol.getUrl();
+ if (StringUtils.isEmpty(url) || !url.startsWith(RIGHT_DASH)) {
+ nginxProtocol.setUrl(url == null ? RIGHT_DASH : RIGHT_DASH +
url.trim());
}
HttpContext httpContext = createHttpContext(metrics.getNginx());
@@ -130,20 +135,6 @@ public class NginxCollectImpl extends AbstractCollect {
return DispatchConstants.PROTOCOL_NGINX;
}
- private void validateParams(Metrics metrics) throws Exception {
- final NginxProtocol nginxProtocol;
-
- if (metrics == null || (nginxProtocol = metrics.getNginx()) == null ||
nginxProtocol.isInValid()) {
- throw new Exception("Nginx collect must has nginx params");
- }
-
- String url = nginxProtocol.getUrl();
-
- if (StringUtils.isEmpty(url) || !url.startsWith(RIGHT_DASH)) {
- nginxProtocol.setUrl(url == null ? RIGHT_DASH : RIGHT_DASH +
url.trim());
- }
- }
-
private HttpContext createHttpContext(NginxProtocol nginxProtocol) {
HttpHost host = new HttpHost(nginxProtocol.getHost(),
Integer.parseInt(nginxProtocol.getPort()));
HttpClientContext httpClientContext = new HttpClientContext();
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/ntp/NtpCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/ntp/NtpCollectImpl.java
index 1161e0fba..3720edbf5 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/ntp/NtpCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/ntp/NtpCollectImpl.java
@@ -51,13 +51,15 @@ public class NtpCollectImpl extends AbstractCollect {
}
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- long startTime = System.currentTimeMillis();
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
if (metrics == null || metrics.getNtp() == null) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("NTP collect must have NTP params");
- return;
+ throw new IllegalArgumentException("NTP collect must have NTP
params");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ long startTime = System.currentTimeMillis();
NtpProtocol ntpProtocol = metrics.getNtp();
String host = ntpProtocol.getHost();
int timeout = CollectUtil.getTimeout(ntpProtocol.getTimeout());
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/pop3/Pop3CollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/pop3/Pop3CollectImpl.java
index 1078570c5..ee54ffda5 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/pop3/Pop3CollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/pop3/Pop3CollectImpl.java
@@ -49,18 +49,18 @@ public class Pop3CollectImpl extends AbstractCollect {
}
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ Pop3Protocol pop3Protocol;
+ if (metrics == null || (pop3Protocol = metrics.getPop3()) == null ||
pop3Protocol.isInvalid()) {
+ throw new IllegalArgumentException("Pop3 collect must has pop3
params");
+ }
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
long startTime = System.currentTimeMillis();
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
-
Pop3Protocol pop3Protocol = metrics.getPop3();
POP3Client pop3Client = null;
boolean ssl = Boolean.parseBoolean(pop3Protocol.getSsl());
@@ -101,18 +101,6 @@ public class Pop3CollectImpl extends AbstractCollect {
return DispatchConstants.PROTOCOL_POP3;
}
- /**
- * validate parameters
- * @param metrics metrics
- * @throws Exception exception
- */
- private void validateParams(Metrics metrics) throws Exception {
- Pop3Protocol pop3Protocol;
- if (metrics == null || (pop3Protocol = metrics.getPop3()) == null ||
pop3Protocol.isInvalid()) {
- throw new Exception("Pop3 collect must has pop3 params");
- }
- }
-
/**
* create a POP3 connection【 with SSL encryption support 】
* @param pop3Protocol pop3 Protocol
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/push/PushCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/push/PushCollectImpl.java
index 6eb0d2ea3..1b2d3028b 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/push/PushCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/push/PushCollectImpl.java
@@ -67,6 +67,10 @@ public class PushCollectImpl extends AbstractCollect {
public PushCollectImpl() {
}
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder,
long monitorId, String app, Metrics metrics) {
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/redfish/RedfishCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/redfish/RedfishCollectImpl.java
index 439e695fe..3462c3ebd 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/redfish/RedfishCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/redfish/RedfishCollectImpl.java
@@ -51,14 +51,19 @@ public class RedfishCollectImpl extends AbstractCollect {
}
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ if (metrics == null || metrics.getRedfish() == null) {
+ throw new IllegalArgumentException("Redfish collect must has
redfish params");
}
+ RedfishProtocol redfishProtocol = metrics.getRedfish();
+ Assert.hasText(redfishProtocol.getHost(), "Redfish Protocol host is
required.");
+ Assert.hasText(redfishProtocol.getPort(), "Redfish Protocol port is
required.");
+ Assert.hasText(redfishProtocol.getUsername(), "Redfish Protocol
username is required.");
+ Assert.hasText(redfishProtocol.getPassword(), "Redfish Protocol
password is required.");
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
ConnectSession connectSession = null;
try {
connectSession = getRedfishConnectSession(metrics.getRedfish());
@@ -117,17 +122,6 @@ public class RedfishCollectImpl extends AbstractCollect {
return DispatchConstants.PROTOCOL_REDFISH;
}
- private void validateParams(Metrics metrics) throws Exception {
- if (metrics == null || metrics.getRedfish() == null) {
- throw new Exception("Redfish collect must has redfish params");
- }
- RedfishProtocol redfishProtocol = metrics.getRedfish();
- Assert.hasText(redfishProtocol.getHost(), "Redfish Protocol host is
required.");
- Assert.hasText(redfishProtocol.getPort(), "Redfish Protocol port is
required.");
- Assert.hasText(redfishProtocol.getUsername(), "Redfish Protocol
username is required.");
- Assert.hasText(redfishProtocol.getPassword(), "Redfish Protocol
password is required.");
- }
-
private List<String> getResourcesUri(Metrics metrics, ConnectSession
connectSession) {
String name = metrics.getName();
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/redis/RedisCommonCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/redis/RedisCommonCollectImpl.java
index c1223e9ba..dfc4e2587 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/redis/RedisCommonCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/redis/RedisCommonCollectImpl.java
@@ -75,15 +75,15 @@ public class RedisCommonCollectImpl extends AbstractCollect
{
connectionCommonCache = new ConnectionCommonCache<>();
}
+ public void preCheck(Metrics metrics) throws IllegalArgumentException{
+ Assert.noNullElements(new Object[] {metrics, metrics.getRedis()},
"Redis collect must has redis params");
+ RedisProtocol redisProtocol = metrics.getRedis();
+ Assert.hasText(redisProtocol.getHost(), "Redis Protocol host is
required.");
+ Assert.hasText(redisProtocol.getPort(), "Redis Protocol port is
required.");
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- try {
- preCheck(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
try {
if (Objects.nonNull(metrics.getRedis().getPattern()) &&
Objects.equals(metrics.getRedis().getPattern(), CLUSTER)) {
List<Map<String, String>> redisInfoList =
getClusterRedisInfo(metrics);
@@ -331,13 +331,6 @@ public class RedisCommonCollectImpl extends
AbstractCollect {
return result;
}
- private void preCheck(Metrics metrics) {
- Assert.noNullElements(new Object[] {metrics, metrics.getRedis()},
"Redis collect must has redis params");
- RedisProtocol redisProtocol = metrics.getRedis();
- Assert.hasText(redisProtocol.getHost(), "Redis Protocol host is
required.");
- Assert.hasText(redisProtocol.getPort(), "Redis Protocol port is
required.");
- }
-
@Override
public String supportProtocol() {
return DispatchConstants.PROTOCOL_REDIS;
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/smtp/SmtpCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/smtp/SmtpCollectImpl.java
index aef7290fa..66ef4acc4 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/smtp/SmtpCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/smtp/SmtpCollectImpl.java
@@ -45,13 +45,15 @@ public class SmtpCollectImpl extends AbstractCollect {
}
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- long startTime = System.currentTimeMillis();
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
if (metrics == null || metrics.getSmtp() == null) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("Smtp collect must has Smtp params");
- return;
+ throw new IllegalArgumentException("Smtp collect must has Smtp
params");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ long startTime = System.currentTimeMillis();
SmtpProtocol smtpProtocol = metrics.getSmtp();
String host = smtpProtocol.getHost();
String port = smtpProtocol.getPort();
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/snmp/SnmpCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/snmp/SnmpCollectImpl.java
index c1661efd0..78aa80d73 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/snmp/SnmpCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/snmp/SnmpCollectImpl.java
@@ -83,16 +83,20 @@ public class SnmpCollectImpl extends AbstractCollect {
private final Map<Integer, Snmp> versionSnmpService = new
ConcurrentHashMap<>(3);
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ if (metrics == null || metrics.getSnmp() == null) {
+ throw new IllegalArgumentException("Snmp collect must has snmp
params");
+ }
+ SnmpProtocol snmpProtocol = metrics.getSnmp();
+ Assert.hasText(snmpProtocol.getHost(), "snmp host is required.");
+ Assert.hasText(snmpProtocol.getPort(), "snmp port is required.");
+ Assert.notNull(snmpProtocol.getVersion(), "snmp version is required.");
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
long startTime = System.currentTimeMillis();
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
SnmpProtocol snmpProtocol = metrics.getSnmp();
int timeout = CollectUtil.getTimeout(snmpProtocol.getTimeout());
int snmpVersion = getSnmpVersion(snmpProtocol.getVersion());
@@ -262,16 +266,6 @@ public class SnmpCollectImpl extends AbstractCollect {
}
- private void validateParams(Metrics metrics) {
- if (metrics == null || metrics.getSnmp() == null) {
- throw new IllegalArgumentException("Snmp collect must has snmp
params");
- }
- SnmpProtocol snmpProtocol = metrics.getSnmp();
- Assert.hasText(snmpProtocol.getHost(), "snmp host is required.");
- Assert.hasText(snmpProtocol.getPort(), "snmp port is required.");
- Assert.notNull(snmpProtocol.getVersion(), "snmp version is required.");
- }
-
private synchronized Snmp getSnmpService(int snmpVersion, SnmpBuilder
snmpBuilder) throws IOException {
Snmp snmpService = versionSnmpService.get(snmpVersion);
if (snmpService != null) {
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/ssh/SshCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/ssh/SshCollectImpl.java
index cf2fad0a0..1a77c7937 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/ssh/SshCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/ssh/SshCollectImpl.java
@@ -75,16 +75,16 @@ public class SshCollectImpl extends AbstractCollect {
connectionCommonCache = new ConnectionCommonCache<>();
}
+ @Override
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
+ if (metrics == null || metrics.getSsh() == null) {
+ throw new IllegalArgumentException("ssh collect must has ssh
params");
+ }
+ }
+
@Override
public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
long startTime = System.currentTimeMillis();
- try {
- validateParams(metrics);
- } catch (Exception e) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg(e.getMessage());
- return;
- }
SshProtocol sshProtocol = metrics.getSsh();
boolean reuseConnection =
Boolean.parseBoolean(sshProtocol.getReuseConnection());
int timeout = CollectUtil.getTimeout(sshProtocol.getTimeout(),
DEFAULT_TIMEOUT);
@@ -327,10 +327,4 @@ public class SshCollectImpl extends AbstractCollect {
}
return clientSession;
}
-
- private void validateParams(Metrics metrics) throws Exception {
- if (metrics == null || metrics.getSsh() == null) {
- throw new Exception("ssh collect must has ssh params");
- }
- }
}
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 c53fdc8c5..46acd9d01 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
@@ -47,14 +47,15 @@ public class TelnetCollectImpl extends AbstractCollect {
public TelnetCollectImpl(){}
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- long startTime = System.currentTimeMillis();
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
if (metrics == null || metrics.getTelnet() == null) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("Telnet collect must has telnet params");
- return;
+ throw new IllegalArgumentException("Telnet collect must has Telnet
params");
}
+ }
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ long startTime = System.currentTimeMillis();
TelnetProtocol telnet = metrics.getTelnet();
int timeout = CollectUtil.getTimeout(telnet.getTimeout());
TelnetClient telnetClient = null;
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/udp/UdpCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/udp/UdpCollectImpl.java
index 0d733b5fc..b75e4aa12 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/udp/UdpCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/udp/UdpCollectImpl.java
@@ -47,13 +47,15 @@ public class UdpCollectImpl extends AbstractCollect {
}
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- long startTime = System.currentTimeMillis();
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
if (metrics == null || metrics.getUdp() == null) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("Udp collect must has udp params");
- return;
+ throw new IllegalArgumentException("Udp collect must has udp
params");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ long startTime = System.currentTimeMillis();
UdpProtocol udpProtocol = metrics.getUdp();
int timeout = CollectUtil.getTimeout(udpProtocol.getTimeout());
try (DatagramSocket socket = new DatagramSocket()) {
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/websocket/WebsocketCollectImpl.java
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/websocket/WebsocketCollectImpl.java
index 411683b93..065d94166 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/collect/websocket/WebsocketCollectImpl.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/collect/websocket/WebsocketCollectImpl.java
@@ -55,13 +55,16 @@ public class WebsocketCollectImpl extends AbstractCollect {
}
@Override
- public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
- long startTime = System.currentTimeMillis();
+ public void preCheck(Metrics metrics) throws IllegalArgumentException {
if (metrics == null || metrics.getWebsocket() == null) {
- builder.setCode(CollectRep.Code.FAIL);
- builder.setMsg("Websocket collect must has Websocket params");
- return;
+ throw new IllegalArgumentException("Websocket collect must has
Websocket params");
}
+ }
+
+ @Override
+ public void collect(CollectRep.MetricsData.Builder builder, long
monitorId, String app, Metrics metrics) {
+ long startTime = System.currentTimeMillis();
+
WebsocketProtocol websocketProtocol = metrics.getWebsocket();
// Compatible with monitoring templates without path parameters
if (StringUtils.isBlank(websocketProtocol.getPath())) {
diff --git
a/collector/src/main/java/org/apache/hertzbeat/collector/dispatch/MetricsCollect.java
b/collector/src/main/java/org/apache/hertzbeat/collector/dispatch/MetricsCollect.java
index 4457f31f4..610f93fb0 100644
---
a/collector/src/main/java/org/apache/hertzbeat/collector/dispatch/MetricsCollect.java
+++
b/collector/src/main/java/org/apache/hertzbeat/collector/dispatch/MetricsCollect.java
@@ -151,13 +151,18 @@ public class MetricsCollect implements Runnable,
Comparable<MetricsCollect> {
+ metrics.getName() + ", " + metrics.getProtocol());
} else {
try {
+ abstractCollect.preCheck(metrics);
abstractCollect.collect(response, monitorId, app, metrics);
} catch (Exception e) {
String msg = e.getMessage();
if (msg == null && e.getCause() != null) {
msg = e.getCause().getMessage();
}
- log.error("[Metrics Collect]: {}.", msg, e);
+ if (e instanceof IllegalArgumentException){
+ log.error("[Metrics PreCheck]: {}.", msg, e);
+ } else {
+ log.error("[Metrics Collect]: {}.", msg, e);
+ }
response.setCode(CollectRep.Code.FAIL);
if (msg != null) {
response.setMsg(msg);
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/ftp/FtpCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/ftp/FtpCollectImplTest.java
index 90c49d00a..2cd0a13c7 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/ftp/FtpCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/ftp/FtpCollectImplTest.java
@@ -19,6 +19,7 @@ package org.apache.hertzbeat.collector.collect.ftp;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@@ -44,7 +45,6 @@ class FtpCollectImplTest {
@Test
void testPreCheck() {
- CollectRep.MetricsData.Builder builder =
CollectRep.MetricsData.newBuilder();
FtpProtocol ftpProtocol = FtpProtocol.builder()
.host("127.0.0.1")
.username("admin")
@@ -60,8 +60,7 @@ class FtpCollectImplTest {
metrics.setName("server");
metrics.setFtp(ftpProtocol);
metrics.setAliasFields(aliasField);
- ftpCollectImpl.collect(builder, 1L, "test", metrics);
- assertEquals(builder.getCode(), CollectRep.Code.UN_CONNECTABLE);
+ assertThrows(IllegalArgumentException.class, ()->
ftpCollectImpl.preCheck(metrics));
}
@@ -96,7 +95,7 @@ class FtpCollectImplTest {
Metrics metrics = new Metrics();
metrics.setFtp(ftpProtocol);
metrics.setAliasFields(aliasField);
-
+ ftpCollectImpl.preCheck(metrics);
ftpCollectImpl.collect(builder, 1L, "test", metrics);
assertEquals(builder.getValuesCount(), 1);
for (CollectRep.ValueRow valueRow : builder.getValuesList()) {
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/httpsd/HttpsdImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/httpsd/HttpsdImplTest.java
index b67c63e1b..f0a619fe3 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/httpsd/HttpsdImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/httpsd/HttpsdImplTest.java
@@ -79,7 +79,7 @@ class HttpsdImplTest {
.build();
Mockito.when(client.getServerInfo()).thenReturn(serverInfo);
httpsd.setDiscoveryClientManagement(discoveryClientManagement);
-
+ httpsd.preCheck(metrics);
httpsd.collect(builder, 1L, "test", metrics);
for (CollectRep.ValueRow valueRow : builder.getValuesList()) {
assertEquals(host, valueRow.getColumns(0));
@@ -123,7 +123,7 @@ class HttpsdImplTest {
Mockito.when(client.getServices()).thenReturn(serviceInstances);
httpsd.setDiscoveryClientManagement(discoveryClientManagement);
-
+ httpsd.preCheck(metrics);
httpsd.collect(builder, 1L, "test", metrics);
assertEquals(builder.getValuesCount(), 1);
for (CollectRep.ValueRow valueRow : builder.getValuesList()) {
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/nebulagraph/NgqlCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/nebulagraph/NgqlCollectImplTest.java
index cb808896f..25f6050a3 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/nebulagraph/NgqlCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/nebulagraph/NgqlCollectImplTest.java
@@ -18,7 +18,6 @@
package org.apache.hertzbeat.collector.collect.nebulagraph;
import static org.junit.jupiter.api.Assertions.assertEquals;
-
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -84,6 +83,7 @@ class NgqlCollectImplTest {
Metrics metrics = new Metrics();
metrics.setNgql(ngqlProtocol);
metrics.setAliasFields(aliasField);
+ ngqlCollect.preCheck(metrics);
ngqlCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getValuesCount(), 1);
assertEquals(builder.getValues(0).getColumns(0), collation);
@@ -117,6 +117,7 @@ class NgqlCollectImplTest {
Metrics metrics = new Metrics();
metrics.setNgql(ngqlProtocol);
metrics.setAliasFields(aliasField);
+ ngqlCollect.preCheck(metrics);
ngqlCollect.collect(builder, 1L, "test", metrics);
assertEquals(1, builder.getValuesCount());
assertEquals("1", builder.getValues(0).getColumns(0));
@@ -149,6 +150,7 @@ class NgqlCollectImplTest {
Metrics metrics = new Metrics();
metrics.setNgql(ngqlProtocol);
metrics.setAliasFields(aliasField);
+ ngqlCollect.preCheck(metrics);
ngqlCollect.collect(builder, 1L, "test", metrics);
assertEquals(3, builder.getValuesCount());
for (int i = 0; i < result.size(); i++) {
@@ -186,6 +188,7 @@ class NgqlCollectImplTest {
Metrics metrics = new Metrics();
metrics.setNgql(ngqlProtocol);
metrics.setAliasFields(aliasField);
+ ngqlCollect.preCheck(metrics);
ngqlCollect.collect(builder, 1L, "test", metrics);
assertEquals(1, builder.getValuesCount());
for (int i = 0; i < 3; i++) {
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/nginx/NginxCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/nginx/NginxCollectImplTest.java
index 9443184d9..fdaf19d9b 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/nginx/NginxCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/nginx/NginxCollectImplTest.java
@@ -94,6 +94,7 @@ public class NginxCollectImplTest {
Metrics metrics = new Metrics();
metrics.setName("nginx_status");
metrics.setNginx(nginxProtocol);
+ nginxCollect.preCheck(metrics);
nginxCollect.collect(builder, monitorId, app, metrics);
assertEquals(builder.getCode(), CollectRep.Code.FAIL);
}
@@ -154,6 +155,7 @@ public class NginxCollectImplTest {
metrics.setFields(fields);
metrics.setName("nginx_status");
metrics.setNginx(nginxProtocol);
+ nginxCollect.preCheck(metrics);
nginxCollect.collect(builder, monitorId, app, metrics);
assertEquals(builder.getCode(), CollectRep.Code.SUCCESS);
for (CollectRep.ValueRow row : builder.getValuesList()) {
@@ -219,6 +221,7 @@ public class NginxCollectImplTest {
metrics.setFields(fields);
metrics.setName("req_status");
metrics.setNginx(nginxProtocol);
+ nginxCollect.preCheck(metrics);
nginxCollect.collect(builder, monitorId, app, metrics);
assertEquals(builder.getCode(), CollectRep.Code.SUCCESS);
assertEquals(builder.getValuesCount(), 2);
@@ -298,10 +301,11 @@ public class NginxCollectImplTest {
@Test
public void testNginxStatusMatch() {
- String status = "Active connections: 2\n" +
- "server accepts handled requests\n" +
- "4 4 2\n" +
- "Reading: 0 Writing: 1 Waiting: 1";
+ String status = """
+ Active connections: 2
+ server accepts handled requests
+ 4 4 2
+ Reading: 0 Writing: 1 Waiting: 1""";
// 使用正则表达式匹配并提取所需的键和对应的值
Pattern keyValuePattern = Pattern.compile("(\\w+): (\\d+)");
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/ntp/NtpCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/ntp/NtpCollectImplTest.java
index 56aeb8e1e..8f67c2869 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/ntp/NtpCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/ntp/NtpCollectImplTest.java
@@ -76,6 +76,7 @@ class NtpCollectImplTest {
Metrics metrics = new Metrics();
metrics.setNtp(telnetProtocol);
metrics.setAliasFields(aliasField);
+ ntpCollect.preCheck(metrics);
ntpCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getValuesCount(), 1);
for (CollectRep.ValueRow valueRow : builder.getValuesList()) {
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/redfish/RedfishCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/redfish/RedfishCollectImplTest.java
index 26ffe9f34..f2ddf1b34 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/redfish/RedfishCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/redfish/RedfishCollectImplTest.java
@@ -17,6 +17,9 @@
package org.apache.hertzbeat.collector.collect.redfish;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.hertzbeat.common.entity.job.Metrics;
import org.apache.hertzbeat.common.entity.job.protocol.RedfishProtocol;
import org.apache.hertzbeat.common.entity.message.CollectRep;
@@ -29,11 +32,9 @@ import org.mockito.MockedStatic;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
+/**
+ * Test case for {@link RedfishCollectImpl}
+ */
@ExtendWith(MockitoExtension.class)
public class RedfishCollectImplTest {
@Mock
@@ -69,6 +70,7 @@ public class RedfishCollectImplTest {
metrics.setAliasFields(aliasField);
metrics.setName("Chassis");
RedfishClient.create(redfishProtocol);
+ redfishCollect.preCheck(metrics);
redfishCollect.collect(builder, 1L, "test", metrics);
}
@@ -82,70 +84,77 @@ public class RedfishCollectImplTest {
metrics.setRedfish(redfishProtocol);
metrics.setAliasFields(aliasField);
metrics.setName("PowerSupply");
- String Chassis = "{\n" +
- " \"@odata.type\":
\"#ChassisCollection.ChassisCollection\",\n" +
- " \"Name\": \"Chassis Collection\",\n" +
- " \"[email protected]\": 2,\n" +
- " \"Members\": [\n" +
- " {\n" +
- " \"@odata.id\": \"/redfish/v1/Chassis/1U\"\n" +
- " },\n" +
- " {\n" +
- " \"@odata.id\": \"/redfish/v1/Chassis/2U\"\n" +
- " }\n" +
- " ]\n" +
- "}";
- String powerSupplies1U = "{\n" +
- " \"@odata.type\":
\"#PowerSupplyCollection.PowerSupplyCollection\",\n" +
- " \"Name\": \"Power Supply Collection\",\n" +
- " \"[email protected]\": 2,\n" +
- " \"Members\": [\n" +
- " {\n" +
- " \"@odata.id\":
\"/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay1\"\n" +
- " },\n" +
- " {\n" +
- " \"@odata.id\":
\"/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay2\"\n" +
- " }\n" +
- " ]\n" +
- "}";
- String powerSupplies2U = "{\n" +
- " \"@odata.type\":
\"#PowerSupplyCollection.PowerSupplyCollection\",\n" +
- " \"Name\": \"Power Supply Collection\",\n" +
- " \"[email protected]\": 2,\n" +
- " \"Members\": [\n" +
- " {\n" +
- " \"@odata.id\":
\"/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies/Bay1\"\n" +
- " },\n" +
- " {\n" +
- " \"@odata.id\":
\"/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies/Bay2\"\n" +
- " }\n" +
- " ]\n" +
- "}";
- String bay1U1 = "{\n" +
- " \"@odata.type\": \"#PowerSupply.v1_5_3.PowerSupply\",\n" +
- " \"Id\": \"Bay1\",\n" +
- " \"Name\": \"Power Supply Bay 1\",\n" +
- " \"@odata.id\":
\"/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay1\"\n" +
- "}";
- String bay2U1 = "{\n" +
- " \"@odata.type\": \"#PowerSupply.v1_5_3.PowerSupply\",\n" +
- " \"Id\": \"Bay2\",\n" +
- " \"Name\": \"Power Supply Bay 2\",\n" +
- " \"@odata.id\":
\"/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay2\"\n" +
- "}";
- String bay1U2 = "{\n" +
- " \"@odata.type\": \"#PowerSupply.v1_5_3.PowerSupply\",\n" +
- " \"Id\": \"Bay1\",\n" +
- " \"Name\": \"Power Supply Bay 1\",\n" +
- " \"@odata.id\":
\"/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies/Bay1\"\n" +
- "}";
- String bay2U2 = "{\n" +
- " \"@odata.type\": \"#PowerSupply.v1_5_3.PowerSupply\",\n" +
- " \"Id\": \"Bay2\",\n" +
- " \"Name\": \"Power Supply Bay 2\",\n" +
- " \"@odata.id\":
\"/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies/Bay2\"\n" +
- "}";
-
Mockito.when(redfishConnectSession.getRedfishResource("/redfish/v1/Chassis/")).thenReturn(Chassis);
+ String chassis = """
+ {
+ "@odata.type": "#ChassisCollection.ChassisCollection",
+ "Name": "Chassis Collection",
+ "[email protected]": 2,
+ "Members": [
+ {
+ "@odata.id": "/redfish/v1/Chassis/1U"
+ },
+ {
+ "@odata.id": "/redfish/v1/Chassis/2U"
+ }
+ ]
+ }""";
+ String powerSupplies1U = """
+ {
+ "@odata.type":
"#PowerSupplyCollection.PowerSupplyCollection",
+ "Name": "Power Supply Collection",
+ "[email protected]": 2,
+ "Members": [
+ {
+ "@odata.id":
"/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay1"
+ },
+ {
+ "@odata.id":
"/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay2"
+ }
+ ]
+ }""";
+ String powerSupplies2U = """
+ {
+ "@odata.type":
"#PowerSupplyCollection.PowerSupplyCollection",
+ "Name": "Power Supply Collection",
+ "[email protected]": 2,
+ "Members": [
+ {
+ "@odata.id":
"/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies/Bay1"
+ },
+ {
+ "@odata.id":
"/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies/Bay2"
+ }
+ ]
+ }""";
+ String bay1U1 = """
+ {
+ "@odata.type": "#PowerSupply.v1_5_3.PowerSupply",
+ "Id": "Bay1",
+ "Name": "Power Supply Bay 1",
+ "@odata.id":
"/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay1"
+ }""";
+ String bay2U1 = """
+ {
+ "@odata.type": "#PowerSupply.v1_5_3.PowerSupply",
+ "Id": "Bay2",
+ "Name": "Power Supply Bay 2",
+ "@odata.id":
"/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay2"
+ }""";
+ String bay1U2 = """
+ {
+ "@odata.type": "#PowerSupply.v1_5_3.PowerSupply",
+ "Id": "Bay1",
+ "Name": "Power Supply Bay 1",
+ "@odata.id":
"/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies/Bay1"
+ }""";
+ String bay2U2 = """
+ {
+ "@odata.type": "#PowerSupply.v1_5_3.PowerSupply",
+ "Id": "Bay2",
+ "Name": "Power Supply Bay 2",
+ "@odata.id":
"/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies/Bay2"
+ }""";
+
Mockito.when(redfishConnectSession.getRedfishResource("/redfish/v1/Chassis/")).thenReturn(chassis);
Mockito.when(redfishConnectSession.getRedfishResource("/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies")).thenReturn(powerSupplies1U);
Mockito.when(redfishConnectSession.getRedfishResource("/redfish/v1/Chassis/2U/PowerSubsystem/PowerSupplies")).thenReturn(powerSupplies2U);
Mockito.when(redfishConnectSession.getRedfishResource("/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay1")).thenReturn(bay1U1);
@@ -155,6 +164,7 @@ public class RedfishCollectImplTest {
MockedStatic<RedfishClient> clientMockedStatic =
Mockito.mockStatic(RedfishClient.class);
clientMockedStatic.when(() ->
RedfishClient.create(redfishProtocol)).thenReturn(redfishClient);
Mockito.when(redfishClient.connect()).thenReturn(redfishConnectSession);
+ redfishCollect.preCheck(metrics);
redfishCollect.collect(builder, 1L, "test", metrics);
assertEquals("/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay1",
builder.getValues(0).getColumns(0));
assertEquals("/redfish/v1/Chassis/1U/PowerSubsystem/PowerSupplies/Bay2",
builder.getValues(1).getColumns(0));
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisClusterCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisClusterCollectImplTest.java
index ebad258ca..f968a6a92 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisClusterCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisClusterCollectImplTest.java
@@ -128,6 +128,7 @@ public class RedisClusterCollectImplTest {
Mockito.when(cmd.info(metrics.getName())).thenReturn(info);
Mockito.when(cmd.clusterInfo()).thenReturn(clusterInfo);
+ redisClusterCollect.preCheck(metrics);
redisClusterCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getCode(), CollectRep.Code.SUCCESS);
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisSingleCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisSingleCollectImplTest.java
index 7effd0483..2a104d123 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisSingleCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/redis/RedisSingleCollectImplTest.java
@@ -126,6 +126,7 @@ class RedisSingleCollectImplTest {
Mockito.when(connection.sync()).thenReturn(cmd);
Mockito.when(cmd.info(metrics.getName())).thenReturn(redisInfo);
+ redisSingleCollect.preCheck(metrics);
redisSingleCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getCode(), CollectRep.Code.SUCCESS);
for (CollectRep.ValueRow row : builder.getValuesList()) {
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/telnet/TelnetCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/telnet/TelnetCollectImplTest.java
index 35e3327b0..78f3c9832 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/telnet/TelnetCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/telnet/TelnetCollectImplTest.java
@@ -86,6 +86,7 @@ class TelnetCollectImplTest {
Metrics metrics = new Metrics();
metrics.setTelnet(telnetProtocol);
metrics.setAliasFields(aliasField);
+ telnetCollect.preCheck(metrics);
telnetCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getValuesCount(), 1);
for (CollectRep.ValueRow valueRow : builder.getValuesList()) {
@@ -138,6 +139,7 @@ class TelnetCollectImplTest {
Metrics metrics = new Metrics();
metrics.setTelnet(telnetProtocol);
metrics.setAliasFields(aliasField);
+ telnetCollect.preCheck(metrics);
telnetCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getValuesCount(), 1);
for (CollectRep.ValueRow valueRow : builder.getValuesList()) {
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/udp/UdpCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/udp/UdpCollectImplTest.java
index f8ed3c0dd..e4dc2f75e 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/udp/UdpCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/udp/UdpCollectImplTest.java
@@ -19,6 +19,7 @@ package org.apache.hertzbeat.collector.collect.udp;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.PortUnreachableException;
@@ -46,18 +47,15 @@ class UdpCollectImplTest {
@Test
void testPreCheck() {
- CollectRep.MetricsData.Builder builder =
CollectRep.MetricsData.newBuilder();
List<String> aliasField = new ArrayList<>();
aliasField.add("responseTime");
Metrics metrics = new Metrics();
metrics.setAliasFields(aliasField);
- udpCollect.collect(builder, 1L, "test", metrics);
- assertEquals(builder.getCode(), CollectRep.Code.FAIL);
-
+ assertThrows(IllegalArgumentException.class, () ->
udpCollect.preCheck(metrics));
}
@Test
- void testCollect(){
+ void testCollect() {
CollectRep.MetricsData.Builder builder =
CollectRep.MetricsData.newBuilder();
UdpProtocol ftpProtocol = UdpProtocol.builder()
.timeout("10")
@@ -77,6 +75,7 @@ class UdpCollectImplTest {
Metrics metrics = new Metrics();
metrics.setUdp(ftpProtocol);
metrics.setAliasFields(aliasField);
+ udpCollect.preCheck(metrics);
udpCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getValuesCount(), 1);
for (CollectRep.ValueRow valueRow : builder.getValuesList()) {
@@ -87,7 +86,7 @@ class UdpCollectImplTest {
}
@Test
- void testCollectWithSocketException(){
+ void testCollectWithSocketException() {
CollectRep.MetricsData.Builder builder =
CollectRep.MetricsData.newBuilder();
UdpProtocol ftpProtocol = UdpProtocol.builder()
.timeout("10")
@@ -107,6 +106,7 @@ class UdpCollectImplTest {
Metrics metrics = new Metrics();
metrics.setUdp(ftpProtocol);
metrics.setAliasFields(aliasField);
+ udpCollect.preCheck(metrics);
udpCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getCode(), CollectRep.Code.UN_CONNECTABLE);
@@ -114,7 +114,7 @@ class UdpCollectImplTest {
}
@Test
- void testCollectWithPortUnreachableException(){
+ void testCollectWithPortUnreachableException() {
CollectRep.MetricsData.Builder builder =
CollectRep.MetricsData.newBuilder();
UdpProtocol ftpProtocol = UdpProtocol.builder()
.timeout("10")
@@ -134,6 +134,7 @@ class UdpCollectImplTest {
Metrics metrics = new Metrics();
metrics.setUdp(ftpProtocol);
metrics.setAliasFields(aliasField);
+ udpCollect.preCheck(metrics);
udpCollect.collect(builder, 1L, "test", metrics);
assertEquals(builder.getCode(), CollectRep.Code.UN_REACHABLE);
diff --git
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/websocket/WebsocketCollectImplTest.java
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/websocket/WebsocketCollectImplTest.java
index b7ce64359..e167f25b8 100644
---
a/collector/src/test/java/org/apache/hertzbeat/collector/collect/websocket/WebsocketCollectImplTest.java
+++
b/collector/src/test/java/org/apache/hertzbeat/collector/collect/websocket/WebsocketCollectImplTest.java
@@ -86,6 +86,7 @@ class WebsocketCollectImplTest {
Metrics metrics = new Metrics();
metrics.setWebsocket(websocketProtocol);
metrics.setAliasFields(aliasField);
+ websocketCollectImpl.preCheck(metrics);
websocketCollectImpl.collect(builder, 1L, "test", metrics);
assertEquals(builder.getValuesCount(), 1);
for (CollectRep.ValueRow valueRow : builder.getValuesList()) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]