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

    https://github.com/apache/phoenix/pull/315#discussion_r207001759
  
    --- Diff: 
phoenix-core/src/main/java/org/apache/phoenix/monitoring/GlobalMetricRegistriesAdapter.java
 ---
    @@ -0,0 +1,167 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + * http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package org.apache.phoenix.monitoring;
    +
    +import java.util.Iterator;
    +import java.util.Map;
    +import java.util.Map.Entry;
    +import org.apache.commons.lang.StringUtils;
    +import org.apache.commons.logging.Log;
    +import org.apache.commons.logging.LogFactory;
    +import org.apache.hadoop.hbase.metrics.Counter;
    +import org.apache.hadoop.hbase.metrics.Gauge;
    +import org.apache.hadoop.hbase.metrics.Histogram;
    +import org.apache.hadoop.hbase.metrics.Meter;
    +import org.apache.hadoop.hbase.metrics.Metric;
    +import org.apache.hadoop.hbase.metrics.MetricRegistry;
    +import org.apache.hadoop.hbase.metrics.MetricRegistryInfo;
    +import org.apache.hadoop.hbase.metrics.Timer;
    +import org.apache.hadoop.metrics2.MetricsCollector;
    +import org.apache.hadoop.metrics2.MetricsInfo;
    +import org.apache.hadoop.metrics2.MetricsRecordBuilder;
    +import org.apache.hadoop.metrics2.MetricsSource;
    +import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
    +import org.apache.hadoop.metrics2.lib.Interns;
    +import org.apache.hadoop.metrics2.lib.MutableHistogram;
    +import org.apache.hadoop.metrics2.source.JvmMetrics;
    +
    +/**
    + * Contents mostly copied from GlobalMetricRegistriesAdapter class from 
hbase-hadoop2-compat
    + * The adapter attaches HBase's MetricRegistry to Hadoop's 
DefaultMetricsSystem
    + * Doesn't handle dynamic attach/detach of registries
    + */
    +public class GlobalMetricRegistriesAdapter {
    +
    +    private static final Log LOG = 
LogFactory.getLog(GlobalMetricRegistriesAdapter.class);
    +    private static GlobalMetricRegistriesAdapter INSTANCE;
    +
    +    private GlobalMetricRegistriesAdapter() {
    +        DefaultMetricsSystem.initialize("HBase");
    +        JvmMetrics.initSingleton("HBase", "");
    --- End diff --
    
    I am sorry, I didn't you on this one. Could you elaborate?
    Also, I realized that stopping JVM metrics from Phoenix Level is not an 
option here. Since phoenix embeds hbase-client which instantiates JVM Metrics 
by default. Checkout this stack trace. 
    
    
    `
    init:57, BaseSourceImpl$DefaultMetricsSystemInitializer 
(org.apache.hadoop.hbase.metrics)
    <init>:112, BaseSourceImpl (org.apache.hadoop.hbase.metrics)
    <init>:56, MetricsZooKeeperSourceImpl (org.apache.hadoop.hbase.zookeeper)
    <init>:51, MetricsZooKeeperSourceImpl (org.apache.hadoop.hbase.zookeeper)
    newInstance0:-1, NativeConstructorAccessorImpl (sun.reflect)
    newInstance:62, NativeConstructorAccessorImpl (sun.reflect)
    newInstance:45, DelegatingConstructorAccessorImpl (sun.reflect)
    newInstance:423, Constructor (java.lang.reflect)
    newInstance:442, Class (java.lang)
    nextService:380, ServiceLoader$LazyIterator (java.util)
    next:404, ServiceLoader$LazyIterator (java.util)
    next:480, ServiceLoader$1 (java.util)
    getInstance:59, CompatibilitySingletonFactory (org.apache.hadoop.hbase)
    <init>:38, MetricsZooKeeper (org.apache.hadoop.hbase.zookeeper)
    <init>:130, RecoverableZooKeeper (org.apache.hadoop.hbase.zookeeper)
    connect:143, ZKUtil (org.apache.hadoop.hbase.zookeeper)
    <init>:181, ZooKeeperWatcher (org.apache.hadoop.hbase.zookeeper)
    <init>:155, ZooKeeperWatcher (org.apache.hadoop.hbase.zookeeper)
    <init>:43, ZooKeeperKeepAliveConnection (org.apache.hadoop.hbase.client)
    getKeepAliveZooKeeperWatcher:1737, 
ConnectionManager$HConnectionImplementation (org.apache.hadoop.hbase.client)
    getClusterId:104, ZooKeeperRegistry (org.apache.hadoop.hbase.client)
    retrieveClusterId:945, ConnectionManager$HConnectionImplementation 
(org.apache.hadoop.hbase.client)
    <init>:721, ConnectionManager$HConnectionImplementation 
(org.apache.hadoop.hbase.client)
    newInstance0:-1, NativeConstructorAccessorImpl (sun.reflect)
    newInstance:62, NativeConstructorAccessorImpl (sun.reflect)
    newInstance:45, DelegatingConstructorAccessorImpl (sun.reflect)
    newInstance:423, Constructor (java.lang.reflect)
    createConnection:238, ConnectionFactory (org.apache.hadoop.hbase.client)
    createConnection:439, ConnectionManager (org.apache.hadoop.hbase.client)
    createConnectionInternal:348, ConnectionManager 
(org.apache.hadoop.hbase.client)
    createConnection:144, HConnectionManager (org.apache.hadoop.hbase.client)
    createConnection:47, HConnectionFactory$HConnectionFactoryImpl 
(org.apache.phoenix.query)
    openConnection:428, ConnectionQueryServicesImpl (org.apache.phoenix.query)
    access$400:270, ConnectionQueryServicesImpl (org.apache.phoenix.query)
    call:2539, ConnectionQueryServicesImpl$12 (org.apache.phoenix.query)
    call:2515, ConnectionQueryServicesImpl$12 (org.apache.phoenix.query)
    call:76, PhoenixContextExecutor (org.apache.phoenix.util)
    init:2515, ConnectionQueryServicesImpl (org.apache.phoenix.query)
    getConnectionQueryServices:255, PhoenixDriver (org.apache.phoenix.jdbc)
    createConnection:150, PhoenixEmbeddedDriver (org.apache.phoenix.jdbc)
    connect:221, PhoenixDriver (org.apache.phoenix.jdbc)
    getConnection:664, DriverManager (java.sql)
    getConnection:208, DriverManager (java.sql)
    createConnection:640, JdbcMeta (org.apache.calcite.avatica.jdbc)
    openConnection:625, JdbcMeta (org.apache.calcite.avatica.jdbc)
    apply:285, LocalService (org.apache.calcite.avatica.remote)
    accept:1770, Service$OpenConnectionRequest 
(org.apache.calcite.avatica.remote)
    accept:1750, Service$OpenConnectionRequest 
(org.apache.calcite.avatica.remote)
    apply:94, AbstractHandler (org.apache.calcite.avatica.remote)
    apply:46, ProtobufHandler (org.apache.calcite.avatica.remote)
    handle:127, AvaticaProtobufHandler (org.apache.calcite.avatica.server)
    handle:52, HandlerList (org.eclipse.jetty.server.handler)
    handle:97, HandlerWrapper (org.eclipse.jetty.server.handler)
    handle:499, Server (org.eclipse.jetty.server)
    handle:311, HttpChannel (org.eclipse.jetty.server)
    onFillable:257, HttpConnection (org.eclipse.jetty.server)
    run:544, AbstractConnection$2 (org.eclipse.jetty.io)
    runJob:635, QueuedThreadPool (org.eclipse.jetty.util.thread)
    run:555, QueuedThreadPool$3 (org.eclipse.jetty.util.thread)
    run:748, Thread (java.lang)
    `


---

Reply via email to