incubator-ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From maha...@apache.org
Subject svn commit: r1435419 - in /incubator/ambari/trunk: ./ ambari-agent/src/main/puppet/modules/hdp-ganglia/files/ ambari-server/src/main/java/org/apache/ambari/server/api/query/ ambari-server/src/main/java/org/apache/ambari/server/api/resources/ ambari-ser...
Date Fri, 18 Jan 2013 23:54:50 GMT
Author: mahadev
Date: Fri Jan 18 23:54:49 2013
New Revision: 1435419

URL: http://svn.apache.org/viewvc?rev=1435419&view=rev
Log:
AMBARI-1198. Ambari API Performance: Parsing of Ganglia json data is slow. (jspeidel via mahadev)

Added:
    incubator/ambari/trunk/ambari-server/src/test/resources/temporal_ganglia_data.txt
Removed:
    incubator/ambari/trunk/ambari-server/src/test/resources/temporal_ganglia.json
Modified:
    incubator/ambari/trunk/CHANGES.txt
    incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-ganglia/files/rrd.py
    incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java
    incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceImpl.java
    incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaMetric.java
    incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java
    incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXMetricHolder.java
    incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
    incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/TestStreamProvider.java

Modified: incubator/ambari/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/CHANGES.txt?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/CHANGES.txt (original)
+++ incubator/ambari/trunk/CHANGES.txt Fri Jan 18 23:54:49 2013
@@ -43,6 +43,9 @@ Trunk (unreleased changes):
  AMBARI-1181. Clean up table header UI for sorting and filter clear "x" for
  Hosts table. (yusaku)
 
+ AMBARI-1198. Ambari API Performance: Parsing of Ganglia json data is slow.
+ (jspeidel via mahadev)
+
  BUG FIXES
 
  AMBARI-1203. mapred-site.xml default system directory is not set

