Mercurial > code > home > repos > homeauto
changeset 762:5943cacc8b9b
stats page
Ignore-this: b59d958287c2381c908ec9583706966
author | drewp@bigasterisk.com |
---|---|
date | Fri, 14 Feb 2020 16:47:10 -0800 |
parents | 78f699077ff5 |
children | 55d13b5e17bc |
files | service/rdf_to_mqtt/rdf_to_mqtt.py |
diffstat | 1 files changed, 13 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/service/rdf_to_mqtt/rdf_to_mqtt.py Fri Feb 14 10:21:24 2020 -0800 +++ b/service/rdf_to_mqtt/rdf_to_mqtt.py Fri Feb 14 16:47:10 2020 -0800 @@ -7,17 +7,24 @@ import json from mqtt_client import MqttClient from docopt import docopt -from rdflib import Namespace, Literal +from rdflib import Namespace from twisted.internet import reactor import cyclone.web +from greplin import scales +from greplin.scales.cyclonehandler import StatsHandler -from patchablegraph import PatchableGraph, CycloneGraphHandler, CycloneGraphEventsHandler from standardservice.logsetup import log, verboseLogging import rdf_over_http from cycloneerr import PrettyErrorHandler ROOM = Namespace('http://projects.bigasterisk.com/room/') +STATS = scales.collection('/root', + scales.PmfStat('putRequests'), + scales.PmfStat('statement'), + scales.PmfStat('mqttPublish'), +) + devs = { ROOM['kitchenLight']: { 'root': 'h801_skylight', @@ -63,6 +70,7 @@ class OutputPage(PrettyErrorHandler, cyclone.web.RequestHandler): + @STATS.putRequests.time() def put(self): for stmt in rdf_over_http.rdfStatementsFromRequest( self.request.arguments, @@ -70,6 +78,7 @@ self.request.headers): self._onStatement(stmt) + @STATS.statement.time() def _onStatement(self, stmt): log.info(f'incoming statement: {stmt}') ignored = True @@ -126,6 +135,7 @@ stmt[2].toPython()) return ignored + @STATS.mqttPublish.time() def _publish(self, topic: str, messageJson: object=None, message: str=None): if messageJson is not None: @@ -150,6 +160,7 @@ (r"/()", cyclone.web.StaticFileHandler, {"path": ".", "default_filename": "index.html"}), (r'/output', OutputPage), + (r'/stats/(.*)', StatsHandler, {'serverName': 'rdf_to_mqtt'}), ], mqtt=mqtt, debug=arg['-v']), interface='::') log.warn('serving on %s', port)