Francesco Romani has uploaded a new change for review.

Change subject: sampling: mom: add support for alien samplings
......................................................................

sampling: mom: add support for alien samplings

This patch allow a VM to do sampling callbacks
on behalf of other components. These samplings
are considered fully opaque:

they are just a callable without arguments and
an interval in seconds. The VM sampling code will
call periodically these samplings alongside
with the standard VM ones.

This feature will be used by MOM in a future patch
to avoid the need of one monitor thread per VM.

Change-Id: I7b689f11353192858238c587a721b4a9f9d33b9b
Signed-off-by: Francesco Romani <[email protected]>
---
M vdsm/virt/vm.py
1 file changed, 10 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/08/31608/1

diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index ad1ef2f..a429016 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -206,7 +206,7 @@
     # TODO: Remove as soon as there is a hard dependency we can use
     _libvirt_metadata_supported = True
 
-    def __init__(self, vm):
+    def __init__(self, vm, extraMonitors=None):
         AdvancedStatsThread.__init__(self, log=vm.log, daemon=True)
         self._vm = vm
 
@@ -265,6 +265,13 @@
             self.sampleDisk, self.sampleDiskLatency, self.sampleNet,
             self.sampleBalloon, self.sampleVmJobs, self.sampleVcpuPinning,
             self.sampleCpuTune)
+
+        extraMonitors = (tuple() if extraMonitors is None
+                         else tuple(extraMonitors))
+        self.addStatsFunction(
+            AdvancedStatsFunction(mon.collect, mon.interval,
+                                  self.GENERIC_SAMPLING_WINDOW)
+            for mon in extraMonitors)
 
     def _highWrite(self):
         if not self._vm.isDisksStatsCollectionEnabled():
@@ -2732,8 +2739,8 @@
 
         return domxml.toxml()
 
-    def _initVmStats(self):
-        self._vmStats = VmStatsThread(self)
+    def _initVmStats(self, extraMonitors=None):
+        self._vmStats = VmStatsThread(self, extraMonitors)
         self._vmStats.start()
         self._guestEventTime = self._startTime
 


-- 
To view, visit http://gerrit.ovirt.org/31608
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7b689f11353192858238c587a721b4a9f9d33b9b
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Francesco Romani <[email protected]>
_______________________________________________
vdsm-patches mailing list
[email protected]
https://lists.fedorahosted.org/mailman/listinfo/vdsm-patches

Reply via email to