Changeset - 6eb1fcbad5f6
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 3 years ago 2022-05-25 06:32:19
drewp@bigasterisk.com
log/metrics cleanup
1 file changed with 7 insertions and 19 deletions:
0 comments (0 inline, 0 general)
light9/collector/service.py
Show inline comments
 
@@ -3,23 +3,20 @@
 
Collector receives device attrs from multiple senders, combines
 
them, and sends output attrs to hardware. The combining part has
 
custom code for some attributes.
 

	
 
Input can be over http or zmq.
 
"""
 
import asyncio
 
import functools
 
import logging
 
import os
 
import traceback
 
from typing import List
 

	
 
from light9 import networking
 
from light9.collector.collector import Collector
 
from light9.collector.output import ArtnetDmx, DummyOutput, Output  # noqa
 
from light9.collector.weblisteners import WebListeners, UiListener
 
from light9.collector.weblisteners import UiListener, WebListeners
 
from light9.namespaces import L9
 
from light9.run_local import log
 
from light9.zmqtransport import parseJsonMessage
 
from prometheus_client import Summary
 
from rdfdb.syncedgraph.syncedgraph import SyncedGraph
 
from starlette.applications import Starlette
 
@@ -27,12 +24,14 @@ from starlette.endpoints import WebSocke
 
from starlette.responses import Response
 
from starlette.routing import Route, WebSocketRoute
 
from starlette.types import Receive, Scope, Send
 
from starlette.websockets import WebSocket
 
from starlette_exporter import PrometheusMiddleware, handle_metrics
 

	
 
STAT_SETATTR = Summary('set_attr', 'setAttr calls')
 

	
 

	
 
class Updates(WebSocketEndpoint, UiListener):
 

	
 
    def __init__(self, listeners, scope: Scope, receive: Receive, send: Send) -> None:
 
        super().__init__(scope, receive, send)
 
        self.listeners = listeners
 
@@ -52,31 +51,20 @@ class Updates(WebSocketEndpoint, UiListe
 
    async def on_disconnect(self, websocket: WebSocket, close_code: int):
 
        self.listeners.delClient(self)
 

	
 
    pass
 

	
 

	
 
STAT_SETATTR = Summary('set_attr', 'setAttr calls')
 

	
 

	
 
async def PutAttrs(collector: Collector, request):
 
    client, clientSession, settings, sendTime = parseJsonMessage(await request.body())
 
    collector.setAttrs(client, clientSession, settings, sendTime)
 
    return Response('', status_code=202)
 
    with STAT_SETATTR.time():
 
        client, clientSession, settings, sendTime = parseJsonMessage(await request.body())
 
        collector.setAttrs(client, clientSession, settings, sendTime)
 
        return Response('', status_code=202)
 

	
 

	
 
def main():
 
    # verbose = os.environ.get('VERBOSE', False)
 
    # logdmx = os.environ.get('LOGDMX', False)  # log all dmx sends
 

	
 
    log.setLevel(logging.DEBUG)
 
    # logging.getLogger('output').setLevel(logging.DEBUG)
 

	
 
    # logging.getLogger('output.allDmx').setLevel(logging.DEBUG if logdmx else logging.INFO)
 
    # logging.getLogger('colormath').setLevel(logging.INFO)
 

	
 
    graph = SyncedGraph(networking.rdfdb.url, "collector")
 

	
 
    try:
 
        # todo: drive outputs with config files
 
        rate = 30
 
        outputs: List[Output] = [
0 comments (0 inline, 0 general)