Enable intel_pmu plugin in collectd
[yardstick.git] / yardstick / network_services / nfvi / resource.py
index e3d0e3b..fef44e2 100644 (file)
@@ -166,7 +166,7 @@ class ResourceProfile(object):
             res_key0 = next(res_key_iter)
             res_key1 = next(res_key_iter)
 
-            if "cpu" in res_key0 or "intel_rdt" in res_key0:
+            if "cpu" in res_key0 or "intel_rdt" in res_key0 or "intel_pmu" in res_key0:
                 cpu_key, name, metric, testcase = \
                     self.get_cpu_data(res_key0, res_key1, value)
                 result["cpu"].setdefault(cpu_key, {}).update({name: metric})
@@ -186,9 +186,6 @@ class ResourceProfile(object):
             elif "ovs_stats" in res_key0:
                 result["ovs_stats"].update(self.parse_ovs_stats(key_split, value))
 
-            elif "intel_pmu-all" in res_key0:
-                result["intel_pmu"].update(self.parse_intel_pmu_stats(res_key1, value))
-
         result["timestamp"] = testcase
 
         return result
@@ -253,6 +250,10 @@ class ResourceProfile(object):
             # connection.execute("sudo %s '%s' '%s'" % (
             #     collectd_installer, http_proxy, https_proxy))
             return
+        if "intel_pmu" in self.plugins:
+            LOG.debug("Downloading event list for pmu_stats plugin")
+            cmd = 'sudo bash -c \'cd /opt/tempT/pmu-tools/; python event_download_local.py\''
+            connection.execute(cmd)
         LOG.debug("Starting collectd to collect NFVi stats")
         # ensure collectd.conf.d exists to avoid error/warning
         connection.execute("sudo mkdir -p /etc/collectd/collectd.conf.d")
@@ -274,7 +275,10 @@ class ResourceProfile(object):
         connection.execute("sudo rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'")
 
         LOG.debug("Start collectd service..... %s second timeout", self.timeout)
-        connection.execute("sudo %s" % collectd_path, timeout=self.timeout)
+        # intel_pmu plug requires large numbers of files open, so try to set
+        # ulimit -n to a large value
+        connection.execute("sudo bash -c 'ulimit -n 1000000 ; %s'" % collectd_path,
+                           timeout=self.timeout)
         LOG.debug("Done")
 
     def initiate_systemagent(self, bin_path):