diff --git a/application/pom.xml b/application/pom.xml
index a20aeaf485..311a3d4e06 100644
--- a/application/pom.xml
+++ b/application/pom.xml
@@ -97,6 +97,10 @@
org.thingsboard.common
queue
+
+ org.thingsboard.common
+ stats
+
org.thingsboard
dao
diff --git a/application/src/main/java/org/thingsboard/server/ThingsboardInstallApplication.java b/application/src/main/java/org/thingsboard/server/ThingsboardInstallApplication.java
index 86eea653ae..913c0d5498 100644
--- a/application/src/main/java/org/thingsboard/server/ThingsboardInstallApplication.java
+++ b/application/src/main/java/org/thingsboard/server/ThingsboardInstallApplication.java
@@ -29,7 +29,8 @@ import java.util.Arrays;
@ComponentScan({"org.thingsboard.server.install",
"org.thingsboard.server.service.component",
"org.thingsboard.server.service.install",
- "org.thingsboard.server.dao"})
+ "org.thingsboard.server.dao",
+ "org.thingsboard.server.common.stats"})
public class ThingsboardInstallApplication {
private static final String SPRING_CONFIG_NAME_KEY = "--spring.config.name";
diff --git a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java
index b7e9e95ea4..698b2fdaa6 100644
--- a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java
+++ b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbCoreConsumerService.java
@@ -31,7 +31,7 @@ import org.thingsboard.server.queue.TbQueueConsumer;
import org.thingsboard.server.queue.common.TbProtoQueueMsg;
import org.thingsboard.server.queue.discovery.PartitionChangeEvent;
import org.thingsboard.server.queue.provider.TbCoreQueueFactory;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.queue.util.TbCoreComponent;
import org.thingsboard.server.service.encoding.DataDecodingEncodingService;
import org.thingsboard.server.service.queue.processing.AbstractConsumerService;
diff --git a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java
index 820ab73867..a66d1e090c 100644
--- a/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java
+++ b/application/src/main/java/org/thingsboard/server/service/queue/DefaultTbRuleEngineConsumerService.java
@@ -42,7 +42,7 @@ import org.thingsboard.server.queue.discovery.PartitionChangeEvent;
import org.thingsboard.server.queue.provider.TbRuleEngineQueueFactory;
import org.thingsboard.server.queue.settings.TbQueueRuleEngineSettings;
import org.thingsboard.server.queue.settings.TbRuleEngineQueueConfiguration;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.queue.util.TbRuleEngineComponent;
import org.thingsboard.server.service.encoding.DataDecodingEncodingService;
import org.thingsboard.server.service.queue.processing.AbstractConsumerService;
diff --git a/application/src/main/java/org/thingsboard/server/service/queue/TbCoreConsumerStats.java b/application/src/main/java/org/thingsboard/server/service/queue/TbCoreConsumerStats.java
index cf221510bb..d37801bf45 100644
--- a/application/src/main/java/org/thingsboard/server/service/queue/TbCoreConsumerStats.java
+++ b/application/src/main/java/org/thingsboard/server/service/queue/TbCoreConsumerStats.java
@@ -17,9 +17,9 @@ package org.thingsboard.server.service.queue;
import lombok.extern.slf4j.Slf4j;
import org.thingsboard.server.gen.transport.TransportProtos;
-import org.thingsboard.server.common.msg.stats.StatsCounter;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
-import org.thingsboard.server.common.msg.stats.StatsType;
+import org.thingsboard.server.common.stats.StatsCounter;
+import org.thingsboard.server.common.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsType;
import java.util.*;
diff --git a/application/src/main/java/org/thingsboard/server/service/queue/TbRuleEngineConsumerStats.java b/application/src/main/java/org/thingsboard/server/service/queue/TbRuleEngineConsumerStats.java
index ef5c6fc173..41004b41f5 100644
--- a/application/src/main/java/org/thingsboard/server/service/queue/TbRuleEngineConsumerStats.java
+++ b/application/src/main/java/org/thingsboard/server/service/queue/TbRuleEngineConsumerStats.java
@@ -20,10 +20,10 @@ import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.msg.queue.RuleEngineException;
import org.thingsboard.server.gen.transport.TransportProtos.ToRuleEngineMsg;
import org.thingsboard.server.queue.common.TbProtoQueueMsg;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.service.queue.processing.TbRuleEngineProcessingResult;
-import org.thingsboard.server.common.msg.stats.StatsCounter;
-import org.thingsboard.server.common.msg.stats.StatsType;
+import org.thingsboard.server.common.stats.StatsCounter;
+import org.thingsboard.server.common.stats.StatsType;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
diff --git a/application/src/main/java/org/thingsboard/server/service/stats/DefaultJsInvokeStats.java b/application/src/main/java/org/thingsboard/server/service/stats/DefaultJsInvokeStats.java
index 5b5c440f98..d2b0e1225d 100644
--- a/application/src/main/java/org/thingsboard/server/service/stats/DefaultJsInvokeStats.java
+++ b/application/src/main/java/org/thingsboard/server/service/stats/DefaultJsInvokeStats.java
@@ -18,9 +18,9 @@ package org.thingsboard.server.service.stats;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.thingsboard.server.actors.JsInvokeStats;
-import org.thingsboard.server.common.msg.stats.StatsCounter;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
-import org.thingsboard.server.common.msg.stats.StatsType;
+import org.thingsboard.server.common.stats.StatsCounter;
+import org.thingsboard.server.common.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsType;
import javax.annotation.PostConstruct;
diff --git a/application/src/main/java/org/thingsboard/server/service/transport/TbCoreTransportApiService.java b/application/src/main/java/org/thingsboard/server/service/transport/TbCoreTransportApiService.java
index 37cfb9bbe6..a191a3167e 100644
--- a/application/src/main/java/org/thingsboard/server/service/transport/TbCoreTransportApiService.java
+++ b/application/src/main/java/org/thingsboard/server/service/transport/TbCoreTransportApiService.java
@@ -20,9 +20,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Service;
-import org.thingsboard.server.common.msg.stats.MessagesStats;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
-import org.thingsboard.server.common.msg.stats.StatsType;
+import org.thingsboard.server.common.stats.MessagesStats;
+import org.thingsboard.server.common.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsType;
import org.thingsboard.server.queue.TbQueueConsumer;
import org.thingsboard.server.queue.TbQueueProducer;
import org.thingsboard.server.queue.TbQueueResponseTemplate;
diff --git a/common/message/pom.xml b/common/message/pom.xml
index 413ce524b0..066beec7a1 100644
--- a/common/message/pom.xml
+++ b/common/message/pom.xml
@@ -69,21 +69,6 @@
protobuf-java
provided
-
-
-
- org.springframework.boot
- spring-boot-starter-actuator
-
-
- io.micrometer
- micrometer-core
-
-
- io.micrometer
- micrometer-registry-prometheus
-
-
junit
junit
diff --git a/common/pom.xml b/common/pom.xml
index 13b12bd3cd..de6542da2b 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -41,6 +41,7 @@
queue
transport
dao-api
+ stats
diff --git a/common/queue/pom.xml b/common/queue/pom.xml
index 82f62b4d2e..3d9a1a97ff 100644
--- a/common/queue/pom.xml
+++ b/common/queue/pom.xml
@@ -48,6 +48,10 @@
org.thingsboard.common
message
+
+ org.thingsboard.common
+ stats
+
org.apache.kafka
kafka-clients
diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/TbQueueRequestTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/TbQueueRequestTemplate.java
index 76c243c270..13ef723de2 100644
--- a/common/queue/src/main/java/org/thingsboard/server/queue/TbQueueRequestTemplate.java
+++ b/common/queue/src/main/java/org/thingsboard/server/queue/TbQueueRequestTemplate.java
@@ -16,7 +16,7 @@
package org.thingsboard.server.queue;
import com.google.common.util.concurrent.ListenableFuture;
-import org.thingsboard.server.common.msg.stats.MessagesStats;
+import org.thingsboard.server.common.stats.MessagesStats;
public interface TbQueueRequestTemplate {
diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/common/DefaultTbQueueRequestTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/common/DefaultTbQueueRequestTemplate.java
index 177e29ce4c..b20e53893b 100644
--- a/common/queue/src/main/java/org/thingsboard/server/queue/common/DefaultTbQueueRequestTemplate.java
+++ b/common/queue/src/main/java/org/thingsboard/server/queue/common/DefaultTbQueueRequestTemplate.java
@@ -28,7 +28,7 @@ import org.thingsboard.server.queue.TbQueueMsg;
import org.thingsboard.server.queue.TbQueueMsgMetadata;
import org.thingsboard.server.queue.TbQueueProducer;
import org.thingsboard.server.queue.TbQueueRequestTemplate;
-import org.thingsboard.server.common.msg.stats.MessagesStats;
+import org.thingsboard.server.common.stats.MessagesStats;
import java.util.List;
import java.util.UUID;
diff --git a/common/queue/src/main/java/org/thingsboard/server/queue/common/DefaultTbQueueResponseTemplate.java b/common/queue/src/main/java/org/thingsboard/server/queue/common/DefaultTbQueueResponseTemplate.java
index 6e9870c7fe..741b9c0971 100644
--- a/common/queue/src/main/java/org/thingsboard/server/queue/common/DefaultTbQueueResponseTemplate.java
+++ b/common/queue/src/main/java/org/thingsboard/server/queue/common/DefaultTbQueueResponseTemplate.java
@@ -23,7 +23,7 @@ import org.thingsboard.server.queue.TbQueueHandler;
import org.thingsboard.server.queue.TbQueueMsg;
import org.thingsboard.server.queue.TbQueueProducer;
import org.thingsboard.server.queue.TbQueueResponseTemplate;
-import org.thingsboard.server.common.msg.stats.MessagesStats;
+import org.thingsboard.server.common.stats.MessagesStats;
import java.util.List;
import java.util.UUID;
diff --git a/common/stats/pom.xml b/common/stats/pom.xml
new file mode 100644
index 0000000000..1e8fc57115
--- /dev/null
+++ b/common/stats/pom.xml
@@ -0,0 +1,92 @@
+
+
+
+ 4.0.0
+
+ org.thingsboard
+ 2.5.3-SNAPSHOT
+ common
+
+ org.thingsboard.common
+ stats
+ jar
+
+ Thingsboard Server Stats
+ https://thingsboard.io
+
+
+ UTF-8
+ ${basedir}/../..
+
+
+
+
+ com.google.guava
+ guava
+ provided
+
+
+ org.slf4j
+ slf4j-api
+
+
+ org.slf4j
+ log4j-over-slf4j
+
+
+ ch.qos.logback
+ logback-core
+
+
+ ch.qos.logback
+ logback-classic
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ io.micrometer
+ micrometer-core
+
+
+ io.micrometer
+ micrometer-registry-prometheus
+
+
+
+ junit
+ junit
+ test
+
+
+ org.mockito
+ mockito-all
+ test
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultCounter.java b/common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultCounter.java
similarity index 96%
rename from common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultCounter.java
rename to common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultCounter.java
index b6fe419c51..9934e4a46f 100644
--- a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultCounter.java
+++ b/common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultCounter.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.common.msg.stats;
+package org.thingsboard.server.common.stats;
import io.micrometer.core.instrument.Counter;
diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultMessagesStats.java b/common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultMessagesStats.java
similarity index 97%
rename from common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultMessagesStats.java
rename to common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultMessagesStats.java
index 12df2593b6..aaba689aec 100644
--- a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultMessagesStats.java
+++ b/common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultMessagesStats.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.common.msg.stats;
+package org.thingsboard.server.common.stats;
public class DefaultMessagesStats implements MessagesStats {
private final StatsCounter totalCounter;
diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultStatsFactory.java b/common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultStatsFactory.java
similarity index 98%
rename from common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultStatsFactory.java
rename to common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultStatsFactory.java
index 3b084729cb..8ee75c859e 100644
--- a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/DefaultStatsFactory.java
+++ b/common/stats/src/main/java/org/thingsboard/server/common/stats/DefaultStatsFactory.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.common.msg.stats;
+package org.thingsboard.server.common.stats;
import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/MessagesStats.java b/common/stats/src/main/java/org/thingsboard/server/common/stats/MessagesStats.java
similarity index 95%
rename from common/message/src/main/java/org/thingsboard/server/common/msg/stats/MessagesStats.java
rename to common/stats/src/main/java/org/thingsboard/server/common/stats/MessagesStats.java
index cc080c5dd4..f986445566 100644
--- a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/MessagesStats.java
+++ b/common/stats/src/main/java/org/thingsboard/server/common/stats/MessagesStats.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.common.msg.stats;
+package org.thingsboard.server.common.stats;
public interface MessagesStats {
default void incrementTotal() {
diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsCounter.java b/common/stats/src/main/java/org/thingsboard/server/common/stats/StatsCounter.java
similarity index 95%
rename from common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsCounter.java
rename to common/stats/src/main/java/org/thingsboard/server/common/stats/StatsCounter.java
index 971da18e1e..221ca7afbb 100644
--- a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsCounter.java
+++ b/common/stats/src/main/java/org/thingsboard/server/common/stats/StatsCounter.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.common.msg.stats;
+package org.thingsboard.server.common.stats;
import io.micrometer.core.instrument.Counter;
diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsFactory.java b/common/stats/src/main/java/org/thingsboard/server/common/stats/StatsFactory.java
similarity index 94%
rename from common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsFactory.java
rename to common/stats/src/main/java/org/thingsboard/server/common/stats/StatsFactory.java
index b21ea917ce..b979d61f35 100644
--- a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsFactory.java
+++ b/common/stats/src/main/java/org/thingsboard/server/common/stats/StatsFactory.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.common.msg.stats;
+package org.thingsboard.server.common.stats;
public interface StatsFactory {
StatsCounter createStatsCounter(String key, String statsName);
diff --git a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsType.java b/common/stats/src/main/java/org/thingsboard/server/common/stats/StatsType.java
similarity index 94%
rename from common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsType.java
rename to common/stats/src/main/java/org/thingsboard/server/common/stats/StatsType.java
index c5a6c1f3d2..430f63ecf7 100644
--- a/common/message/src/main/java/org/thingsboard/server/common/msg/stats/StatsType.java
+++ b/common/stats/src/main/java/org/thingsboard/server/common/stats/StatsType.java
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.thingsboard.server.common.msg.stats;
+package org.thingsboard.server.common.stats;
public enum StatsType {
RULE_ENGINE("ruleEngine"), CORE("core"), TRANSPORT("transport"), JS_INVOKE("jsInvoke"), RATE_EXECUTOR("rateExecutor");
diff --git a/common/transport/transport-api/pom.xml b/common/transport/transport-api/pom.xml
index 2724c0eb83..3681de25e6 100644
--- a/common/transport/transport-api/pom.xml
+++ b/common/transport/transport-api/pom.xml
@@ -40,6 +40,10 @@
org.thingsboard.common
queue
+
+ org.thingsboard.common
+ stats
+
org.thingsboard.common
data
diff --git a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java
index 6162337ef6..2ca27b9dfe 100644
--- a/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java
+++ b/common/transport/transport-api/src/main/java/org/thingsboard/server/common/transport/service/DefaultTransportService.java
@@ -55,9 +55,9 @@ import org.thingsboard.server.queue.discovery.PartitionService;
import org.thingsboard.server.queue.discovery.TbServiceInfoProvider;
import org.thingsboard.server.queue.provider.TbQueueProducerProvider;
import org.thingsboard.server.queue.provider.TbTransportQueueFactory;
-import org.thingsboard.server.common.msg.stats.MessagesStats;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
-import org.thingsboard.server.common.msg.stats.StatsType;
+import org.thingsboard.server.common.stats.MessagesStats;
+import org.thingsboard.server.common.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsType;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
diff --git a/dao/pom.xml b/dao/pom.xml
index 86139125cb..c8b46526c6 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -43,6 +43,10 @@
org.thingsboard.common
message
+
+ org.thingsboard.common
+ stats
+
org.thingsboard.common
dao-api
diff --git a/dao/src/main/java/org/thingsboard/server/dao/nosql/CassandraBufferedRateExecutor.java b/dao/src/main/java/org/thingsboard/server/dao/nosql/CassandraBufferedRateExecutor.java
index 9b55cf0b30..597b2ecbcd 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/nosql/CassandraBufferedRateExecutor.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/nosql/CassandraBufferedRateExecutor.java
@@ -24,9 +24,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.common.msg.stats.DefaultCounter;
-import org.thingsboard.server.common.msg.stats.StatsCounter;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
+import org.thingsboard.server.common.stats.DefaultCounter;
+import org.thingsboard.server.common.stats.StatsCounter;
+import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.dao.entity.EntityService;
import org.thingsboard.server.dao.util.AbstractBufferedRateExecutor;
import org.thingsboard.server.dao.util.AsyncTaskContext;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/TbSqlBlockingQueue.java b/dao/src/main/java/org/thingsboard/server/dao/sql/TbSqlBlockingQueue.java
index 69ee19e586..327b8d675b 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/TbSqlBlockingQueue.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/TbSqlBlockingQueue.java
@@ -19,7 +19,7 @@ import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import lombok.extern.slf4j.Slf4j;
import org.thingsboard.common.util.ThingsBoardThreadFactory;
-import org.thingsboard.server.common.msg.stats.MessagesStats;
+import org.thingsboard.server.common.stats.MessagesStats;
import java.util.ArrayList;
import java.util.List;
@@ -28,7 +28,6 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Consumer;
import java.util.stream.Collectors;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/TbSqlBlockingQueueParams.java b/dao/src/main/java/org/thingsboard/server/dao/sql/TbSqlBlockingQueueParams.java
index 8bebe6646c..330e60f336 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/TbSqlBlockingQueueParams.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/TbSqlBlockingQueueParams.java
@@ -18,7 +18,7 @@ package org.thingsboard.server.dao.sql;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
-import org.thingsboard.server.common.msg.stats.MessagesStats;
+import org.thingsboard.server.common.stats.MessagesStats;
@Slf4j
@Data
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java
index d9fedb28b4..5bd5d4876f 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sql/attributes/JpaAttributeDao.java
@@ -26,7 +26,7 @@ import org.thingsboard.server.common.data.UUIDConverter;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.kv.AttributeKvEntry;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.attributes.AttributesDao;
import org.thingsboard.server.dao.model.sql.AttributeKvCompositeKey;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractChunkedAggregationTimeseriesDao.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractChunkedAggregationTimeseriesDao.java
index d1adb2452c..39c958a45c 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractChunkedAggregationTimeseriesDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractChunkedAggregationTimeseriesDao.java
@@ -30,7 +30,7 @@ import org.thingsboard.server.common.data.kv.Aggregation;
import org.thingsboard.server.common.data.kv.DeleteTsKvQuery;
import org.thingsboard.server.common.data.kv.ReadTsKvQuery;
import org.thingsboard.server.common.data.kv.TsKvEntry;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.model.sqlts.ts.TsKvEntity;
import org.thingsboard.server.dao.sql.TbSqlBlockingQueue;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractSqlTimeseriesDao.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractSqlTimeseriesDao.java
index b378934fe5..bad2bb53e4 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractSqlTimeseriesDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/AbstractSqlTimeseriesDao.java
@@ -34,7 +34,7 @@ import org.thingsboard.server.common.data.kv.DeleteTsKvQuery;
import org.thingsboard.server.common.data.kv.ReadTsKvQuery;
import org.thingsboard.server.common.data.kv.StringDataEntry;
import org.thingsboard.server.common.data.kv.TsKvEntry;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.model.sqlts.dictionary.TsKvDictionary;
import org.thingsboard.server.dao.model.sqlts.dictionary.TsKvDictionaryCompositeKey;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TimescaleTimeseriesDao.java b/dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TimescaleTimeseriesDao.java
index 2d43177a2c..a55da5a448 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TimescaleTimeseriesDao.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/sqlts/timescale/TimescaleTimeseriesDao.java
@@ -31,7 +31,7 @@ import org.thingsboard.server.common.data.kv.Aggregation;
import org.thingsboard.server.common.data.kv.DeleteTsKvQuery;
import org.thingsboard.server.common.data.kv.ReadTsKvQuery;
import org.thingsboard.server.common.data.kv.TsKvEntry;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsFactory;
import org.thingsboard.server.dao.DaoUtil;
import org.thingsboard.server.dao.model.sqlts.timescale.ts.TimescaleTsKvEntity;
import org.thingsboard.server.dao.sql.TbSqlBlockingQueueParams;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java b/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java
index 94894bd83c..e0ce4e2ed5 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/util/AbstractBufferedRateExecutor.java
@@ -23,16 +23,12 @@ import com.google.common.util.concurrent.SettableFuture;
import lombok.extern.slf4j.Slf4j;
import org.thingsboard.common.util.ThingsBoardThreadFactory;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.common.msg.stats.DefaultCounter;
-import org.thingsboard.server.common.msg.stats.StatsCounter;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
-import org.thingsboard.server.common.msg.stats.StatsType;
+import org.thingsboard.server.common.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsType;
import org.thingsboard.server.common.msg.tools.TbRateLimits;
import org.thingsboard.server.dao.nosql.CassandraStatementTask;
import javax.annotation.Nullable;
-import java.util.ArrayList;
-import java.util.List;
import java.util.UUID;
import java.util.concurrent.*;
import java.util.concurrent.atomic.AtomicInteger;
diff --git a/dao/src/main/java/org/thingsboard/server/dao/util/BufferedRateExecutorStats.java b/dao/src/main/java/org/thingsboard/server/dao/util/BufferedRateExecutorStats.java
index b49019084d..953d282ba4 100644
--- a/dao/src/main/java/org/thingsboard/server/dao/util/BufferedRateExecutorStats.java
+++ b/dao/src/main/java/org/thingsboard/server/dao/util/BufferedRateExecutorStats.java
@@ -18,16 +18,15 @@ package org.thingsboard.server.dao.util;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.thingsboard.server.common.data.id.TenantId;
-import org.thingsboard.server.common.msg.stats.DefaultCounter;
-import org.thingsboard.server.common.msg.stats.StatsCounter;
-import org.thingsboard.server.common.msg.stats.StatsFactory;
-import org.thingsboard.server.common.msg.stats.StatsType;
+import org.thingsboard.server.common.stats.DefaultCounter;
+import org.thingsboard.server.common.stats.StatsCounter;
+import org.thingsboard.server.common.stats.StatsFactory;
+import org.thingsboard.server.common.stats.StatsType;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.atomic.AtomicInteger;
@Slf4j
@Getter
diff --git a/pom.xml b/pom.xml
index d9fa5c174e..209df5b52d 100755
--- a/pom.xml
+++ b/pom.xml
@@ -838,6 +838,11 @@
queue
${project.version}
+
+ org.thingsboard.common
+ stats
+ ${project.version}
+
org.thingsboard
tools