Github user karanmehta93 commented on a diff in the pull request:

    https://github.com/apache/phoenix/pull/315#discussion_r205900530
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/monitoring/GlobalClientMetrics.java
 ---
    @@ -108,40 +114,88 @@
         GLOBAL_HBASE_COUNT_ROWS_SCANNED(COUNT_ROWS_SCANNED),
         GLOBAL_HBASE_COUNT_ROWS_FILTERED(COUNT_ROWS_FILTERED);
     
    -    
    +    private static final Logger LOG = 
LoggerFactory.getLogger(GlobalClientMetrics.class);
         private static final boolean isGlobalMetricsEnabled = 
QueryServicesOptions.withDefaults().isGlobalMetricsEnabled();
    +    private MetricType metricType;
         private GlobalMetric metric;
     
    -    public void update(long value) {
    +    static {
    +        initPhoenixGlobalClientMetrics();
             if (isGlobalMetricsEnabled) {
    -            metric.change(value);
    +            MetricRegistry metricRegistry = createMetricRegistry();
    +            registerPhoenixMetricsToRegistry(metricRegistry);
    +            
GlobalMetricRegistriesAdapter.getInstance().registerMetricRegistry(metricRegistry);
    +        }
    +    }
    +
    +    private static void initPhoenixGlobalClientMetrics() {
    +        for (GlobalClientMetrics globalMetric : 
GlobalClientMetrics.values()) {
    +            globalMetric.metric = isGlobalMetricsEnabled ?
    +                    new GlobalMetricImpl(globalMetric.metricType) : new 
NoOpGlobalMetricImpl();
    +        }
    +    }
    +
    +    private static void registerPhoenixMetricsToRegistry(MetricRegistry 
metricRegistry) {
    +        for (GlobalClientMetrics globalMetric : 
GlobalClientMetrics.values()) {
    +            metricRegistry.register(globalMetric.metricType.columnName(),
    +                    new PhoenixGlobalMetricGauge(globalMetric.metric));
    +        }
    +    }
    +
    +    private static MetricRegistry createMetricRegistry() {
    +        LOG.info("Creating Metric Registry for Phoenix Global Metrics");
    +        MetricRegistryInfo registryInfo = new 
MetricRegistryInfo("PHOENIX", "Phoenix Global Metrics",
    --- End diff --
    
    Global here refers that it is an aggregation across all clients (or all 
Phoenix Connections). 
    
    > Maybe "Phoenix,sub=CLIENT" down below?
    
    Seems reasonable as well.


---

Reply via email to