You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by ro...@apache.org on 2022/11/01 23:55:30 UTC

[pinot] branch master updated: fix PinotVersion to be compatible with prometheus (#9701)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new e4ee05355c fix PinotVersion to be compatible with prometheus (#9701)
e4ee05355c is described below

commit e4ee05355ca4c177fdc10b35245c37b6a94f8089
Author: Almog Gavra <al...@gmail.com>
AuthorDate: Tue Nov 1 16:55:24 2022 -0700

    fix PinotVersion to be compatible with prometheus (#9701)
    
    * fix PinotVersion to be compatible with prometheus
    * trigger build
    * address comments
---
 .../images/pinot/etc/jmx_prometheus_javaagent/configs/broker.yml  | 5 +++++
 .../pinot/etc/jmx_prometheus_javaagent/configs/controller.yml     | 5 +++++
 .../images/pinot/etc/jmx_prometheus_javaagent/configs/minion.yml  | 7 ++++++-
 .../images/pinot/etc/jmx_prometheus_javaagent/configs/server.yml  | 7 ++++++-
 .../org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java   | 2 +-
 .../main/java/org/apache/pinot/common/version/PinotVersion.java   | 8 ++++++++
 .../java/org/apache/pinot/controller/BaseControllerStarter.java   | 2 +-
 .../src/main/java/org/apache/pinot/minion/BaseMinionStarter.java  | 2 +-
 .../main/java/org/apache/pinot/server/starter/ServerInstance.java | 2 +-
 9 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/broker.yml b/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/broker.yml
index 72816ba56c..450de902c6 100644
--- a/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/broker.yml
+++ b/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/broker.yml
@@ -144,3 +144,8 @@ rules:
   cache: true
   labels:
     table: "$1"
+- pattern: "\"org.apache.pinot.common.metrics\"<type=\"BrokerMetrics\", name=\"pinot.broker.version.(\\w+)\"><>(\\w+)"
+  name: "pinot_broker_version"
+  cache: true
+  labels:
+    version: "$1"
diff --git a/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/controller.yml b/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/controller.yml
index c44dbf3937..253c43e069 100644
--- a/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/controller.yml
+++ b/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/controller.yml
@@ -160,3 +160,8 @@ rules:
   labels:
     table: "$1"
     tableType: "$2"
+- pattern: "\"org.apache.pinot.common.metrics\"<type=\"ControllerMetrics\", name=\"pinot.controller.version.(\\w+)\"><>(\\w+)"
+  name: "pinot_controller_version"
+  cache: true
+  labels:
+    version: "$1"
diff --git a/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/minion.yml b/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/minion.yml
index 42fbc63cf7..daf1440774 100644
--- a/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/minion.yml
+++ b/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/minion.yml
@@ -6,4 +6,9 @@ rules:
   name: "pinot_minion_$2_$3"
   cache: true
   labels:
-    id: "$1"
\ No newline at end of file
+    id: "$1"
+- pattern: "\"org.apache.pinot.common.metrics\"<type=\"MinionMetrics\", name=\"pinot.minion.version.(\\w+)\"><>(\\w+)"
+  name: "pinot_minion_version"
+  cache: true
+  labels:
+    version: "$1"
diff --git a/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/server.yml b/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/server.yml
index 925be50f08..211c859f39 100644
--- a/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/server.yml
+++ b/docker/images/pinot/etc/jmx_prometheus_javaagent/configs/server.yml
@@ -117,4 +117,9 @@ rules:
   labels:
     table: "$1"
     tableType: "$2"
-    partition: "$3"
\ No newline at end of file
+    partition: "$3"
+- pattern: "\"org.apache.pinot.common.metrics\"<type=\"ServerMetrics\", name=\"pinot.server.version.(\\w+)\"><>(\\w+)"
+  name: "pinot_server_version"
+  cache: true
+  labels:
+    version: "$1"
diff --git a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
index d818681993..694e6fde1c 100644
--- a/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
+++ b/pinot-broker/src/main/java/org/apache/pinot/broker/broker/helix/BaseBrokerStarter.java
@@ -239,7 +239,7 @@ public abstract class BaseBrokerStarter implements ServiceStartable {
         _brokerConf.getProperty(Broker.CONFIG_OF_ENABLE_TABLE_LEVEL_METRICS, Broker.DEFAULT_ENABLE_TABLE_LEVEL_METRICS),
         _brokerConf.getProperty(Broker.CONFIG_OF_ALLOWED_TABLES_FOR_EMITTING_METRICS, Collections.emptyList()));
     _brokerMetrics.initializeGlobalMeters();
-    _brokerMetrics.setValueOfGlobalGauge(BrokerGauge.VERSION, PinotVersion.VERSION, 1);
+    _brokerMetrics.setValueOfGlobalGauge(BrokerGauge.VERSION, PinotVersion.VERSION_METRIC_NAME, 1);
     // Set up request handling classes
     _serverRoutingStatsManager = new ServerRoutingStatsManager(_brokerConf);
     _serverRoutingStatsManager.init();
diff --git a/pinot-common/src/main/java/org/apache/pinot/common/version/PinotVersion.java b/pinot-common/src/main/java/org/apache/pinot/common/version/PinotVersion.java
index 2d40f4fd8b..ad52a015b4 100644
--- a/pinot-common/src/main/java/org/apache/pinot/common/version/PinotVersion.java
+++ b/pinot-common/src/main/java/org/apache/pinot/common/version/PinotVersion.java
@@ -41,6 +41,12 @@ public class PinotVersion {
    */
   public static final String VERSION;
 
+  /**
+   * A sanitized version string with all dots replaced with underscores, which is necessary
+   * for Prometheus to be able to properly handle the version.
+   */
+  public static final String VERSION_METRIC_NAME;
+
   private PinotVersion() {
     // private constructor for utility class
   }
@@ -66,5 +72,7 @@ public class PinotVersion {
     } else {
       VERSION = version;
     }
+
+    VERSION_METRIC_NAME = VERSION.replace('.', '_').replace('-', '_');
   }
 }
diff --git a/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java b/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
index c05b6481c1..27afdefcc6 100644
--- a/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
+++ b/pinot-controller/src/main/java/org/apache/pinot/controller/BaseControllerStarter.java
@@ -549,7 +549,7 @@ public abstract class BaseControllerStarter implements ServiceStartable {
     _metricsRegistry = PinotMetricUtils.getPinotMetricsRegistry(_config.subset(METRICS_REGISTRY_NAME));
     _controllerMetrics = new ControllerMetrics(_config.getMetricsPrefix(), _metricsRegistry);
     _controllerMetrics.initializeGlobalMeters();
-    _controllerMetrics.setValueOfGlobalGauge(ControllerGauge.VERSION, PinotVersion.VERSION, 1);
+    _controllerMetrics.setValueOfGlobalGauge(ControllerGauge.VERSION, PinotVersion.VERSION_METRIC_NAME, 1);
   }
 
   private void initPinotFSFactory() {
diff --git a/pinot-minion/src/main/java/org/apache/pinot/minion/BaseMinionStarter.java b/pinot-minion/src/main/java/org/apache/pinot/minion/BaseMinionStarter.java
index 17cd826e0e..2448af71c9 100644
--- a/pinot-minion/src/main/java/org/apache/pinot/minion/BaseMinionStarter.java
+++ b/pinot-minion/src/main/java/org/apache/pinot/minion/BaseMinionStarter.java
@@ -188,7 +188,7 @@ public abstract class BaseMinionStarter implements ServiceStartable {
 
     MinionMetrics minionMetrics = new MinionMetrics(_config.getMetricsPrefix(), metricsRegistry);
     minionMetrics.initializeGlobalMeters();
-    minionMetrics.setValueOfGlobalGauge(MinionGauge.VERSION, PinotVersion.VERSION, 1);
+    minionMetrics.setValueOfGlobalGauge(MinionGauge.VERSION, PinotVersion.VERSION_METRIC_NAME, 1);
     minionContext.setMinionMetrics(minionMetrics);
 
     // Install default SSL context if necessary (even if not force-enabled everywhere)
diff --git a/pinot-server/src/main/java/org/apache/pinot/server/starter/ServerInstance.java b/pinot-server/src/main/java/org/apache/pinot/server/starter/ServerInstance.java
index 184d583385..f826bc94bc 100644
--- a/pinot-server/src/main/java/org/apache/pinot/server/starter/ServerInstance.java
+++ b/pinot-server/src/main/java/org/apache/pinot/server/starter/ServerInstance.java
@@ -90,7 +90,7 @@ public class ServerInstance {
         new ServerMetrics(serverConf.getMetricsPrefix(), metricsRegistry, serverConf.emitTableLevelMetrics(),
             serverConf.getAllowedTablesForEmittingMetrics());
     _serverMetrics.initializeGlobalMeters();
-    _serverMetrics.setValueOfGlobalGauge(ServerGauge.VERSION, PinotVersion.VERSION, 1);
+    _serverMetrics.setValueOfGlobalGauge(ServerGauge.VERSION, PinotVersion.VERSION_METRIC_NAME, 1);
 
     String instanceDataManagerClassName = serverConf.getInstanceDataManagerClassName();
     LOGGER.info("Initializing instance data manager of class: {}", instanceDataManagerClassName);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org