diff --git a/application/src/main/java/org/thingsboard/server/service/system/DefaultSystemInfoService.java b/application/src/main/java/org/thingsboard/server/service/system/DefaultSystemInfoService.java index 6882157000..9b251687f4 100644 --- a/application/src/main/java/org/thingsboard/server/service/system/DefaultSystemInfoService.java +++ b/application/src/main/java/org/thingsboard/server/service/system/DefaultSystemInfoService.java @@ -19,7 +19,6 @@ import com.google.common.util.concurrent.FutureCallback; import com.google.protobuf.ProtocolStringList; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.common.util.ThingsBoardThreadFactory; @@ -82,19 +81,20 @@ public class DefaultSystemInfoService extends TbApplicationEventListener clusterSystemData = getSystemData(serviceInfoProvider.getServiceInfoWithCurrentSystemInfo()); BasicTsKvEntry clusterDataKv = new BasicTsKvEntry(ts, new JsonDataEntry("clusterSystemData", JacksonUtil.toString(clusterSystemData))); doSave(Collections.singletonList(clusterDataKv)); @@ -135,34 +134,13 @@ public class DefaultSystemInfoService extends TbApplicationEventListener tsList = new ArrayList<>(); - Long memoryUsage = getMemoryUsage(); - if (memoryUsage != null) { - tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("memoryUsage", memoryUsage))); - } - Long totalMemory = getTotalMemory(); - if (totalMemory != null) { - tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("totalMemory", totalMemory))); - } - Long freeMemory = getFreeMemory(); - if (freeMemory != null) { - tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("freeMemory", freeMemory))); - } - Double cpuUsage = getCpuUsage(); - if (cpuUsage != null) { - tsList.add(new BasicTsKvEntry(ts, new DoubleDataEntry("cpuUsage", cpuUsage))); - } - Double totalCpuUsage = getTotalCpuUsage(); - if (totalCpuUsage != null) { - tsList.add(new BasicTsKvEntry(ts, new DoubleDataEntry("totalCpuUsage", totalCpuUsage))); - } - Long freeDiscSpace = getFreeDiscSpace(); - if (freeDiscSpace != null) { - tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("freeDiscSpace", freeDiscSpace))); - } - Long totalDiscSpace = getTotalDiscSpace(); - if (totalDiscSpace != null) { - tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("totalDiscSpace", totalDiscSpace))); - } + getMemoryUsage().ifPresent(v -> tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("memoryUsage", v)))); + getTotalMemory().ifPresent(v -> tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("totalMemory", v)))); + getFreeMemory().ifPresent(v -> tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("freeMemory", v)))); + getCpuUsage().ifPresent(v -> tsList.add(new BasicTsKvEntry(ts, new DoubleDataEntry("cpuUsage", v)))); + getTotalCpuUsage().ifPresent(v -> tsList.add(new BasicTsKvEntry(ts, new DoubleDataEntry("totalCpuUsage", v)))); + getFreeDiscSpace().ifPresent(v -> tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("freeDiscSpace", v)))); + getTotalDiscSpace().ifPresent(v -> tsList.add(new BasicTsKvEntry(ts, new LongDataEntry("totalDiscSpace", v)))); doSave(tsList); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DefaultTbServiceInfoProvider.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DefaultTbServiceInfoProvider.java index db9334d3a0..a9eeb8ace0 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DefaultTbServiceInfoProvider.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DefaultTbServiceInfoProvider.java @@ -37,9 +37,9 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import static org.thingsboard.common.util.SystemUtil.getFreeMemory; import static org.thingsboard.common.util.SystemUtil.getCpuUsage; import static org.thingsboard.common.util.SystemUtil.getFreeDiscSpace; +import static org.thingsboard.common.util.SystemUtil.getFreeMemory; import static org.thingsboard.common.util.SystemUtil.getMemoryUsage; import static org.thingsboard.common.util.SystemUtil.getTotalCpuUsage; import static org.thingsboard.common.util.SystemUtil.getTotalDiscSpace; @@ -118,34 +118,13 @@ public class DefaultTbServiceInfoProvider implements TbServiceInfoProvider { private TransportProtos.SystemInfoProto getCurrentSystemInfoProto() { TransportProtos.SystemInfoProto.Builder builder = TransportProtos.SystemInfoProto.newBuilder(); - Long memoryUsage = getMemoryUsage(); - if (memoryUsage != null) { - builder.setMemoryUsage(memoryUsage); - } - Long totalMemory = getTotalMemory(); - if (totalMemory != null) { - builder.setTotalMemory(totalMemory); - } - Long freeMemory = getFreeMemory(); - if (freeMemory != null) { - builder.setFreeMemory(freeMemory); - } - Double cpuUsage = getCpuUsage(); - if (cpuUsage != null) { - builder.setCpuUsage(cpuUsage); - } - Double totalCpuUsage = getTotalCpuUsage(); - if (totalCpuUsage != null) { - builder.setTotalCpuUsage(totalCpuUsage); - } - Long freeDiscSpace = getFreeDiscSpace(); - if (freeDiscSpace != null) { - builder.setFreeDiscSpace(freeDiscSpace); - } - Long totalDiscSpace = getTotalDiscSpace(); - if (totalDiscSpace != null) { - builder.setTotalDiscSpace(totalDiscSpace); - } + getMemoryUsage().ifPresent(builder::setMemoryUsage); + getTotalMemory().ifPresent(builder::setTotalMemory); + getFreeMemory().ifPresent(builder::setFreeMemory); + getCpuUsage().ifPresent(builder::setCpuUsage); + getTotalCpuUsage().ifPresent(builder::setTotalCpuUsage); + getFreeDiscSpace().ifPresent(builder::setFreeDiscSpace); + getTotalDiscSpace().ifPresent(builder::setTotalDiscSpace); return builder.build(); } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DiscoveryService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DiscoveryService.java index dfd6e7dba5..e6aa604d00 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DiscoveryService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DiscoveryService.java @@ -23,4 +23,6 @@ public interface DiscoveryService { List getOtherServers(); + boolean isMonolith(); + } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DummyDiscoveryService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DummyDiscoveryService.java index b26284b1c4..8e2599ae34 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DummyDiscoveryService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/DummyDiscoveryService.java @@ -52,4 +52,9 @@ public class DummyDiscoveryService implements DiscoveryService { public List getOtherServers() { return Collections.emptyList(); } + + @Override + public boolean isMonolith() { + return true; + } } diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/ZkDiscoveryService.java b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/ZkDiscoveryService.java index 0a72f4064e..a14c2e4a4f 100644 --- a/common/queue/src/main/java/org/thingsboard/server/queue/discovery/ZkDiscoveryService.java +++ b/common/queue/src/main/java/org/thingsboard/server/queue/discovery/ZkDiscoveryService.java @@ -115,6 +115,11 @@ public class ZkDiscoveryService implements DiscoveryService, PathChildrenCacheLi .collect(Collectors.toList()); } + @Override + public boolean isMonolith() { + return false; + } + @AfterStartUp(order = AfterStartUp.DISCOVERY_SERVICE) public void onApplicationEvent(ApplicationReadyEvent event) { if (stopped) { @@ -288,8 +293,6 @@ public class ZkDiscoveryService implements DiscoveryService, PathChildrenCacheLi case CHILD_REMOVED: recalculatePartitions(); break; - case CHILD_UPDATED: - break; default: break; } diff --git a/common/util/src/main/java/org/thingsboard/common/util/SystemUtil.java b/common/util/src/main/java/org/thingsboard/common/util/SystemUtil.java index 18ddf1a0a0..686cfb28f2 100644 --- a/common/util/src/main/java/org/thingsboard/common/util/SystemUtil.java +++ b/common/util/src/main/java/org/thingsboard/common/util/SystemUtil.java @@ -24,6 +24,7 @@ import java.lang.management.MemoryMXBean; import java.nio.file.FileStore; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.Optional; @Slf4j public class SystemUtil { @@ -35,70 +36,70 @@ public class SystemUtil { HARDWARE = si.getHardware(); } - public static Long getMemoryUsage() { + public static Optional getMemoryUsage() { try { MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); - return memoryMXBean.getHeapMemoryUsage().getUsed(); + return Optional.of(memoryMXBean.getHeapMemoryUsage().getUsed()); } catch (Exception e) { log.debug("Failed to get memory usage!!!", e); } - return null; + return Optional.empty(); } - public static Long getTotalMemory() { + public static Optional getTotalMemory() { try { - return HARDWARE.getMemory().getTotal(); + return Optional.of(HARDWARE.getMemory().getTotal()); } catch (Exception e) { log.debug("Failed to get total memory!!!", e); } - return null; + return Optional.empty(); } - public static Long getFreeMemory() { + public static Optional getFreeMemory() { try { - return HARDWARE.getMemory().getAvailable(); + return Optional.of(HARDWARE.getMemory().getAvailable()); } catch (Exception e) { log.debug("Failed to get free memory!!!", e); } - return null; + return Optional.empty(); } - public static Double getCpuUsage() { + public static Optional getCpuUsage() { try { - return prepare(HARDWARE.getProcessor().getSystemLoadAverage()); + return Optional.of(prepare(HARDWARE.getProcessor().getSystemLoadAverage())); } catch (Exception e) { log.debug("Failed to get cpu usage!!!", e); } - return null; + return Optional.empty(); } - public static Double getTotalCpuUsage() { + public static Optional getTotalCpuUsage() { try { - return prepare(HARDWARE.getProcessor().getSystemCpuLoad() * 100); + return Optional.of(prepare(HARDWARE.getProcessor().getSystemCpuLoad() * 100)); } catch (Exception e) { log.debug("Failed to get total cpu usage!!!", e); } - return null; + return Optional.empty(); } - public static Long getFreeDiscSpace() { + public static Optional getFreeDiscSpace() { try { FileStore store = Files.getFileStore(Paths.get("/")); - return store.getUsableSpace(); + return Optional.of(store.getUsableSpace()); } catch (Exception e) { log.debug("Failed to get free disc space!!!", e); } - return null; + return Optional.empty(); } - public static Long getTotalDiscSpace() { + public static Optional getTotalDiscSpace() { try { FileStore store = Files.getFileStore(Paths.get("/")); - return store.getTotalSpace(); + return Optional.of(store.getTotalSpace()); } catch (Exception e) { log.debug("Failed to get total disc space!!!", e); } - return null; + return Optional.empty(); } private static Double prepare(Double d) {