You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bookkeeper.apache.org by ay...@apache.org on 2022/04/28 23:00:59 UTC

[bookkeeper] branch master updated: Move bookkeeper-stats and bookkeeper-stats-providers as submodules of stats

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

ayegorov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 80ca1f834c Move bookkeeper-stats and bookkeeper-stats-providers as submodules of stats
80ca1f834c is described below

commit 80ca1f834c9ec5054b6d8757d98126759b9292b4
Author: ZhangJian He <sh...@gmail.com>
AuthorDate: Fri Apr 29 07:00:53 2022 +0800

    Move bookkeeper-stats and bookkeeper-stats-providers as submodules of stats
    
    ### Motiviations
    Fix todo to make the project layout more reasonable and easier to fix bug/dev new feature
    ### Changes
    move `bookkeeper-stats` and `bookkeeper-stats-providers` as submodules of `stats`
    
    Reviewers: Enrico Olivelli <eo...@gmail.com>, Nicolò Boschi <bo...@gmail.com>, Andrey Yegorov <None>
    
    This closes #3246 from Shoothzj/module-04-25
---
 bookkeeper-benchmark/build.gradle                                   | 2 +-
 bookkeeper-common/build.gradle                                      | 2 +-
 bookkeeper-dist/all/build.gradle                                    | 6 +++---
 bookkeeper-dist/bkctl/build.gradle                                  | 2 +-
 bookkeeper-dist/server/build.gradle                                 | 6 +++---
 bookkeeper-server/build.gradle                                      | 4 ++--
 build.gradle                                                        | 6 +++---
 metadata-drivers/etcd/build.gradle                                  | 2 +-
 microbenchmarks/build.gradle                                        | 6 +++---
 pom.xml                                                             | 3 ---
 settings.gradle                                                     | 6 +++---
 {bookkeeper-stats => stats/bookkeeper-stats-api}/build.gradle       | 0
 {bookkeeper-stats => stats/bookkeeper-stats-api}/pom.xml            | 4 ++--
 .../main/java/org/apache/bookkeeper/stats/CachingStatsLogger.java   | 0
 .../main/java/org/apache/bookkeeper/stats/CachingStatsProvider.java | 0
 .../src/main/java/org/apache/bookkeeper/stats/Counter.java          | 0
 .../src/main/java/org/apache/bookkeeper/stats/Gauge.java            | 0
 .../src/main/java/org/apache/bookkeeper/stats/NullStatsLogger.java  | 0
 .../main/java/org/apache/bookkeeper/stats/NullStatsProvider.java    | 0
 .../src/main/java/org/apache/bookkeeper/stats/OpStatsData.java      | 0
 .../src/main/java/org/apache/bookkeeper/stats/OpStatsLogger.java    | 0
 .../src/main/java/org/apache/bookkeeper/stats/Stats.java            | 0
 .../src/main/java/org/apache/bookkeeper/stats/StatsLogger.java      | 0
 .../src/main/java/org/apache/bookkeeper/stats/StatsProvider.java    | 0
 .../src/main/java/org/apache/bookkeeper/stats/ThreadRegistry.java   | 0
 .../main/java/org/apache/bookkeeper/stats/annotations/StatsDoc.java | 0
 .../java/org/apache/bookkeeper/stats/annotations/package-info.java  | 0
 .../src/main/java/org/apache/bookkeeper/stats/package-info.java     | 0
 .../codahale-metrics-provider/build.gradle                          | 2 +-
 .../bookkeeper-stats-providers}/codahale-metrics-provider/pom.xml   | 5 ++---
 .../apache/bookkeeper/stats/codahale/CodahaleMetricsProvider.java   | 0
 .../org/apache/bookkeeper/stats/codahale/CodahaleOpStatsLogger.java | 0
 .../org/apache/bookkeeper/stats/codahale/CodahaleStatsLogger.java   | 0
 .../bookkeeper/stats/codahale/FastCodahaleMetricsProvider.java      | 0
 .../apache/bookkeeper/stats/codahale/FastCodahaleStatsLogger.java   | 0
 .../java/org/apache/bookkeeper/stats/codahale/FastSnapshot.java     | 0
 .../main/java/org/apache/bookkeeper/stats/codahale/FastTimer.java   | 0
 .../java/org/apache/bookkeeper/stats/codahale/package-info.java     | 0
 .../src/main/java/org/apache/bookkeeper/stats/package-info.java     | 0
 .../org/apache/bookkeeper/stats/codahale/CodahaleOpStatsTest.java   | 0
 .../java/org/apache/bookkeeper/stats/codahale/FastTimerTest.java    | 0
 .../bookkeeper-stats-providers}/pom.xml                             | 4 ++--
 .../prometheus-metrics-provider/build.gradle                        | 2 +-
 .../bookkeeper-stats-providers}/prometheus-metrics-provider/pom.xml | 5 ++---
 .../bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java      | 0
 .../org/apache/bookkeeper/stats/prometheus/LongAdderCounter.java    | 0
 .../bookkeeper/stats/prometheus/PrometheusMetricsProvider.java      | 0
 .../org/apache/bookkeeper/stats/prometheus/PrometheusServlet.java   | 0
 .../apache/bookkeeper/stats/prometheus/PrometheusStatsLogger.java   | 0
 .../apache/bookkeeper/stats/prometheus/PrometheusTextFormat.java    | 0
 .../java/org/apache/bookkeeper/stats/prometheus/ScopeContext.java   | 0
 .../java/org/apache/bookkeeper/stats/prometheus/SimpleGauge.java    | 0
 .../stats/prometheus/ThreadScopedDataSketchesStatsLogger.java       | 0
 .../bookkeeper/stats/prometheus/ThreadScopedLongAdderCounter.java   | 0
 .../java/org/apache/bookkeeper/stats/prometheus/package-info.java   | 0
 .../bookkeeper/stats/prometheus/PrometheusTextFormatTest.java       | 0
 .../apache/bookkeeper/stats/prometheus/TestPrometheusFormatter.java | 0
 .../bookkeeper/stats/prometheus/TestPrometheusMetricsProvider.java  | 0
 stats/pom.xml                                                       | 3 ++-
 stats/utils/build.gradle                                            | 2 +-
 stats/utils/pom.xml                                                 | 1 -
 stream/bk-grpc-name-resolver/build.gradle                           | 2 +-
 stream/clients/java/base/build.gradle                               | 2 +-
 stream/common/build.gradle                                          | 2 +-
 stream/distributedlog/common/build.gradle                           | 2 +-
 stream/distributedlog/core/build.gradle                             | 2 +-
 stream/server/build.gradle                                          | 4 ++--
 stream/storage/impl/build.gradle                                    | 2 +-
 tests/backward-compat/recovery-no-password/build.gradle             | 2 +-
 tests/integration/cluster/build.gradle                              | 2 +-
 tools/ledger/build.gradle                                           | 2 +-
 tools/perf/build.gradle                                             | 6 +++---
 72 files changed, 48 insertions(+), 53 deletions(-)

