From d82163f6315bcd59bbb77deae59aa26e84763f37 Mon Sep 17 00:00:00 2001 From: Sijie Guo Date: Wed, 12 Dec 2018 09:19:29 +0800 Subject: [PATCH] [STATS] [DOC] Add @StatsDoc annotation for bookie state manager stats Descriptions of the changes in this PR: *Motivation* As part of [BP-36](https://github.com/apache/bookkeeper/issues/1785), this PR is to document bookie state manager stats. *Changes* - convert bookie state manager stats to use StatsDoc for documenting metrics Master Issue: #1785 Reviewers: Enrico Olivelli This closes #1876 from sijie/bookie_state_stats --- .../bookkeeper/bookie/BookieStateManager.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieStateManager.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieStateManager.java index 370e06d8207..54d6993e0ac 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieStateManager.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieStateManager.java @@ -21,6 +21,8 @@ package org.apache.bookkeeper.bookie; +import static org.apache.bookkeeper.bookie.BookKeeperServerStats.BOOKIE_SCOPE; +import static org.apache.bookkeeper.bookie.BookKeeperServerStats.CATEGORY_SERVER; import static org.apache.bookkeeper.bookie.BookKeeperServerStats.SERVER_STATUS; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.ThreadFactoryBuilder; @@ -42,6 +44,7 @@ import org.apache.bookkeeper.stats.Gauge; import org.apache.bookkeeper.stats.NullStatsLogger; import org.apache.bookkeeper.stats.StatsLogger; +import org.apache.bookkeeper.stats.annotations.StatsDoc; import org.apache.bookkeeper.util.DiskChecker; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,6 +53,11 @@ * An implementation of StateManager. */ @Slf4j +@StatsDoc( + name = BOOKIE_SCOPE, + category = CATEGORY_SERVER, + help = "Bookie state manager related stats" +) public class BookieStateManager implements StateManager { private static final Logger LOG = LoggerFactory.getLogger(BookieStateManager.class); private final ServerConfiguration conf; @@ -73,7 +81,11 @@ public class BookieStateManager implements StateManager { private ShutdownHandler shutdownHandler; private final Supplier rm; // Expose Stats - private final StatsLogger statsLogger; + @StatsDoc( + name = SERVER_STATUS, + help = "Bookie status (1: up, 0: readonly, -1: unregistered)" + ) + private final Gauge serverStatusGauge; public BookieStateManager(ServerConfiguration conf, StatsLogger statsLogger, @@ -98,13 +110,12 @@ public BookieStateManager(ServerConfiguration conf, List statusDirs, Supplier bookieIdSupplier) throws IOException { this.conf = conf; - this.statsLogger = statsLogger; this.rm = rm; this.statusDirs = statusDirs; // ZK ephemeral node for this Bookie. this.bookieId = bookieIdSupplier.get(); // 1 : up, 0 : readonly, -1 : unregistered - statsLogger.registerGauge(SERVER_STATUS, new Gauge() { + this.serverStatusGauge = new Gauge() { @Override public Number getDefaultValue() { return 0; @@ -120,7 +131,8 @@ public Number getSample() { return 1; } } - }); + }; + statsLogger.registerGauge(SERVER_STATUS, serverStatusGauge); } private boolean isRegistrationManagerDisabled() {