diff --git a/roles/collectd/templates/cuda_collectd.py.j2 b/roles/collectd/templates/cuda_collectd.py.j2 index e004238c170cdfea1f2fea45f6d93f2456c71360..a0b9411babf9cb49c3feacefb6dd3b7a5ea8b194 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()