diff --git a/bookkeeper-benchmark/build.gradle b/bookkeeper-benchmark/build.gradle
index 1d774e9e4f..eafb553100 100644
--- a/bookkeeper-benchmark/build.gradle
+++ b/bookkeeper-benchmark/build.gradle
@@ -28,7 +28,7 @@ dependencies {
 
     implementation project(':bookkeeper-common')
     implementation project(':bookkeeper-server')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
 
     compileOnly depLibs.lombok
     compileOnly depLibs.spotbugsAnnotations
diff --git a/bookkeeper-common/build.gradle b/bookkeeper-common/build.gradle
index c133ac7769..1c03b82b3b 100644
--- a/bookkeeper-common/build.gradle
+++ b/bookkeeper-common/build.gradle
@@ -24,7 +24,7 @@ plugins {
 }
 
 dependencies {
-    implementation project(":bookkeeper-stats")
+    implementation project(":stats:bookkeeper-stats-api")
     implementation project(":cpu-affinity")
 
     implementation depLibs.errorprone
diff --git a/bookkeeper-dist/all/build.gradle b/bookkeeper-dist/all/build.gradle
index 523718e460..a7000f54c0 100644
--- a/bookkeeper-dist/all/build.gradle
+++ b/bookkeeper-dist/all/build.gradle
@@ -29,9 +29,9 @@ dependencies {
     implementation project(':bookkeeper-http:http-server')
     implementation project(':bookkeeper-http:vertx-http-server')
     implementation project(':bookkeeper-server')
-    implementation project(':bookkeeper-stats-providers:codahale-metrics-provider')
-    implementation project(':bookkeeper-stats-providers:prometheus-metrics-provider')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
+    implementation project(':stats:bookkeeper-stats-providers:codahale-metrics-provider')
+    implementation project(':stats:bookkeeper-stats-providers:prometheus-metrics-provider')
     implementation project(':stream:distributedlog:core')
     implementation project(':stream:server')
     implementation project(':bookkeeper-tools')
diff --git a/bookkeeper-dist/bkctl/build.gradle b/bookkeeper-dist/bkctl/build.gradle
index c2e9d41dc5..50d6a45a17 100644
--- a/bookkeeper-dist/bkctl/build.gradle
+++ b/bookkeeper-dist/bkctl/build.gradle
@@ -33,7 +33,7 @@ dependencies {
         exclude group: 'log4j', module: 'log4j'
         exclude group: 'org.slf4j', module: 'slf4j-log4j12'
     }
-    runtimeOnly (project(':bookkeeper-stats-providers:codahale-metrics-provider')) {
+    runtimeOnly (project(':stats:bookkeeper-stats-providers:codahale-metrics-provider')) {
        exclude group: "io.dropwizard.metrics", module: "metrics-graphite"
        exclude group: "io.dropwizard.metrics", module: "metrics-jvm"
     }
diff --git a/bookkeeper-dist/server/build.gradle b/bookkeeper-dist/server/build.gradle
index 0c1540e7f6..d2f2b627e9 100644
--- a/bookkeeper-dist/server/build.gradle
+++ b/bookkeeper-dist/server/build.gradle
@@ -30,11 +30,11 @@ releaseArtifacts {
 
 dependencies {
     implementation project(':bookkeeper-server')
-    implementation project(':bookkeeper-stats-providers:prometheus-metrics-provider')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
+    implementation project(':bookkeeper-tools')
+    implementation project(':stats:bookkeeper-stats-providers:prometheus-metrics-provider')
     implementation project(':stream:distributedlog:core')
     implementation project(':stream:server')
-    implementation project(':bookkeeper-tools')
     runtimeOnly depLibs.log4jSlf4jImpl
     runtimeOnly depLibs.log4jCore
     runtimeOnly (depLibs.zookeeperTest) {
diff --git a/bookkeeper-server/build.gradle b/bookkeeper-server/build.gradle
index cef8e64e1e..18a43d2d5f 100644
--- a/bookkeeper-server/build.gradle
+++ b/bookkeeper-server/build.gradle
@@ -27,10 +27,10 @@ dependencies {
     implementation project(':bookkeeper-common-allocator')
     implementation project(':bookkeeper-http:http-server')
     implementation project(':bookkeeper-proto')
-    implementation project(':bookkeeper-stats')
     implementation project(':bookkeeper-tools-framework')
     implementation project(':circe-checksum')
     implementation project(':cpu-affinity')
+    implementation project(':stats:bookkeeper-stats-api')
 
     compileOnly depLibs.lombok
     compileOnly depLibs.spotbugsAnnotations
@@ -58,7 +58,7 @@ dependencies {
     runtimeOnly depLibs.snappy
 
     testImplementation project(':testtools')
-    testImplementation project(':bookkeeper-stats-providers:prometheus-metrics-provider')
+    testImplementation project(':stats:bookkeeper-stats-providers:prometheus-metrics-provider')
     testImplementation project(':bookkeeper-http:vertx-http-server')
     testImplementation project(path: ':bookkeeper-common', configuration: 'testArtifacts')
 
diff --git a/build.gradle b/build.gradle
index 9ef807ad97..4fb440c447 100644
--- a/build.gradle
+++ b/build.gradle
@@ -350,9 +350,9 @@ allprojects {
 def javadocProjects = [
         ":bookkeeper-common",
         ":bookkeeper-server",
-        ":bookkeeper-stats",
-        ":bookkeeper-stats-providers:prometheus-metrics-provider",
-        ":bookkeeper-stats-providers:codahale-metrics-provider",
+        ":stats:bookkeeper-stats-api",
+        ":stats:bookkeeper-stats-providers:codahale-metrics-provider",
+        ":stats:bookkeeper-stats-providers:prometheus-metrics-provider",
 ]
 
 task generateApiJavadoc(type: Javadoc) {
diff --git a/metadata-drivers/etcd/build.gradle b/metadata-drivers/etcd/build.gradle
index 0004b783cd..8a7cb8cb92 100644
--- a/metadata-drivers/etcd/build.gradle
+++ b/metadata-drivers/etcd/build.gradle
@@ -24,7 +24,7 @@ plugins {
 dependencies {
     implementation project(":bookkeeper-server")
     implementation project(":bookkeeper-common")
-    implementation project(":bookkeeper-stats")
+    implementation project(":stats:bookkeeper-stats-api")
     implementation depLibs.etcd
     implementation depLibs.commonsConfiguration
     implementation depLibs.commonsLang3
diff --git a/microbenchmarks/build.gradle b/microbenchmarks/build.gradle
index 6acc6ef070..d4ae9051f4 100644
--- a/microbenchmarks/build.gradle
+++ b/microbenchmarks/build.gradle
@@ -21,11 +21,11 @@ plugins {
 }
 
 dependencies {
-    implementation project(":bookkeeper-stats-providers:codahale-metrics-provider")
-    implementation project(":bookkeeper-stats-providers:prometheus-metrics-provider")
     implementation project(":bookkeeper-common")
     implementation project(":bookkeeper-server")
-    implementation project(":bookkeeper-stats")
+    implementation project(":stats:bookkeeper-stats-api")
+    implementation project(":stats:bookkeeper-stats-providers:codahale-metrics-provider")
+    implementation project(":stats:bookkeeper-stats-providers:prometheus-metrics-provider")
     implementation project(":bookkeeper-proto")
     compileOnly depLibs.metricsCore
     compileOnly depLibs.protobuf
diff --git a/pom.xml b/pom.xml
index dca231868b..3fc2e1d74e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -56,12 +56,9 @@
     <module>bookkeeper-common</module>
     <module>bookkeeper-common-allocator</module>
     <module>stats</module>
-    <!-- TODO: move `bookkeeper-stats` and `bookkeeper-stats-providers` as submodules of `stats` -->
-    <module>bookkeeper-stats</module>
     <module>bookkeeper-proto</module>
     <module>bookkeeper-server</module>
     <module>bookkeeper-benchmark</module>
-    <module>bookkeeper-stats-providers</module>
     <module>bookkeeper-http</module>
     <module>stream</module>
     <module>tools</module>
diff --git a/settings.gradle b/settings.gradle
index 1483afef51..a9114e1280 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -52,9 +52,6 @@ include(':bookkeeper-benchmark',
         'bookkeeper-server',
         'shaded:bookkeeper-server-shaded',
         'shaded:bookkeeper-server-tests-shaded',
-        'bookkeeper-stats',
-        'bookkeeper-stats-providers:prometheus-metrics-provider',
-        'bookkeeper-stats-providers:codahale-metrics-provider',
         'buildtools',
         'circe-checksum',
         'circe-checksum:src:main:circe',
@@ -64,6 +61,9 @@ include(':bookkeeper-benchmark',
         'microbenchmarks',
         'metadata-drivers:etcd',
         'shaded:distributedlog-core-shaded',
+        'stats:bookkeeper-stats-api',
+        'stats:bookkeeper-stats-providers:prometheus-metrics-provider',
+        'stats:bookkeeper-stats-providers:codahale-metrics-provider',
         'stats:utils',
         'stream:api',
         'stream:clients:java:all',
diff --git a/bookkeeper-stats/build.gradle b/stats/bookkeeper-stats-api/build.gradle
similarity index 100%
rename from bookkeeper-stats/build.gradle
rename to stats/bookkeeper-stats-api/build.gradle
diff --git a/bookkeeper-stats/pom.xml b/stats/bookkeeper-stats-api/pom.xml
similarity index 96%
rename from bookkeeper-stats/pom.xml
rename to stats/bookkeeper-stats-api/pom.xml
index d5718f1c88..a6022e0b43 100644
--- a/bookkeeper-stats/pom.xml
+++ b/stats/bookkeeper-stats-api/pom.xml
@@ -18,8 +18,8 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <artifactId>bookkeeper</artifactId>
-    <groupId>org.apache.bookkeeper</groupId>
+    <artifactId>bookkeeper-stats-parent</artifactId>
+    <groupId>org.apache.bookkeeper.stats</groupId>
     <version>4.16.0-SNAPSHOT</version>
   </parent>
   <groupId>org.apache.bookkeeper.stats</groupId>
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/CachingStatsLogger.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/CachingStatsLogger.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/CachingStatsLogger.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/CachingStatsLogger.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/CachingStatsProvider.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/CachingStatsProvider.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/CachingStatsProvider.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/CachingStatsProvider.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/Counter.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/Counter.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/Counter.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/Counter.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/Gauge.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/Gauge.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/Gauge.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/Gauge.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/NullStatsLogger.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/NullStatsLogger.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/NullStatsLogger.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/NullStatsLogger.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/NullStatsProvider.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/NullStatsProvider.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/NullStatsProvider.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/NullStatsProvider.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/OpStatsData.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/OpStatsData.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/OpStatsData.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/OpStatsData.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/OpStatsLogger.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/OpStatsLogger.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/OpStatsLogger.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/OpStatsLogger.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/Stats.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/Stats.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/Stats.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/Stats.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/StatsLogger.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/StatsLogger.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/StatsLogger.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/StatsLogger.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/StatsProvider.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/StatsProvider.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/StatsProvider.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/StatsProvider.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/ThreadRegistry.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/ThreadRegistry.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/ThreadRegistry.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/ThreadRegistry.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/annotations/StatsDoc.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/annotations/StatsDoc.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/annotations/StatsDoc.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/annotations/StatsDoc.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/annotations/package-info.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/annotations/package-info.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/annotations/package-info.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/annotations/package-info.java
diff --git a/bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/package-info.java b/stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/package-info.java
similarity index 100%
rename from bookkeeper-stats/src/main/java/org/apache/bookkeeper/stats/package-info.java
rename to stats/bookkeeper-stats-api/src/main/java/org/apache/bookkeeper/stats/package-info.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle b/stats/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle
similarity index 96%
rename from bookkeeper-stats-providers/codahale-metrics-provider/build.gradle
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle
index 6a6427f22e..46acbe381d 100644
--- a/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle
+++ b/stats/bookkeeper-stats-providers/codahale-metrics-provider/build.gradle
@@ -25,7 +25,7 @@ description = 'Apache BookKeeper :: Stats Providers :: Codahale Metrics'
 
 dependencies {
 
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
 
     implementation depLibs.commonsConfiguration
     implementation depLibs.guava
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/pom.xml b/stats/bookkeeper-stats-providers/codahale-metrics-provider/pom.xml
similarity index 94%
rename from bookkeeper-stats-providers/codahale-metrics-provider/pom.xml
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/pom.xml
index d8ae917d9f..60aefd95be 100644
--- a/bookkeeper-stats-providers/codahale-metrics-provider/pom.xml
+++ b/stats/bookkeeper-stats-providers/codahale-metrics-provider/pom.xml
@@ -18,10 +18,9 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <artifactId>bookkeeper</artifactId>
-    <groupId>org.apache.bookkeeper</groupId>
+    <artifactId>bookkeeper-stats-providers</artifactId>
+    <groupId>org.apache.bookkeeper.stats</groupId>
     <version>4.16.0-SNAPSHOT</version>
-    <relativePath>../..</relativePath>
   </parent>
   <groupId>org.apache.bookkeeper.stats</groupId>
   <artifactId>codahale-metrics-provider</artifactId>
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleMetricsProvider.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleMetricsProvider.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleMetricsProvider.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleMetricsProvider.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleOpStatsLogger.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleOpStatsLogger.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleOpStatsLogger.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleOpStatsLogger.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleStatsLogger.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleStatsLogger.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleStatsLogger.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/CodahaleStatsLogger.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastCodahaleMetricsProvider.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastCodahaleMetricsProvider.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastCodahaleMetricsProvider.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastCodahaleMetricsProvider.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastCodahaleStatsLogger.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastCodahaleStatsLogger.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastCodahaleStatsLogger.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastCodahaleStatsLogger.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastSnapshot.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastSnapshot.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastSnapshot.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastSnapshot.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastTimer.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastTimer.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastTimer.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/FastTimer.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/package-info.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/package-info.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/package-info.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/codahale/package-info.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/package-info.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/package-info.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/package-info.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/main/java/org/apache/bookkeeper/stats/package-info.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/test/java/org/apache/bookkeeper/stats/codahale/CodahaleOpStatsTest.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/test/java/org/apache/bookkeeper/stats/codahale/CodahaleOpStatsTest.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/test/java/org/apache/bookkeeper/stats/codahale/CodahaleOpStatsTest.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/test/java/org/apache/bookkeeper/stats/codahale/CodahaleOpStatsTest.java
diff --git a/bookkeeper-stats-providers/codahale-metrics-provider/src/test/java/org/apache/bookkeeper/stats/codahale/FastTimerTest.java b/stats/bookkeeper-stats-providers/codahale-metrics-provider/src/test/java/org/apache/bookkeeper/stats/codahale/FastTimerTest.java
similarity index 100%
rename from bookkeeper-stats-providers/codahale-metrics-provider/src/test/java/org/apache/bookkeeper/stats/codahale/FastTimerTest.java
rename to stats/bookkeeper-stats-providers/codahale-metrics-provider/src/test/java/org/apache/bookkeeper/stats/codahale/FastTimerTest.java
diff --git a/bookkeeper-stats-providers/pom.xml b/stats/bookkeeper-stats-providers/pom.xml
similarity index 92%
rename from bookkeeper-stats-providers/pom.xml
rename to stats/bookkeeper-stats-providers/pom.xml
index 8a3843a256..f193e18997 100644
--- a/bookkeeper-stats-providers/pom.xml
+++ b/stats/bookkeeper-stats-providers/pom.xml
@@ -17,8 +17,8 @@
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <parent>
-    <artifactId>bookkeeper</artifactId>
-    <groupId>org.apache.bookkeeper</groupId>
+    <artifactId>bookkeeper-stats-parent</artifactId>
+    <groupId>org.apache.bookkeeper.stats</groupId>
     <version>4.16.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle
similarity index 96%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle
index dc09350063..d99f1a3c97 100644
--- a/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle
+++ b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/build.gradle
@@ -22,7 +22,7 @@ plugins {
 }
 
 dependencies {
-    implementation project(":bookkeeper-stats")
+    implementation project(":stats:bookkeeper-stats-api")
     implementation depLibs.commonsConfiguration
     implementation depLibs.guava
     implementation depLibs.jettyServlet
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
similarity index 95%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
index f08bf17cd2..0956d579c1 100644
--- a/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
+++ b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/pom.xml
@@ -18,10 +18,9 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
-    <artifactId>bookkeeper</artifactId>
-    <groupId>org.apache.bookkeeper</groupId>
+    <artifactId>bookkeeper-stats-providers</artifactId>
+    <groupId>org.apache.bookkeeper.stats</groupId>
     <version>4.16.0-SNAPSHOT</version>
-    <relativePath>../..</relativePath>
   </parent>
   <groupId>org.apache.bookkeeper.stats</groupId>
   <artifactId>prometheus-metrics-provider</artifactId>
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/DataSketchesOpStatsLogger.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/LongAdderCounter.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/LongAdderCounter.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/LongAdderCounter.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/LongAdderCounter.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusServlet.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusServlet.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusServlet.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusServlet.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusStatsLogger.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusStatsLogger.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusStatsLogger.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusStatsLogger.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusTextFormat.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusTextFormat.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusTextFormat.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusTextFormat.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ScopeContext.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ScopeContext.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ScopeContext.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ScopeContext.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/SimpleGauge.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/SimpleGauge.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/SimpleGauge.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/SimpleGauge.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ThreadScopedDataSketchesStatsLogger.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ThreadScopedDataSketchesStatsLogger.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ThreadScopedDataSketchesStatsLogger.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ThreadScopedDataSketchesStatsLogger.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ThreadScopedLongAdderCounter.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ThreadScopedLongAdderCounter.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ThreadScopedLongAdderCounter.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/ThreadScopedLongAdderCounter.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/package-info.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/package-info.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/package-info.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/package-info.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/PrometheusTextFormatTest.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/PrometheusTextFormatTest.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/PrometheusTextFormatTest.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/PrometheusTextFormatTest.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/TestPrometheusFormatter.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/TestPrometheusFormatter.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/TestPrometheusFormatter.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/TestPrometheusFormatter.java
diff --git a/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/TestPrometheusMetricsProvider.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/TestPrometheusMetricsProvider.java
similarity index 100%
rename from bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/TestPrometheusMetricsProvider.java
rename to stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/test/java/org/apache/bookkeeper/stats/prometheus/TestPrometheusMetricsProvider.java
diff --git a/stats/pom.xml b/stats/pom.xml
index c936542b72..302757e98e 100644
--- a/stats/pom.xml
+++ b/stats/pom.xml
@@ -23,7 +23,6 @@
     <groupId>org.apache.bookkeeper</groupId>
     <artifactId>bookkeeper</artifactId>
     <version>4.16.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
   </parent>
   <packaging>pom</packaging>
   <groupId>org.apache.bookkeeper.stats</groupId>
@@ -31,6 +30,8 @@
   <name>Apache BookKeeper :: Stats :: Parent</name>
 
   <modules>
+    <module>bookkeeper-stats-api</module>
+    <module>bookkeeper-stats-providers</module>
     <module>utils</module>
   </modules>
 
diff --git a/stats/utils/build.gradle b/stats/utils/build.gradle
index 1c40b106e2..df7648cb3c 100644
--- a/stats/utils/build.gradle
+++ b/stats/utils/build.gradle
@@ -24,7 +24,7 @@ description = 'Apache BookKeeper :: Stats :: Utils'
 
 dependencies {
 
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
 
     compileOnly depLibs.lombok
     compileOnly depLibs.spotbugsAnnotations
diff --git a/stats/utils/pom.xml b/stats/utils/pom.xml
index 357fddd161..5d6067c453 100644
--- a/stats/utils/pom.xml
+++ b/stats/utils/pom.xml
@@ -23,7 +23,6 @@
     <artifactId>bookkeeper-stats-parent</artifactId>
     <groupId>org.apache.bookkeeper.stats</groupId>
     <version>4.16.0-SNAPSHOT</version>
-    <relativePath>..</relativePath>
   </parent>
   <groupId>org.apache.bookkeeper.stats</groupId>
   <artifactId>bookkeeper-stats-utils</artifactId>
diff --git a/stream/bk-grpc-name-resolver/build.gradle b/stream/bk-grpc-name-resolver/build.gradle
index e7f26e7d8b..7c86d399ba 100644
--- a/stream/bk-grpc-name-resolver/build.gradle
+++ b/stream/bk-grpc-name-resolver/build.gradle
@@ -25,7 +25,7 @@ plugins {
 dependencies {
     implementation project(':bookkeeper-server')
     implementation project(':bookkeeper-common')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
     implementation project(':stream:common')
     implementation depLibs.grpc
     implementation depLibs.guava
diff --git a/stream/clients/java/base/build.gradle b/stream/clients/java/base/build.gradle
index 0659084676..bdf5861d13 100644
--- a/stream/clients/java/base/build.gradle
+++ b/stream/clients/java/base/build.gradle
@@ -18,7 +18,7 @@
  */
 dependencies {
     implementation project(':bookkeeper-common')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
     implementation project(':stream:common')
     implementation project(':stream:proto')
 
diff --git a/stream/common/build.gradle b/stream/common/build.gradle
index dee551749a..36756efc2e 100644
--- a/stream/common/build.gradle
+++ b/stream/common/build.gradle
@@ -24,7 +24,7 @@ plugins {
 
 dependencies {
     implementation project(':bookkeeper-common')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
     implementation depLibs.grpc
     runtimeOnly depLibs.googleHTTPClient
     implementation depLibs.guava
diff --git a/stream/distributedlog/common/build.gradle b/stream/distributedlog/common/build.gradle
index ed4f74e513..6cdfec276a 100644
--- a/stream/distributedlog/common/build.gradle
+++ b/stream/distributedlog/common/build.gradle
@@ -26,7 +26,7 @@ dependencies {
     compileOnly depLibs.lombok
 
     implementation project(":bookkeeper-common")
-    implementation project(":bookkeeper-stats")
+    implementation project(":stats:bookkeeper-stats-api")
 
     implementation depLibs.commonsConfiguration
     implementation depLibs.commonsLang3
diff --git a/stream/distributedlog/core/build.gradle b/stream/distributedlog/core/build.gradle
index f8812f9a0a..c53ef2622e 100644
--- a/stream/distributedlog/core/build.gradle
+++ b/stream/distributedlog/core/build.gradle
@@ -25,7 +25,7 @@ plugins {
 dependencies {
     implementation project(':bookkeeper-common')
     implementation project(':bookkeeper-server')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
     implementation project(':stream:distributedlog:common')
     implementation project(':stream:distributedlog:protocol')
     implementation depLibs.commonsCli
diff --git a/stream/server/build.gradle b/stream/server/build.gradle
index 163cbd3f2e..af7d52eddf 100644
--- a/stream/server/build.gradle
+++ b/stream/server/build.gradle
@@ -32,7 +32,7 @@ dependencies {
     implementation project(':bookkeeper-common-allocator')
     implementation project(':bookkeeper-common')
     implementation project(':bookkeeper-server')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
     implementation project(':stream:clients:java:all')
     implementation project(':stream:clients:java:base')
     implementation project(':stream:common')
@@ -43,7 +43,7 @@ dependencies {
     implementation project(':stream:storage:api')
     implementation project(':stream:storage:impl')
 
-    implementation project(':bookkeeper-stats-providers:prometheus-metrics-provider')
+    implementation project(':stats:bookkeeper-stats-providers:prometheus-metrics-provider')
     runtimeOnly project(':bookkeeper-tools-ledger')
     runtimeOnly project(':bookkeeper-tools-stream')
     runtimeOnly project(':bookkeeper-http:vertx-http-server')
diff --git a/stream/storage/impl/build.gradle b/stream/storage/impl/build.gradle
index 05fee0b4ba..61968ec480 100644
--- a/stream/storage/impl/build.gradle
+++ b/stream/storage/impl/build.gradle
@@ -25,7 +25,7 @@ plugins {
 dependencies {
     implementation project(':bookkeeper-common')
     implementation project(':bookkeeper-server')
-    implementation project(':bookkeeper-stats')
+    implementation project(':stats:bookkeeper-stats-api')
     implementation project(':stream:api')
     implementation project(':stream:clients:java:base')
     implementation project(':stream:common')
diff --git a/tests/backward-compat/recovery-no-password/build.gradle b/tests/backward-compat/recovery-no-password/build.gradle
index b720198f1e..e163dbc5c0 100644
--- a/tests/backward-compat/recovery-no-password/build.gradle
+++ b/tests/backward-compat/recovery-no-password/build.gradle
@@ -21,7 +21,7 @@ dependencies {
     testImplementation project(":bookkeeper-server")
     testImplementation project(":bookkeeper-common")
     testImplementation project(":bookkeeper-common-allocator")
-    testImplementation project(":bookkeeper-stats")
+    testImplementation project(":stats:bookkeeper-stats-api")
     testImplementation depLibs.protobuf
     testImplementation project(":bookkeeper-proto")
     testImplementation depLibs.commonsConfiguration
diff --git a/tests/integration/cluster/build.gradle b/tests/integration/cluster/build.gradle
index 02485122b1..11e1e06a6a 100644
--- a/tests/integration/cluster/build.gradle
+++ b/tests/integration/cluster/build.gradle
@@ -33,7 +33,7 @@ dependencies {
     testImplementation project(':stream:clients:java:base')
     testImplementation project(':stream:clients:java:all')
     testImplementation project(':bookkeeper-server')
-    testImplementation project(':bookkeeper-stats')
+    testImplementation project(':stats:bookkeeper-stats-api')
     testImplementation project(':tests:integration-tests-topologies')
     testImplementation project(':stream:clients:java:kv')
     testImplementation project(':testtools')
diff --git a/tools/ledger/build.gradle b/tools/ledger/build.gradle
index fdf60f7b36..1d03759e34 100644
--- a/tools/ledger/build.gradle
+++ b/tools/ledger/build.gradle
@@ -37,7 +37,7 @@ dependencies {
     implementation depLibs.nettyCodecHTTP2
     implementation depLibs.nettyCodecHTTP
     implementation depLibs.nettyProxy
-    testImplementation project(":bookkeeper-stats")
+    testImplementation project(":stats:bookkeeper-stats-api")
     testImplementation project(':testtools')
     testCompileOnly depLibs.lombok
     testImplementation depLibs.junit
diff --git a/tools/perf/build.gradle b/tools/perf/build.gradle
index d22e152f9d..3f9cea3f88 100644
--- a/tools/perf/build.gradle
+++ b/tools/perf/build.gradle
@@ -24,11 +24,11 @@ plugins {
 dependencies {
 
     implementation project(":bookkeeper-common")
+    implementation project(':bookkeeper-common-allocator')
     implementation project(':bookkeeper-tools-framework')
     implementation project(':bookkeeper-server')
-    implementation project(':bookkeeper-stats')
-    implementation project(':bookkeeper-stats-providers:prometheus-metrics-provider')
-    implementation project(':bookkeeper-common-allocator')
+    implementation project(':stats:bookkeeper-stats-api')
+    implementation project(':stats:bookkeeper-stats-providers:prometheus-metrics-provider')
     implementation project(':stream:api')
     implementation project(':stream:common')
     implementation project(':stream:clients:java:base')