[mod_cluster-issues] [JBoss JIRA] Updated: (MODCLUSTER-151) Modify jbossweb metrics to use service provider spi, instead of jmx

Radoslav Husar (JIRA) jira-events at lists.jboss.org
Mon Sep 19 12:18:26 EDT 2011


     [ https://issues.jboss.org/browse/MODCLUSTER-151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Radoslav Husar updated MODCLUSTER-151:
--------------------------------------

     Original Estimate: 2 days
    Remaining Estimate: 2 days
            Issue Type: Bug  (was: Feature Request)
     Affects Version/s: 1.1.3.Final
           Description: 
Currently, the jbossweb load metrics (i.e. ActiveSessionsLoadMetric, BusyConnectorsLoadMetric, RequestCountLoadMetric, ReceiveTrafficLoadMetric, SendTrafficLoadMetric) use jmx to generate their load values.
This is potentially fragile.
Instead, these load metrics should use org.jboss.mod_cluster.Engine as a load context.

This raises the issue of load value scope.  Currently, load is scoped to a server.  Really, this should be scoped to an engine.  While server:engine is usually a 1:1 relationship, this is technically a 1:N relationship.

Suggested API change:
{code}
class LoadMetricSource<C extends LoadContext>
{
  C createContext(Engine engine);
}
{code}
Where there exists:
{code}
class EngineLoadMetricSource<EngineLoadContext>
{
  public EngineLoadContext createContext(Engine engine)
  {
    return new EngineLoadContext(engine);
  }
}

class EngineLoadContext implements LoadContext
{
  private final Engine engine;
  public EngineLoadContext(Engine engine)
  {
    this.engine = engine;
  }
  public Engine getEngine()
  {
    return this.engine;
  }
  public void close()
  {
    // Nothing to close
  }
}
{code}
The various jbossweb load metrics would use this source.

  was:
Currently, the jbossweb load metrics (i.e. ActiveSessionsLoadMetric, BusyConnectorsLoadMetric, RequestCountLoadMetric, ReceiveTrafficLoadMetric, SendTrafficLoadMetric) use jmx to generate their load values.
This is potentially fragile.
Instead, these load metrics should use org.jboss.mod_cluster.Engine as a load context.

This raises the issue of load value scope.  Currently, load is scoped to a server.  Really, this should be scoped to an engine.  While server:engine is usually a 1:1 relationship, this is technically a 1:N relationship.

Suggested API change:
class LoadMetricSource<C extends LoadContext>
{
  C createContext(Engine engine);
}

Where there exists:

class EngineLoadMetricSource<EngineLoadContext>
{
  public EngineLoadContext createContext(Engine engine)
  {
    return new EngineLoadContext(engine);
  }
}

class EngineLoadContext implements LoadContext
{
  private final Engine engine;
  public EngineLoadContext(Engine engine)
  {
    this.engine = engine;
  }
  public Engine getEngine()
  {
    return this.engine;
  }
  public void close()
  {
    // Nothing to close
  }
}
The various jbossweb load metrics would use this source.



Upgrading as this is a bug in AS7.

> Modify jbossweb metrics to use service provider spi, instead of jmx
> -------------------------------------------------------------------
>
>                 Key: MODCLUSTER-151
>                 URL: https://issues.jboss.org/browse/MODCLUSTER-151
>             Project: mod_cluster
>          Issue Type: Bug
>    Affects Versions: 1.1.0.CR1, 1.1.3.Final
>            Reporter: Paul Ferraro
>            Assignee: Paul Ferraro
>   Original Estimate: 2 days
>  Remaining Estimate: 2 days
>
> Currently, the jbossweb load metrics (i.e. ActiveSessionsLoadMetric, BusyConnectorsLoadMetric, RequestCountLoadMetric, ReceiveTrafficLoadMetric, SendTrafficLoadMetric) use jmx to generate their load values.
> This is potentially fragile.
> Instead, these load metrics should use org.jboss.mod_cluster.Engine as a load context.
> This raises the issue of load value scope.  Currently, load is scoped to a server.  Really, this should be scoped to an engine.  While server:engine is usually a 1:1 relationship, this is technically a 1:N relationship.
> Suggested API change:
> {code}
> class LoadMetricSource<C extends LoadContext>
> {
>   C createContext(Engine engine);
> }
> {code}
> Where there exists:
> {code}
> class EngineLoadMetricSource<EngineLoadContext>
> {
>   public EngineLoadContext createContext(Engine engine)
>   {
>     return new EngineLoadContext(engine);
>   }
> }
> class EngineLoadContext implements LoadContext
> {
>   private final Engine engine;
>   public EngineLoadContext(Engine engine)
>   {
>     this.engine = engine;
>   }
>   public Engine getEngine()
>   {
>     return this.engine;
>   }
>   public void close()
>   {
>     // Nothing to close
>   }
> }
> {code}
> The various jbossweb load metrics would use this source.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the mod_cluster-issues mailing list