Mercurial > code > home > repos > collector
changeset 9:36471461685f
py server doesn't do static files now
author | drewp@bigasterisk.com |
---|---|
date | Fri, 25 Nov 2022 20:33:05 -0800 |
parents | c48b7bbc3a64 |
children | eeb94f34a956 |
files | collector.py |
diffstat | 1 files changed, 24 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/collector.py Fri Nov 25 20:32:05 2022 -0800 +++ b/collector.py Fri Nov 25 20:33:05 2022 -0800 @@ -16,7 +16,7 @@ import cyclone.sse import cyclone.web from docopt import docopt -from patchablegraph import jsonFromPatch +from patchablegraph.patchablegraph import jsonFromPatch from patchablegraph.patchsource import PatchSource, ReconnectingPatchSource from prometheus_client import Summary from prometheus_client.exposition import generate_latest @@ -29,6 +29,24 @@ from collector_config import config +import cyclone.sse +def py3_sendEvent(self, message, event=None, eid=None, retry=None): + + if isinstance(message, dict): + message = cyclone.sse.escape.json_encode(message) + if isinstance(message, str): + message = message.encode("utf-8") + assert isinstance(message, bytes) + if eid: + self.transport.write(b"id: %s\n" % eid) + if event: + self.transport.write(b"event: %s\n" % event) + if retry: + self.transport.write(b"retry: %s\n" % retry) + self.transport.write(b"data: %s\n\n" % message) +cyclone.sse.SSEHandler.sendEvent = py3_sendEvent + + Statement = Tuple[Node, Node, Node, Node] @@ -341,7 +359,7 @@ # it up into multiple sends, although there's no # guarantee at all since any single stmt could be any # length. - h.sendEvent(message=jsonFromPatch(p).encode('utf8'), event=b'patch') + h.sendEvent(message=jsonFromPatch(p), event=b'patch') h.lastPatchSentTime = now else: log.debug('nothing to send to %s', h) @@ -409,7 +427,9 @@ def get(self) -> None: try: state = self.settings.graphClients.state() - self.write(json.dumps({'graphClients': state}, indent=2, default=lambda obj: '<unserializable>')) + msg = json.dumps({'graphClients': state}, indent=2, default=lambda obj: '<unserializable>') + log.info(msg) + self.write(msg) except Exception: import traceback traceback.print_exc() @@ -430,7 +450,7 @@ -i Info level only """) - if arg['-v'] or arg['-i']: + if True: enableTwistedLog() log.setLevel(logging.DEBUG if arg['-v'] else logging.INFO) defer.setDebugging(True) @@ -441,10 +461,6 @@ 9072, cyclone.web.Application( # handlers=[ - (r"/()", cyclone.web.StaticFileHandler, { - "path": ".", - "default_filename": "index.html" - }), (r'/state', State), (r'/graph/', GraphList), (r'/graph/(.+)', PatchSink),