changeset 2052:cba85338def9

port to metrics()
author drewp@bigasterisk.com
date Fri, 13 May 2022 01:07:36 -0700
parents bfee787d7b5c
children b7a3dff5514d
files light9/collector/output.py
diffstat 1 files changed, 6 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/light9/collector/output.py	Fri May 13 01:07:15 2022 -0700
+++ b/light9/collector/output.py	Fri May 13 01:07:36 2022 -0700
@@ -167,8 +167,6 @@
 
 
 class Udmx(BackgroundLoopOutput):
-    _reconnections = scales.IntStat('reconnections')
-    _connected = scales.IntStat('connected')
 
     def __init__(self, uri, bus, address, lastDmxChannel, rate=22):
         self.bus = bus
@@ -177,24 +175,20 @@
         self.dev = None
         super().__init__(uri, rate=rate)
 
-        self._errStats = scales.collection(self.statPath + '/write',
-                                           scales.IntStat('overflow'),
-                                           scales.IntStat('ioError'),
-                                           scales.IntStat('pipeError'))
         self.reconnect()
 
     def shortId(self) -> str:
         return super().shortId() + f'_bus={self.bus}'
 
     def reconnect(self):
-        self._connected = 0
+        metrics('connected', output=self.shortId()).set(0)
         from pyudmx import pyudmx
         self.dev = pyudmx.uDMXDevice()
         if not self.dev.open(bus=self.bus, address=self.address):
             raise ValueError("dmx open failed")
         log.info(f'opened {self.dev}')
-        self._connected = 1
-        self._reconnections += 1
+        metrics('connected', output=self.shortId()).set(1)
+        metrics('reconnections', output=self.shortId()).inc()
 
     #def update(self, buf:bytes):
     #    self._write(buf)
@@ -232,15 +226,15 @@
             except usb.core.USBError as e:
                 # not in main thread
                 if e.errno == 75:
-                    self._errStats.overflow += 1
+                    metrics('write_overflow', output=self.shortId()).inc()
                     return
 
                 if e.errno == 5:  # i/o err
-                    self._errStats.ioError += 1
+                    metrics('write_io_error', output=self.shortId()).inc()
                     return
 
                 if e.errno == 32:  # pipe err
-                    self._errStats.pipeError += 1
+                    metrics('write_pipe_error', output=self.shortId()).inc()
                     return
 
                 msg = 'usb: sending %s bytes to %r; error %r' % (len(buf),