From 470fbfa768769bfab9d2495caf4bef93b1661b00 Mon Sep 17 00:00:00 2001 From: ViacheslavKlimov Date: Mon, 10 Apr 2023 12:12:57 +0300 Subject: [PATCH] Minor refactoring for monitoring service --- monitoring/src/main/conf/logback.xml | 6 ---- .../monitoring/client/WsClientFactory.java | 15 +++++---- .../monitoring/config/WsConfig.java | 33 ------------------- .../monitoring/data/Latencies.java | 2 -- .../channels/NotificationChannel.java | 2 -- .../impl/SlackNotificationChannel.java | 3 +- .../transport/TransportHealthChecker.java | 10 +++--- .../monitoring/util/TbStopWatch.java | 11 +++---- .../src/main/resources/tb-monitoring.yml | 5 +-- msa/monitoring/docker/Dockerfile | 2 +- msa/monitoring/docker/start-tb-monitoring.sh | 2 +- msa/monitoring/pom.xml | 2 +- 12 files changed, 25 insertions(+), 68 deletions(-) delete mode 100644 monitoring/src/main/java/org/thingsboard/monitoring/config/WsConfig.java diff --git a/monitoring/src/main/conf/logback.xml b/monitoring/src/main/conf/logback.xml index 98411ef482..58e49c7639 100644 --- a/monitoring/src/main/conf/logback.xml +++ b/monitoring/src/main/conf/logback.xml @@ -33,11 +33,6 @@ %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n - - - %d{ISO8601} [%thread] %-5level %logger{36} - %msg%n - - @@ -46,7 +41,6 @@ - diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/client/WsClientFactory.java b/monitoring/src/main/java/org/thingsboard/monitoring/client/WsClientFactory.java index 168830e1c7..1bab803dc9 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/client/WsClientFactory.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/client/WsClientFactory.java @@ -19,8 +19,8 @@ import lombok.RequiredArgsConstructor; import org.apache.http.ssl.SSLContextBuilder; import org.apache.http.ssl.SSLContexts; import org.apache.http.ssl.TrustStrategy; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; -import org.thingsboard.monitoring.config.WsConfig; import org.thingsboard.monitoring.data.Latencies; import org.thingsboard.monitoring.service.MonitoringReporter; import org.thingsboard.monitoring.util.TbStopWatch; @@ -32,20 +32,23 @@ import java.util.concurrent.TimeUnit; @RequiredArgsConstructor public class WsClientFactory { - private final WsConfig wsConfig; private final MonitoringReporter monitoringReporter; private final TbStopWatch stopWatch; + @Value("${monitoring.ws.base_url}") + private String baseUrl; + @Value("${monitoring.ws.request_timeout_ms}") + private int requestTimeoutMs; public WsClient createClient(String accessToken) throws Exception { - URI uri = new URI(wsConfig.getBaseUrl() + "/api/ws/plugins/telemetry?token=" + accessToken); + URI uri = new URI(baseUrl + "/api/ws/plugins/telemetry?token=" + accessToken); stopWatch.start(); - WsClient wsClient = new WsClient(uri, wsConfig.getRequestTimeoutMs()); - if (wsConfig.getBaseUrl().startsWith("wss")) { + WsClient wsClient = new WsClient(uri, requestTimeoutMs); + if (baseUrl.startsWith("wss")) { SSLContextBuilder builder = SSLContexts.custom(); builder.loadTrustMaterial(null, (TrustStrategy) (chain, authType) -> true); wsClient.setSocketFactory(builder.build().getSocketFactory()); } - boolean connected = wsClient.connectBlocking(wsConfig.getRequestTimeoutMs(), TimeUnit.MILLISECONDS); + boolean connected = wsClient.connectBlocking(requestTimeoutMs, TimeUnit.MILLISECONDS); if (!connected) { throw new IllegalStateException("Failed to establish WS session"); } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/config/WsConfig.java b/monitoring/src/main/java/org/thingsboard/monitoring/config/WsConfig.java deleted file mode 100644 index 58d0772471..0000000000 --- a/monitoring/src/main/java/org/thingsboard/monitoring/config/WsConfig.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright © 2016-2023 The Thingsboard Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.thingsboard.monitoring.config; - -import lombok.Getter; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -@Component -@Getter -public class WsConfig { - - @Value("${monitoring.ws.base_url}") - private String baseUrl; - @Value("${monitoring.ws.request_timeout_ms}") - private int requestTimeoutMs; - @Value("${monitoring.ws.check_timeout_ms}") - private int resultCheckTimeoutMs; - -} diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/data/Latencies.java b/monitoring/src/main/java/org/thingsboard/monitoring/data/Latencies.java index 19652b4a78..8141c34586 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/data/Latencies.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/data/Latencies.java @@ -22,10 +22,8 @@ public class Latencies { public static final String WS_UPDATE = "wsUpdate"; public static final String WS_CONNECT = "wsConnect"; public static final String LOG_IN = "logIn"; - public static final String WEB_UI_LOAD = "webUiLoad"; public static String transportRequest(TransportType transportType) { - int a = 2; return String.format("%sTransportRequest", transportType.name().toLowerCase()); } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/notification/channels/NotificationChannel.java b/monitoring/src/main/java/org/thingsboard/monitoring/notification/channels/NotificationChannel.java index 5224a4c38e..6c1c23cc28 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/notification/channels/NotificationChannel.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/notification/channels/NotificationChannel.java @@ -21,6 +21,4 @@ public interface NotificationChannel { void sendNotification(Notification notification); - void sendNotification(String message); - } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/notification/channels/impl/SlackNotificationChannel.java b/monitoring/src/main/java/org/thingsboard/monitoring/notification/channels/impl/SlackNotificationChannel.java index 13a36a589c..092ea0b8c6 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/notification/channels/impl/SlackNotificationChannel.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/notification/channels/impl/SlackNotificationChannel.java @@ -51,8 +51,7 @@ public class SlackNotificationChannel implements NotificationChannel { sendNotification(notification.getText()); } - @Override - public void sendNotification(String message) { + private void sendNotification(String message) { restTemplate.postForObject(webhookUrl, Map.of("text", message), String.class); } diff --git a/monitoring/src/main/java/org/thingsboard/monitoring/transport/TransportHealthChecker.java b/monitoring/src/main/java/org/thingsboard/monitoring/transport/TransportHealthChecker.java index a8163c45b1..9717b98f51 100644 --- a/monitoring/src/main/java/org/thingsboard/monitoring/transport/TransportHealthChecker.java +++ b/monitoring/src/main/java/org/thingsboard/monitoring/transport/TransportHealthChecker.java @@ -18,11 +18,11 @@ package org.thingsboard.monitoring.transport; import com.fasterxml.jackson.databind.node.TextNode; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.monitoring.client.WsClient; import org.thingsboard.monitoring.config.MonitoringTargetConfig; import org.thingsboard.monitoring.config.TransportType; -import org.thingsboard.monitoring.config.WsConfig; import org.thingsboard.monitoring.config.service.TransportMonitoringConfig; import org.thingsboard.monitoring.data.Latencies; import org.thingsboard.monitoring.data.MonitoredServiceKey; @@ -41,13 +41,13 @@ public abstract class TransportHealthChecker internal = ThreadLocal.withInitial(StopWatch::new); + private final StopWatch internal = new StopWatch(); public void start() { - StopWatch internal = getInternal(); internal.reset(); internal.start(); } public long getTime() { - StopWatch internal = getInternal(); internal.stop(); long nanoTime = internal.getNanoTime(); internal.reset(); return nanoTime; } - private StopWatch getInternal() { - return this.internal.get(); - } - } diff --git a/monitoring/src/main/resources/tb-monitoring.yml b/monitoring/src/main/resources/tb-monitoring.yml index a916f86b0d..403b29acc2 100644 --- a/monitoring/src/main/resources/tb-monitoring.yml +++ b/monitoring/src/main/resources/tb-monitoring.yml @@ -29,11 +29,12 @@ monitoring: ws: # WebSocket url, wss://DOMAIN by default base_url: '${WS_BASE_URL:wss://${monitoring.domain}}' - # Maximum time between request to transport and WebSocket update - check_timeout_ms: '${WS_CHECK_TIMEOUT_MS:5000}' # WebSocket request timeout request_timeout_ms: '${WS_REQUEST_TIMEOUT_MS:3000}' + # Maximum time between request to transport and WebSocket update + check_timeout_ms: '${CHECK_TIMEOUT_MS:5000}' + # Failures threshold for notifying failures_threshold: '${FAILURES_THRESHOLD:2}' # Whether to notify about next failures after first notification (will notify after each FAILURES_THRESHOLD failures) diff --git a/msa/monitoring/docker/Dockerfile b/msa/monitoring/docker/Dockerfile index be817dd31f..5da050eb91 100644 --- a/msa/monitoring/docker/Dockerfile +++ b/msa/monitoring/docker/Dockerfile @@ -1,5 +1,5 @@ # -# Copyright © 2016-2022 The Thingsboard Authors +# Copyright © 2016-2023 The Thingsboard Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/msa/monitoring/docker/start-tb-monitoring.sh b/msa/monitoring/docker/start-tb-monitoring.sh index e7d655674d..d5bcc52d37 100755 --- a/msa/monitoring/docker/start-tb-monitoring.sh +++ b/msa/monitoring/docker/start-tb-monitoring.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright © 2016-2022 The Thingsboard Authors +# Copyright © 2016-2023 The Thingsboard Authors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/msa/monitoring/pom.xml b/msa/monitoring/pom.xml index eab4ab746b..09b492f759 100644 --- a/msa/monitoring/pom.xml +++ b/msa/monitoring/pom.xml @@ -1,7 +1,7 @@