From 253d5bc990fb00459a1654d78d7516dc9ef10a96 Mon Sep 17 00:00:00 2001
From: Chris Hines <chris.hines@monash.edu>
Date: Fri, 19 Oct 2018 14:31:01 +1100
Subject: [PATCH] more gpu metrics being collected

Former-commit-id: 8ae7e976c5fdd970ad51d96321cedf801e21a912
---
 roles/collectd/templates/cuda_collectd.py.j2 | 25 ++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/roles/collectd/templates/cuda_collectd.py.j2 b/roles/collectd/templates/cuda_collectd.py.j2
index e004238c..a0b9411b 100644
--- a/roles/collectd/templates/cuda_collectd.py.j2
+++ b/roles/collectd/templates/cuda_collectd.py.j2
@@ -1,11 +1,16 @@
 #!/usr/bin/env python
 
-import collectd
+try:
+    import collectd
+    from collectd import Values
+except:
+    from fakeCollectd import Values
 import subprocess
 import xml.etree.ElementTree as ET
 
+
 def read(data=None):
-        vl = collectd.Values(type='gauge')
+        vl = Values(type='gauge')
         vl.plugin = 'cuda'
 
         out = subprocess.check_output(['nvidia-smi', '-q', '-x'])
@@ -30,6 +35,18 @@ def read(data=None):
                             values=[1e6 * float(gpu.find('utilization/gpu_util').text.split()[0])])
                 except:
                     pass
-
-collectd.register_read(read)
+                try:
+                    vl.dispatch(type='gauge', type_instance='power_state',
+                            values=[int(gpu.find('power_readings/power_state').text.split()[0][1:])])
+                except:
+                    pass
+                try:
+                    vl.dispatch(type='gauge', type_instance='power_draw',
+                            values=[float(gpu.find('power_readings/power_draw').text.split()[0])])
+                except:
+                    pass
+try:
+    collectd.register_read(read)
+except:
+    readtest()
 
-- 
GitLab