You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2016/07/12 19:01:20 UTC

[jira] [Commented] (PHOENIX-3067) Phoenix metrics system should not be started in pseudo-cluster mode

    [ https://issues.apache.org/jira/browse/PHOENIX-3067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15373474#comment-15373474 ] 

Enis Soztutar commented on PHOENIX-3067:
----------------------------------------

Since there is no API to check whether metrics system is initialized or not, or whether we are in the server side or client side, a simple check to see whether we are in mini-cluster mode should do the trick. 

MetricsSystemImpl.init(): 
{code}
  public synchronized MetricsSystem init(String prefix) {
    if (monitoring && !DefaultMetricsSystem.inMiniClusterMode()) {
      LOG.warn(this.prefix +" metrics system already initialized!");
      return this;
    }
    this.prefix = checkNotNull(prefix, "prefix");
    ++refCount;
    if (monitoring) {
      // in mini cluster mode
      LOG.info(this.prefix +" metrics system started (again)");
      return this;
    }
{code}

> Phoenix metrics system should not be started in pseudo-cluster mode
> -------------------------------------------------------------------
>
>                 Key: PHOENIX-3067
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3067
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 4.9.0
>
>
> Phoenix tracing piggy-backs on the metrics system by specifying a SpanReceiver which is also a MetricsSource (TraceMetricsSource). 
> This works differently on client side versus server side. The hadoop metrics system should only be initialized once, and can only have a single prefix (hbase or phoenix, etc). We configure the metric sink through hadoop-metrics2.properties differently in client side versus server side [1]. 
> Hadoop metric system is designed so that if it is initialized already with some prefix (like hbase), re-initializing it again will be ignored unless it is in "mini-cluster mode". We do not check whether the metrics is already initialized from {{Metrics.java}} and blindly call {{DefaultMetricsSystem.instance().init("phoenix")}} which works as long as we are in distributed mode. Otherwise, the metrics sinks do not work. 
> [1] https://phoenix.apache.org/tracing.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)