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

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new cac4f24  Allow customized metrics prefix in pinot 
controller/broker/server (#4392)
cac4f24 is described below

commit cac4f248258459e7e26599ece90d5f12bcdd77e6
Author: James Shao <[email protected]>
AuthorDate: Wed Jul 24 17:41:45 2019 -0700

    Allow customized metrics prefix in pinot controller/broker/server (#4392)
---
 .../pinot/broker/broker/BrokerServerBuilder.java   |  3 ++-
 .../apache/pinot/common/metrics/BrokerMetrics.java | 12 +++++++++--
 .../pinot/common/metrics/ControllerMetrics.java    |  9 +++++++-
 .../apache/pinot/common/metrics/ServerMetrics.java | 24 ++++++++++++++--------
 .../apache/pinot/common/utils/CommonConstants.java | 15 +++++++++++++-
 .../apache/pinot/controller/ControllerConf.java    |  7 +++++++
 .../apache/pinot/controller/ControllerStarter.java |  2 +-
 .../org/apache/pinot/minion/MinionStarter.java     |  4 +++-
 .../apache/pinot/minion/metrics/MinionMetrics.java |  6 +++++-
 .../org/apache/pinot/server/conf/ServerConf.java   |  7 +++++++
 .../apache/pinot/server/starter/ServerBuilder.java |  4 +++-
 11 files changed, 76 insertions(+), 17 deletions(-)

diff --git 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerServerBuilder.java
 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerServerBuilder.java
index d15231b..d7b024c 100644
--- 
a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerServerBuilder.java
+++ 
b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/BrokerServerBuilder.java
@@ -70,7 +70,8 @@ public class BrokerServerBuilder {
     
MetricsHelper.initializeMetrics(config.subset(Broker.METRICS_CONFIG_PREFIX));
     MetricsHelper.registerMetricsRegistry(_metricsRegistry);
     _brokerMetrics =
-        new BrokerMetrics(_metricsRegistry, 
!_config.getBoolean(Broker.CONFIG_OF_ENABLE_TABLE_LEVEL_METRICS, true));
+        new 
BrokerMetrics(config.getString(Broker.CONFIG_OF_METRICS_NAME_PREFIX, 
Broker.DEFAULT_METRICS_NAME_PREFIX), _metricsRegistry,
+            !_config.getBoolean(Broker.CONFIG_OF_ENABLE_TABLE_LEVEL_METRICS, 
!Broker.DEFAULT_METRICS_GLOBAL_ENABLED));
     _brokerMetrics.initializeGlobalMeters();
     _brokerRequestHandler = buildRequestHandler();
     _brokerAdminApplication = new BrokerAdminApiApplication(this);
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/metrics/BrokerMetrics.java 
b/pinot-common/src/main/java/org/apache/pinot/common/metrics/BrokerMetrics.java
index eaa73d6..c82697c 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/metrics/BrokerMetrics.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/metrics/BrokerMetrics.java
@@ -20,23 +20,31 @@ package org.apache.pinot.common.metrics;
 
 import com.yammer.metrics.core.MetricsRegistry;
 
+import static 
org.apache.pinot.common.utils.CommonConstants.Broker.DEFAULT_METRICS_GLOBAL_ENABLED;
+import static 
org.apache.pinot.common.utils.CommonConstants.Broker.DEFAULT_METRICS_NAME_PREFIX;
+
 
 /**
  * Broker metrics utility class, which provides facilities to log the 
execution performance of queries.
  *
  */
 public class BrokerMetrics extends AbstractMetrics<BrokerQueryPhase, 
BrokerMeter, BrokerGauge, BrokerTimer> {
+
   /**
    * Constructs the broker metrics.
    *
    * @param metricsRegistry The metric registry used to register timers and 
meters.
    */
   public BrokerMetrics(MetricsRegistry metricsRegistry) {
-    super("pinot.broker.", metricsRegistry, BrokerMetrics.class);
+    this(metricsRegistry, DEFAULT_METRICS_GLOBAL_ENABLED);
   }
 
   public BrokerMetrics(MetricsRegistry metricsRegistry, boolean global) {
-    super("pinot.broker.", metricsRegistry, BrokerMetrics.class, global);
+    this(DEFAULT_METRICS_NAME_PREFIX, metricsRegistry, global);
+  }
+
+  public BrokerMetrics(String prefix, MetricsRegistry metricsRegistry, boolean 
global) {
+    super(prefix, metricsRegistry, BrokerMetrics.class, global);
   }
 
   @Override
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/metrics/ControllerMetrics.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/metrics/ControllerMetrics.java
index 734f82e..7190cfd 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/metrics/ControllerMetrics.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/metrics/ControllerMetrics.java
@@ -20,13 +20,20 @@ package org.apache.pinot.common.metrics;
 
 import com.yammer.metrics.core.MetricsRegistry;
 
+import static 
org.apache.pinot.common.utils.CommonConstants.Controller.DEFAULT_METRICS_PREFIX;
+
 
 /**
  * Metrics for the controller.
  */
 public class ControllerMetrics extends 
AbstractMetrics<AbstractMetrics.QueryPhase, ControllerMeter, ControllerGauge, 
ControllerTimer> {
+
   public ControllerMetrics(MetricsRegistry metricsRegistry) {
-    super("pinot.controller", metricsRegistry, ControllerMetrics.class);
+    this(DEFAULT_METRICS_PREFIX, metricsRegistry);
+  }
+
+  public ControllerMetrics(String prefix, MetricsRegistry metricsRegistry) {
+    super(prefix, metricsRegistry, ControllerMetrics.class);
   }
 
   @Override
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMetrics.java 
b/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMetrics.java
index 56d91c2..9e28cf9 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMetrics.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/metrics/ServerMetrics.java
@@ -20,12 +20,28 @@ package org.apache.pinot.common.metrics;
 
 import com.yammer.metrics.core.MetricsRegistry;
 
+import static 
org.apache.pinot.common.utils.CommonConstants.Server.DEFAULT_METRICS_GLOBAL_ENABLED;
+import static 
org.apache.pinot.common.utils.CommonConstants.Server.DEFAULT_METRICS_PREFIX;
+
 
 /**
  * Utility class to centralize all metrics reporting for the Pinot server.
  *
  */
 public class ServerMetrics extends AbstractMetrics<ServerQueryPhase, 
ServerMeter, ServerGauge, ServerTimer> {
+
+  public ServerMetrics(MetricsRegistry metricsRegistry) {
+    this(DEFAULT_METRICS_PREFIX, metricsRegistry, 
DEFAULT_METRICS_GLOBAL_ENABLED);
+  }
+
+  public ServerMetrics(MetricsRegistry metricsRegistry, boolean global) {
+    this(DEFAULT_METRICS_PREFIX, metricsRegistry, global);
+  }
+
+  public ServerMetrics(String prefix, MetricsRegistry metricsRegistry, boolean 
global) {
+    super(prefix, metricsRegistry, ServerMetrics.class, global);
+  }
+
   @Override
   protected ServerQueryPhase[] getQueryPhases() {
     return ServerQueryPhase.values();
@@ -40,12 +56,4 @@ public class ServerMetrics extends 
AbstractMetrics<ServerQueryPhase, ServerMeter
   protected ServerGauge[] getGauges() {
     return ServerGauge.values();
   }
-
-  public ServerMetrics(MetricsRegistry metricsRegistry) {
-    super("pinot.server.", metricsRegistry, ServerMetrics.class);
-  }
-
-  public ServerMetrics(MetricsRegistry metricsRegistry, boolean global) {
-    super("pinot.server.", metricsRegistry, ServerMetrics.class, global);
-  }
 }
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/utils/CommonConstants.java 
b/pinot-common/src/main/java/org/apache/pinot/common/utils/CommonConstants.java
index 697d307..26be6de 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/utils/CommonConstants.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/utils/CommonConstants.java
@@ -123,6 +123,9 @@ public class CommonConstants {
     public static final String ROUTING_TABLE_CONFIG_PREFIX = 
"pinot.broker.routing.table";
     public static final String ACCESS_CONTROL_CONFIG_PREFIX = 
"pinot.broker.access.control";
     public static final String METRICS_CONFIG_PREFIX = "pinot.broker.metrics";
+    public static final String CONFIG_OF_METRICS_NAME_PREFIX = 
"pinot.broker.metrics.prefix";
+    public static final String DEFAULT_METRICS_NAME_PREFIX = "pinot.broker.";
+    public static final boolean DEFAULT_METRICS_GLOBAL_ENABLED = false;
 
     public static final String CONFIG_OF_DELAY_SHUTDOWN_TIME_MS = 
"pinot.broker.delayShutdownTimeMs";
     public static final long DEFAULT_DELAY_SHUTDOWN_TIME_MS = 10_000L;
@@ -273,6 +276,9 @@ public class CommonConstants {
       public static final int DEFAULT_SEGMENT_UPLOAD_REQUEST_TIMEOUT_MS = 
300_000;
       public static final int DEFAULT_OTHER_REQUESTS_TIMEOUT = 10_000;
     }
+
+    public static final String DEFAULT_METRICS_PREFIX = "pinot.server.";
+    public static final boolean DEFAULT_METRICS_GLOBAL_ENABLED = false;
   }
 
   public static class Controller {
@@ -283,16 +289,23 @@ public class CommonConstants {
     public static final String SEGMENT_NAME_HTTP_HEADER = "Pinot-Segment-Name";
     public static final String TABLE_NAME_HTTP_HEADER = "Pinot-Table-Name";
     public static final String PREFIX_OF_CONFIG_OF_PINOT_CRYPTER = 
"pinot.controller.crypter";
+
+    public static final String CONFIG_OF_CONTROLLER_METRICS_PREFIX = 
"controller.metrics.prefix";
+    // FYI this is incorrect as it generate metrics named without a dot after 
pinot.controller part,
+    // but we keep this default for backward compatibility in case someone 
relies on this format
+    // see Server or Broker class for correct prefix format you should use
+    public static final String DEFAULT_METRICS_PREFIX = "pinot.controller";
   }
 
   public static class Minion {
     public static final String INSTANCE_PREFIX = "Minion_";
     public static final String INSTANCE_TYPE = "minion";
     public static final String UNTAGGED_INSTANCE = "minion_untagged";
-    public static final String METRICS_PREFIX = "pinot.minion.";
+    public static final String CONFIG_OF_METRICS_PREFIX = "pinot.minion.";
     public static final String METADATA_EVENT_OBSERVER_PREFIX = 
"metadata.event.notifier";
 
     // Config keys
+    public static final String CONFIG_OF_METRICS_PREFIX_KEY = "metricsPrefix";
     public static final String METRICS_REGISTRY_REGISTRATION_LISTENERS_KEY = 
"metricsRegistryRegistrationListeners";
 
     // Default settings
diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/ControllerConf.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/ControllerConf.java
index 4e872bb..07281bb 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/ControllerConf.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/ControllerConf.java
@@ -31,6 +31,9 @@ import org.apache.pinot.filesystem.LocalPinotFS;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static 
org.apache.pinot.common.utils.CommonConstants.Controller.CONFIG_OF_CONTROLLER_METRICS_PREFIX;
+import static 
org.apache.pinot.common.utils.CommonConstants.Controller.DEFAULT_METRICS_PREFIX;
+
 
 public class ControllerConf extends PropertiesConfiguration {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(ControllerConf.class);
@@ -598,4 +601,8 @@ public class ControllerConf extends PropertiesConfiguration 
{
   public void setHLCTablesAllowed(boolean allowHLCTables) {
     setProperty(ALLOW_HLC_TABLES, allowHLCTables);
   }
+
+  public String getMetricsPrefix() {
+    return getString(CONFIG_OF_CONTROLLER_METRICS_PREFIX, 
DEFAULT_METRICS_PREFIX);
+  }
 }
diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/ControllerStarter.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/ControllerStarter.java
index ee2fda1..1680196 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/ControllerStarter.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/ControllerStarter.java
@@ -130,7 +130,7 @@ public class ControllerStarter {
     _enableBatchMessageMode = _config.getEnableBatchMessageMode();
 
     _metricsRegistry = new MetricsRegistry();
-    _controllerMetrics = new ControllerMetrics(_metricsRegistry);
+    _controllerMetrics = new ControllerMetrics(conf.getMetricsPrefix(), 
_metricsRegistry);
     _serviceStatusCallbackList = new ArrayList<>();
     if (_controllerMode == ControllerConf.ControllerMode.HELIX_ONLY) {
       _adminApp = null;
diff --git 
a/pinot-minion/src/main/java/org/apache/pinot/minion/MinionStarter.java 
b/pinot-minion/src/main/java/org/apache/pinot/minion/MinionStarter.java
index 2139fac..3ef52e5 100644
--- a/pinot-minion/src/main/java/org/apache/pinot/minion/MinionStarter.java
+++ b/pinot-minion/src/main/java/org/apache/pinot/minion/MinionStarter.java
@@ -141,7 +141,9 @@ public class MinionStarter {
     MetricsHelper.initializeMetrics(_config);
     MetricsRegistry metricsRegistry = new MetricsRegistry();
     MetricsHelper.registerMetricsRegistry(metricsRegistry);
-    final MinionMetrics minionMetrics = new MinionMetrics(metricsRegistry);
+    final MinionMetrics minionMetrics = new MinionMetrics(
+        _config.getString(CommonConstants.Minion.CONFIG_OF_METRICS_PREFIX_KEY, 
CommonConstants.Minion.CONFIG_OF_METRICS_PREFIX),
+        metricsRegistry);
     minionMetrics.initializeGlobalMeters();
     minionContext.setMinionMetrics(minionMetrics);
 
diff --git 
a/pinot-minion/src/main/java/org/apache/pinot/minion/metrics/MinionMetrics.java 
b/pinot-minion/src/main/java/org/apache/pinot/minion/metrics/MinionMetrics.java
index ba44cb4..69f4fe5 100644
--- 
a/pinot-minion/src/main/java/org/apache/pinot/minion/metrics/MinionMetrics.java
+++ 
b/pinot-minion/src/main/java/org/apache/pinot/minion/metrics/MinionMetrics.java
@@ -26,7 +26,11 @@ import org.apache.pinot.common.utils.CommonConstants;
 public class MinionMetrics extends AbstractMetrics<MinionQueryPhase, 
MinionMeter, MinionGauge, MinionTimer> {
 
   public MinionMetrics(MetricsRegistry metricsRegistry) {
-    super(CommonConstants.Minion.METRICS_PREFIX, metricsRegistry, 
MinionMetrics.class);
+    this(CommonConstants.Minion.CONFIG_OF_METRICS_PREFIX, metricsRegistry);
+  }
+
+  public MinionMetrics(String prefix, MetricsRegistry metricsRegistry) {
+    super(prefix, metricsRegistry, MinionMetrics.class);
   }
 
   @Override
diff --git 
a/pinot-server/src/main/java/org/apache/pinot/server/conf/ServerConf.java 
b/pinot-server/src/main/java/org/apache/pinot/server/conf/ServerConf.java
index 7efc95c..5610a4a 100644
--- a/pinot-server/src/main/java/org/apache/pinot/server/conf/ServerConf.java
+++ b/pinot-server/src/main/java/org/apache/pinot/server/conf/ServerConf.java
@@ -20,6 +20,8 @@ package org.apache.pinot.server.conf;
 
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
+import org.apache.pinot.common.metrics.ServerMetrics;
+import org.apache.pinot.common.utils.CommonConstants;
 
 
 /**
@@ -30,6 +32,7 @@ public class ServerConf {
   private static final String PINOT_ = "pinot.";
   private static final String PINOT_SERVER_INSTANCE = "pinot.server.instance";
   private static final String PINOT_SERVER_METRICS = "pinot.server.metrics";
+  private static final String PINOT_SERVER_METRICS_PREFIX = 
"pinot.server.metrics.prefix";
   private static final String PINOT_SERVER_TABLE_LEVEL_METRICS = 
"pinot.server.enableTableLevelMetrics";
   // List of metrics to always send table level metrics even if table level 
metrics is disabled
   private static final String PINOT_SERVER_TABLE_LEVEL_METRICS_LIST = 
"pinot.server.tablelevel.metrics.whitelist";
@@ -100,4 +103,8 @@ public class ServerConf {
   public boolean emitTableLevelMetrics() {
     return _serverConf.getBoolean(PINOT_SERVER_TABLE_LEVEL_METRICS, true);
   }
+
+  public String getMetricsPrefix() {
+    return _serverConf.getString(PINOT_SERVER_METRICS_PREFIX, 
CommonConstants.Server.DEFAULT_METRICS_PREFIX);
+  }
 }
diff --git 
a/pinot-server/src/main/java/org/apache/pinot/server/starter/ServerBuilder.java 
b/pinot-server/src/main/java/org/apache/pinot/server/starter/ServerBuilder.java
index c8ad800..1e918b1 100644
--- 
a/pinot-server/src/main/java/org/apache/pinot/server/starter/ServerBuilder.java
+++ 
b/pinot-server/src/main/java/org/apache/pinot/server/starter/ServerBuilder.java
@@ -22,6 +22,8 @@ import com.yammer.metrics.core.MetricsRegistry;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.atomic.LongAccumulator;
+
+import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.helix.ZNRecord;
 import org.apache.helix.store.zk.ZkHelixPropertyStore;
@@ -70,7 +72,7 @@ public class ServerBuilder {
     MetricsHelper.initializeMetrics(_serverConf.getMetricsConfig());
     MetricsRegistry metricsRegistry = new MetricsRegistry();
     MetricsHelper.registerMetricsRegistry(metricsRegistry);
-    _serverMetrics = new ServerMetrics(metricsRegistry, 
!_serverConf.emitTableLevelMetrics());
+    _serverMetrics = new ServerMetrics(_serverConf.getMetricsPrefix(), 
metricsRegistry, !_serverConf.emitTableLevelMetrics());
     _serverMetrics.initializeGlobalMeters();
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to