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]