[jboss-cvs] jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent ...

Takuro Okada t2-okada at nri.co.jp
Tue Oct 31 06:20:06 EST 2006


  User: tokada  
  Date: 06/10/31 06:20:06

  Modified:    java/src/expansion/org/jboss/profiler/exp/agent   Tag:
                        JBossProfiler_Expansion
                        DefaultProfilerServiceMBean.java
                        DefaultProfilerService.java
  Log:
  Added some interfaces for the persistor.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +19 -27    jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/Attic/DefaultProfilerServiceMBean.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: DefaultProfilerServiceMBean.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/Attic/DefaultProfilerServiceMBean.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -b -r1.1.2.1 -r1.1.2.2
  --- DefaultProfilerServiceMBean.java	26 Oct 2006 08:58:56 -0000	1.1.2.1
  +++ DefaultProfilerServiceMBean.java	31 Oct 2006 11:20:06 -0000	1.1.2.2
  @@ -22,33 +22,10 @@
   
   package org.jboss.profiler.exp.agent;
   
  -import java.util.Map;
  -
  -import org.jboss.profiler.exp.agent.collector.model.Metric;
  -import org.jboss.profiler.exp.agent.collector.model.MetricName;
  +import org.jboss.profiler.exp.agent.collector.model.MetricsMap;
   
   /**
    * The JMX interface of profiler service.
  - * <p>In default, the following map objects are created. </p>
  - * <p>
  - *   <table border="1">
  - *     <tr>
  - *       <td colspan="4">Map</td>
  - *     </tr>
  - *     <tr>
  - *       <td rowspan="3" valign="top">category : String</td>
  - *       <td colspan="3">Map</td>
  - *     </tr>
  - *     <tr>
  - *       <td rowspan="2" valign="top">operation name : String</td>
  - *       <td colspan="3">Map</td>
  - *     </tr>
  - *     <tr>
  - *       <td>MetricName</td>
  - *       <td>Metric</td>
  - *     </tr>
  - *   </table>
  - * </p>
    * 
    * @author Takuro Okada (Nomura Research Institute, Ltd.)
    * Copyright 2006 Nomura Research Institute, Ltd. All Rights Reserved.
  @@ -90,9 +67,24 @@
       void setStorable(boolean storable);
       
       /**
  -     * Gets a snapshot of metric data.
  -     * @return
  +     * Sets a period to persist metrics data.
  +     * @param persistentPeriod - a period (minutes)
  +     */
  +    void setPersistentPeriod(long persistentPeriod);
  +    
  +    /**
  +     * Gets a snapshot of current metrics data.
  +     * @return metrics data
  +     */
  +    MetricsMap snapMetrics();
  +    
  +    /**
  +     * Gets a snapshot of specified metrics data.
  +     * @param metricClass - model class
  +     * @param fromDate - search date (from)
  +     * @param toDate - search date (to)
  +     * @return metrics data
        */
  -    Map<String, Map<String, Map<MetricName, Metric>>> snapMetrics();
  +    MetricsMap snapMetrics(String metricClassName, String metricName, long fromDate, long toDate);
   
   }
  
  
  
  1.1.2.2   +40 -29    jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/Attic/DefaultProfilerService.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: DefaultProfilerService.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-profiler/java/src/expansion/org/jboss/profiler/exp/agent/Attic/DefaultProfilerService.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -b -r1.1.2.1 -r1.1.2.2
  --- DefaultProfilerService.java	26 Oct 2006 08:58:56 -0000	1.1.2.1
  +++ DefaultProfilerService.java	31 Oct 2006 11:20:06 -0000	1.1.2.2
  @@ -22,8 +22,7 @@
   
   package org.jboss.profiler.exp.agent;
   
  -import java.util.HashMap;
  -import java.util.Map;
  +import java.util.Date;
   import java.util.Timer;
   import java.util.TimerTask;
   import java.util.concurrent.ExecutorService;
  @@ -31,8 +30,8 @@
   
   import org.apache.log4j.Logger;
   import org.jboss.profiler.exp.agent.collector.MetricCollector;
  -import org.jboss.profiler.exp.agent.collector.model.Metric;
   import org.jboss.profiler.exp.agent.collector.model.MetricName;
  +import org.jboss.profiler.exp.agent.collector.model.MetricsMap;
   import org.jboss.profiler.exp.agent.persistor.MetricsPersistor;
   import org.jboss.profiler.exp.util.CopyUtil;
   
  @@ -51,7 +50,7 @@
       /*
        * metrics entity
        */
  -    private Map<String, Map<String, Map<MetricName, Metric>>> metricsMap = new HashMap<String, Map<String,Map<MetricName, Metric>>>();
  +    private MetricsMap metricsMap = new MetricsMap();
       
       /*
        * collector executor
  @@ -61,8 +60,10 @@
       /*
        * persistor
        */
  +    private String persistorName = null;
       private MetricsPersistor metricsPersistor = null;
       private Timer persistentTimer = null;
  +    private long persistentPeriod = 1*60*60*1000;
       
       /*
        * parameters
  @@ -70,11 +71,17 @@
       private boolean storable = false;
       
       public void start() throws Exception {
  -        persistentTimer = new Timer("Persistent Timer", true);
  -        persistentTimer.scheduleAtFixedRate(new PersistentTask(), 10000, 1*60*60*1000);
  -        
           collectorExecutor = Executors.newSingleThreadExecutor();
           
  +        try {
  +            metricsPersistor = (MetricsPersistor)Class.forName(persistorName).newInstance();
  +        } catch (Exception e) {
  +            logger.error("Persistor name is illegal.");
  +        }
  +        
  +        persistentTimer = new Timer("Persistent Timer", true);
  +        persistentTimer.scheduleAtFixedRate(new PersistentTask(), 10000, persistentPeriod);
  +        
           logger.info("started");
       }
       
  @@ -87,8 +94,8 @@
       }
   
       public void stop() throws Exception {
  -        collectorExecutor.shutdown();
           persistentTimer.cancel();
  +        collectorExecutor.shutdown();
           logger.info("stoped");
       }
   
  @@ -103,46 +110,50 @@
       }
   
       public void setPersistorName(String persistorName) {
  -        try {
  -            metricsPersistor = (MetricsPersistor)Class.forName(persistorName).newInstance();
  -        } catch (Exception e) {
  -            logger.error("Persistor name is illegal.");
  +        this.persistorName = persistorName;
           }
  +    
  +    public void setPersistentPeriod(long persistentPeriod) {
  +        this.persistentPeriod = persistentPeriod * 60 * 1000;
       }
       
       private void saveMetrics() {
  -        if(!storable) return;
  +        if(!storable || metricsMap.size()==0) return;
           metricsPersistor.store(copyMetrics());
           resetMetrics();
       }
       
       public void resetMetrics() {
           synchronized(metricsMap) {
  -            for(Map<String, Map<MetricName, Metric>> omap : metricsMap.values()) {
  -                synchronized(omap) {
  -                    for(Map<MetricName, Metric> mmap : omap.values()) {
  -                        synchronized(mmap) {
  -                            for(Metric metric : mmap.values()) {
  -                                metric.reset();
  -                            }
  -                        }
  -                    }
  -                }
  -            }
  +            metricsMap = new MetricsMap();
           }
       }
       
  -    public Map<String, Map<String, Map<MetricName, Metric>>> snapMetrics() {
  +    public MetricsMap snapMetrics() {
           return copyMetrics();
       }
   
  +    public MetricsMap snapMetrics(String metricClassName, String metricName, long fromDate, long toDate) {
  +        MetricsMap result = null;
  +        Date from = null;
  +        Date to = null;
  +        try {
  +            if(fromDate>0) from = new Date(fromDate);
  +            if(toDate>0) to = new Date(toDate);
  +            result = metricsPersistor.load(Class.forName(metricClassName), MetricName.valueOf(metricName), from, to);
  +        } catch (ClassNotFoundException e) {
  +            logger.error("Metric class name is illegal.");
  +        }
  +        return result;
  +    }
  +
       @SuppressWarnings("unchecked")
  -    private Map<String, Map<String, Map<MetricName, Metric>>> copyMetrics() {
  -        Map result = null;
  +    private MetricsMap copyMetrics() {
  +        MetricsMap result = null;
           synchronized(metricsMap) {
               try {
                   // TODO use Metric#clone()
  -                result = (Map)CopyUtil.deepCopy((HashMap)metricsMap);
  +                result = (MetricsMap)CopyUtil.deepCopy(metricsMap);
               } catch (Exception e) {
                   logger.error("failed to copy the metrics data.");
               }
  
  
  



More information about the jboss-cvs-commits mailing list