Modified: incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-ganglia/files/rrd.py
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-ganglia/files/rrd.py?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-ganglia/files/rrd.py (original)
+++ incubator/ambari/trunk/ambari-agent/src/main/puppet/modules/hdp-ganglia/files/rrd.py Fri
Jan 18 23:54:49 2013
@@ -19,67 +19,81 @@ limitations under the License.
 '''
 
 import cgi
-#import cgitb
 import os
 import rrdtool
 import sys
+import time
 
 # place this script in /var/www/cgi-bin of the Ganglia collector
 # requires 'yum install rrdtool-python' on the Ganglia collector
 
-#cgitb.enable()
 
-def printMetric(clusterName, hostName, metricName, file, cf, start, end, resolution):
+def printMetric(clusterName, hostName, metricName, file, cf, start, end, resolution, pointInTime):
   if clusterName.endswith("rrds"):
     clusterName = ""
 
   args = [file, cf]
 
   if start is not None:
-   args.extend(["-s", start])
+    args.extend(["-s", start])
 
   if end is not None:
-   args.extend(["-e", end])
+    args.extend(["-e", end])
 
   if resolution is not None:
-   args.extend(["-r", resolution])
+    args.extend(["-r", resolution])
 
   rrdMetric = rrdtool.fetch(args)
+  # ds_name
+  sys.stdout.write(rrdMetric[1][0])
+  sys.stdout.write("\n")
+
+  sys.stdout.write(clusterName)
+  sys.stdout.write("\n")
+  sys.stdout.write(hostName)
+  sys.stdout.write("\n")
+  sys.stdout.write(metricName)
+  sys.stdout.write("\n")
+
+  # write time
+  sys.stdout.write(str(rrdMetric[0][0]))
+  sys.stdout.write("\n")
+  # write step
+  sys.stdout.write(str(rrdMetric[0][2]))
+  sys.stdout.write("\n")
+
+  if not pointInTime:
+    for tuple in rrdMetric[2]:
+      if tuple[0] is not None:
+        sys.stdout.write(str(tuple[0]))
+        sys.stdout.write("\n")
+  else:
+    value = None
+    idx   = -1
+    tuple = rrdMetric[2]
+    tupleLastIdx = len(tuple) * -1
+
+    while value is None and idx >= tupleLastIdx:
+      value = tuple[idx][0]
+      idx-=1
+
+    if value is not None:
+      sys.stdout.write(str(value))
+      sys.stdout.write("\n")
 
-  time = rrdMetric[0][0]
-  step = rrdMetric[0][2]
-
-  sys.stdout.write("  {\n    \"ds_name\":\"" + rrdMetric[1][0] +\
-                   "\",\n    \"cluster_name\":\"" + clusterName +\
-                   "\",\n    \"host_name\":\"" + hostName +\
-                   "\",\n    \"metric_name\":\"" + metricName + "\",\n")
-
-  firstDP = True
-  sys.stdout.write("    \"datapoints\":[\n")
-  for tuple in rrdMetric[2]:
-    if tuple[0] is not None:
-      if not firstDP:
-        sys.stdout.write(",\n")
-      firstDP = False
-      sys.stdout.write("      [")
-      sys.stdout.write(str(tuple[0]))
-      sys.stdout.write(",")
-      sys.stdout.write(str(time))
-      sys.stdout.write("]")
-    time = time + step
-  sys.stdout.write("\n    ]\n  }")
+  sys.stdout.write("[AMBARI_DP_END]\n")
   return
 
 def stripList(l):
   return([x.strip() for x in l])
 
-sys.stdout.write("Content-type: application/json\n\n")
-
-queryString = dict(cgi.parse_qsl(os.environ['QUERY_STRING']));
+sys.stdout.write("Content-type: text/plain\n\n")
 
-sys.stdout.write("[\n")
+# write start time
+sys.stdout.write(str(time.mktime(time.gmtime())))
+sys.stdout.write("\n")
 
-firstMetric = True
+queryString = dict(cgi.parse_qsl(os.environ['QUERY_STRING']));
 
 if "m" in queryString:
   metricParts = queryString["m"].split(",")
@@ -120,6 +134,11 @@ if "cf" in queryString:
 else:
   cf = "AVERAGE"
 
+if "pt" in queryString:
+  pointInTime = True
+else:
+  pointInTime = False
+
 for cluster in clusterParts:
   for path, dirs, files in os.walk(rrdPath + cluster):
     pathParts = path.split("/")
@@ -127,12 +146,13 @@ for cluster in clusterParts:
       for file in files:
         for metric in metricParts:
           if file.endswith(metric + ".rrd"):
-            if not firstMetric:
-              sys.stdout.write(",\n")
 
-            printMetric(pathParts[-2], pathParts[-1], file[:-4], os.path.join(path, file),
cf, start, end, resolution)
+            printMetric(pathParts[-2], pathParts[-1], file[:-4],
+                os.path.join(path, file), cf, start, end, resolution, pointInTime)
 
-            firstMetric = False
+sys.stdout.write("[AMBARI_END]\n")
+# write end time
+sys.stdout.write(str(time.mktime(time.gmtime())))
+sys.stdout.write("\n")
 
-sys.stdout.write("\n]\n")
 sys.stdout.flush

Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java
(original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/query/QueryImpl.java
Fri Jan 18 23:54:49 2013
@@ -147,6 +147,11 @@ public class QueryImpl implements Query 
       m_mapSubResources.putAll(m_resource.getSubResources());
     }
 
+    if (LOG.isInfoEnabled()) {
+      //todo: include predicate info.  Need to implement toString for all predicates.
+      LOG.info("Executing resource query: " + m_resource.getIds());
+    }
+
     Predicate predicate = createPredicate(m_resource);
     Iterable<Resource> iterResource = getClusterController().getResources(
         resourceType, createRequest(), predicate);
@@ -157,7 +162,7 @@ public class QueryImpl implements Query 
       // add a child node for the resource and provide a unique name.  The name is never
used.
       //todo: provide a more meaningful node name
       TreeNode<Resource> node = tree.addChild(resource, resource.getType() + ":" +
count++);
-       for (Map.Entry<String, ResourceInstance> entry : m_mapSubResources.entrySet())
{
+      for (Map.Entry<String, ResourceInstance> entry : m_mapSubResources.entrySet())
{
         String subResCategory = entry.getKey();
         ResourceInstance r = entry.getValue();
 

Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceImpl.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceImpl.java?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceImpl.java
(original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/api/resources/ResourceInstanceImpl.java
Fri Jan 18 23:54:49 2013
@@ -139,7 +139,7 @@ public class ResourceInstanceImpl implem
     ResourceInstanceImpl that = (ResourceInstanceImpl) o;
 
     return m_mapResourceIds.equals(that.m_mapResourceIds) &&
-           m_query.equals(that.m_query) &&
+           m_query == that.m_query &&
            m_resourceDefinition.equals(that.m_resourceDefinition) &&
            m_mapSubResources == null ? that.m_mapSubResources == null :
                m_mapSubResources.equals(that.m_mapSubResources);
@@ -147,7 +147,7 @@ public class ResourceInstanceImpl implem
 
   @Override
   public int hashCode() {
-    int result =m_query.hashCode();
+    int result = 13;
     result = 31 * result + m_mapResourceIds.hashCode();
     result = 31 * result + m_resourceDefinition.hashCode();
     result = 31 * result + (m_mapSubResources != null ? m_mapSubResources.hashCode() : 0);

Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaMetric.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaMetric.java?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaMetric.java
(original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaMetric.java
Fri Jan 18 23:54:49 2013
@@ -152,4 +152,22 @@ public class GangliaMetric {
 
     return stringBuilder.toString();
   }
+
+  public static class TemporalMetric {
+    private Number m_value;
+    private Number m_time;
+
+    public TemporalMetric(Number value, Number time) {
+      m_value = value;
+      m_time = time;
+    }
+
+    public Number getValue() {
+      return m_value;
+    }
+
+    public Number getTime() {
+      return m_time;
+    }
+  }
 }

Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java
(original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/ganglia/GangliaPropertyProvider.java
Fri Jan 18 23:54:49 2013
@@ -22,19 +22,14 @@ import org.apache.ambari.server.controll
 import org.apache.ambari.server.controller.spi.*;
 import org.apache.ambari.server.controller.utilities.PropertyHelper;
 import org.apache.ambari.server.controller.utilities.StreamProvider;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.type.TypeReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.BufferedReader;
 import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.*;
 
 /**
  * Abstract property provider implementation for a Ganglia source.
@@ -59,6 +54,7 @@ public abstract class GangliaPropertyPro
   private final String componentNamePropertyId;
 
 
+
   /**
    * Map of Ganglia cluster names keyed by component type.
    */
@@ -92,7 +88,8 @@ public abstract class GangliaPropertyPro
     this.hostNamePropertyId       = hostNamePropertyId;
     this.componentNamePropertyId  = componentNamePropertyId;
 
-    propertyIds = new HashSet<String>();
+    propertyIds  = new HashSet<String>();
+
     for (Map.Entry<String, Map<String, PropertyInfo>> entry : componentPropertyInfoMap.entrySet())
{
       propertyIds.addAll(entry.getValue().keySet());
     }
@@ -118,9 +115,11 @@ public abstract class GangliaPropertyPro
     for (Map.Entry<String, Map<TemporalInfo, RRDRequest>> clusterEntry : requestMap.entrySet())
{
       // For each request ...
       for (RRDRequest rrdRequest : clusterEntry.getValue().values() ) {
+        //todo: property provider can reduce set of resources
         keepers.addAll(rrdRequest.populateResources());
       }
     }
+    //todo: ignoring keepers returned by the provider
     return resources;
   }
 
@@ -311,6 +310,7 @@ public abstract class GangliaPropertyPro
     }
     else {
       sb.append("&e=now");
+      sb.append("&pt=true");
     }
 
     return sb.toString();
@@ -414,31 +414,76 @@ public abstract class GangliaPropertyPro
     public Collection<Resource> populateResources() throws SystemException {
 
       String spec = getSpec(clusterName, clusterSet, hostSet, metrics.keySet(), temporalInfo);
-      Collection<Resource> populatedResources = new HashSet<Resource>();
-
+      BufferedReader reader = null;
       try {
-        List<GangliaMetric> gangliaMetrics = new ObjectMapper().readValue(getStreamProvider().readFrom(spec),
-            new TypeReference<List<GangliaMetric>>() {
-            });
-
-        if (gangliaMetrics != null) {
-          for (GangliaMetric gangliaMetric : gangliaMetrics) {
-
-            ResourceKey key = new ResourceKey(gangliaMetric.getHost_name(), gangliaMetric.getCluster_name());
-            Set<Resource> resourceSet = resources.get(key);
-            if (resourceSet != null) {
-              for (Resource resource : resourceSet) {
-                populateResource(resource, gangliaMetric);
-              }
+        reader = new BufferedReader(new InputStreamReader(
+            getStreamProvider().readFrom(spec)));
+
+        int startTime = convertToNumber(reader.readLine()).intValue();
+
+        String dsName = reader.readLine();
+        while(! dsName.equals("[AMBARI_END]")) {
+          GangliaMetric metric = new GangliaMetric();
+          List<GangliaMetric.TemporalMetric> listTemporalMetrics =
+              new ArrayList<GangliaMetric.TemporalMetric>();
+
+          metric.setDs_name(dsName);
+          metric.setCluster_name(reader.readLine());
+          metric.setHost_name(reader.readLine());
+          metric.setMetric_name(reader.readLine());
+
+          int time = convertToNumber(reader.readLine()).intValue();
+          int step = convertToNumber(reader.readLine()).intValue();
+
+          String val = reader.readLine();
+          while(! val.equals("[AMBARI_DP_END]")) {
+            listTemporalMetrics.add(
+                new GangliaMetric.TemporalMetric(convertToNumber(val), time));
+            time += step;
+            val = reader.readLine();
+          }
+
+          //todo: change setter in GangliaMetric to take collection
+          Number[][] datapointsArray = new Number[listTemporalMetrics.size()][2];
+          for (int i = 0; i < listTemporalMetrics.size(); ++i) {
+            GangliaMetric.TemporalMetric m = listTemporalMetrics.get(i);
+            datapointsArray[i][0] = m.getValue();
+            datapointsArray[i][1] = m.getTime();
+          }
+          metric.setDatapoints(datapointsArray);
+
+          ResourceKey key = new ResourceKey(metric.getHost_name(), metric.getCluster_name());
+          Set<Resource> resourceSet = resources.get(key);
+          if (resourceSet != null) {
+            for (Resource resource : resourceSet) {
+              populateResource(resource, metric);
             }
           }
+
+          dsName = reader.readLine();
+        }
+        int endTime = convertToNumber(reader.readLine()).intValue();
+
+        if (LOG.isInfoEnabled()) {
+          LOG.info("Ganglia resource population time: " + (endTime - startTime));
         }
       } catch (IOException e) {
         if (LOG.isErrorEnabled()) {
           LOG.error("Caught exception getting Ganglia metrics : spec=" + spec, e);
         }
+      } finally {
+        if (reader != null) {
+          try {
+            reader.close();
+          } catch (IOException e) {
+            if (LOG.isWarnEnabled()) {
+              LOG.warn("Unable to close http input steam : spec=" + spec, e);
+            }
+          }
+        }
       }
-      return populatedResources;
+      //todo: filter out resources and return keepers
+      return Collections.emptySet();
     }
 
     /**
@@ -462,6 +507,10 @@ public abstract class GangliaPropertyPro
         }
       }
     }
+
+    private Number convertToNumber(String s) {
+      return s.contains(".") ? Double.parseDouble(s) : Long.parseLong(s);
+    }
   }
 
 

Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXMetricHolder.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXMetricHolder.java?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXMetricHolder.java
(original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXMetricHolder.java
Fri Jan 18 23:54:49 2013
@@ -24,7 +24,7 @@ import java.util.Map;
 /**
  *
  */
-public class JMXMetricHolder {
+public final class JMXMetricHolder {
 
   private List<Map<String, Object>> beans;
 

Modified: incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
(original)
+++ incubator/ambari/trunk/ambari-server/src/main/java/org/apache/ambari/server/controller/jmx/JMXPropertyProvider.java
Fri Jan 18 23:54:49 2013
@@ -22,11 +22,14 @@ import org.apache.ambari.server.controll
 import org.apache.ambari.server.controller.spi.*;
 import org.apache.ambari.server.controller.utilities.StreamProvider;
 import org.apache.ambari.server.controller.utilities.PropertyHelper;
+import org.codehaus.jackson.map.DeserializationConfig;
 import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.ObjectReader;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -62,6 +65,8 @@ public class JMXPropertyProvider impleme
 
   private final String componentNamePropertyId;
 
+  private final static ObjectReader objectReader;
+
 
   static {
     JMX_PORTS.put("NAMENODE",     "50070");
@@ -69,6 +74,10 @@ public class JMXPropertyProvider impleme
     JMX_PORTS.put("JOBTRACKER",   "50030");
     JMX_PORTS.put("TASKTRACKER",  "50060");
     JMX_PORTS.put("HBASE_MASTER", "60010");
+
+    ObjectMapper objectMapper = new ObjectMapper();
+    objectMapper.configure(DeserializationConfig.Feature.USE_ANNOTATIONS, false);
+    objectReader = objectMapper.reader(JMXMetricHolder.class);
   }
 
   protected final static Logger LOG =
@@ -177,9 +186,10 @@ public class JMXPropertyProvider impleme
     }
 
     String spec = getSpec(hostName + ":" + port);
-
+    InputStream in = null;
     try {
-      JMXMetricHolder metricHolder = new ObjectMapper().readValue(streamProvider.readFrom(spec),
JMXMetricHolder.class);
+      in = streamProvider.readFrom(spec);
+      JMXMetricHolder metricHolder = objectReader.readValue(in);
 
       Map<String, Map<String, Object>> categories = new HashMap<String, Map<String,
Object>>();
 
@@ -243,6 +253,16 @@ public class JMXPropertyProvider impleme
       if (LOG.isErrorEnabled()) {
         LOG.error("Caught exception getting JMX metrics : spec=" + spec, e);
       }
+    } finally {
+      if (in != null) {
+        try {
+          in.close();
+        } catch (IOException e) {
+          if (LOG.isWarnEnabled()) {
+            LOG.warn("Unable to close http input steam : spec=" + spec, e);
+          }
+        }
+      }
     }
 
     return true;

Modified: incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/TestStreamProvider.java
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/TestStreamProvider.java?rev=1435419&r1=1435418&r2=1435419&view=diff
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/TestStreamProvider.java
(original)
+++ incubator/ambari/trunk/ambari-server/src/test/java/org/apache/ambari/server/controller/ganglia/TestStreamProvider.java
Fri Jan 18 23:54:49 2013
@@ -30,7 +30,7 @@ public class TestStreamProvider implemen
   @Override
   public InputStream readFrom(String spec) throws IOException {
     lastSpec = spec;
-    return ClassLoader.getSystemResourceAsStream("temporal_ganglia.json");
+    return ClassLoader.getSystemResourceAsStream("temporal_ganglia_data.txt");
   }
 
   public String getLastSpec() {

Added: incubator/ambari/trunk/ambari-server/src/test/resources/temporal_ganglia_data.txt
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-server/src/test/resources/temporal_ganglia_data.txt?rev=1435419&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-server/src/test/resources/temporal_ganglia_data.txt (added)
+++ incubator/ambari/trunk/ambari-server/src/test/resources/temporal_ganglia_data.txt Fri
Jan 18 23:54:49 2013
@@ -0,0 +1,747 @@
+1111111111
+sum
+HDPSlaves
+domU-12-31-39-0E-34-E1.compute-1.internal
+jvm.metrics.gcCount
+1349899845
+15
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1.85333333
+12.0466667
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+[AMBARI_DP_END]
+sum
+HDPSlaves
+domU-12-31-39-0E-34-E2.compute-1.internal
+jvm.metrics.gcCount
+1349899845
+15
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1.85333333
+12.0466667
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+[AMBARI_DP_END]
+sum
+HDPSlaves
+domU-12-31-39-0E-34-E3.compute-1.internal
+jvm.metrics.gcCount
+1349899845
+15
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1.85333333
+12.0466667
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+[AMBARI_DP_END]
+[AMBARI_END]
+999999999
\ No newline at end of file



Mime
View raw message