annotate service/mqtt_to_rdf/src/index.ts @ 1640:4bb6f593ebf3

speedups: abort some rules faster
author drewp@bigasterisk.com
date Wed, 15 Sep 2021 23:56:02 -0700
parents 24e8cd8fcdcd
children 2085ed9cfcc4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
1 // for the web page
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
2 export { DomBind } from "@polymer/polymer/lib/elements/dom-bind.js";
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
3 // export { StreamedGraph } from "streamed-graph";
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
4
1577
6ddc5e037f15 big fixes and rewrites. emitting rdf works, not influx export yet
drewp@bigasterisk.com
parents: 799
diff changeset
5 import { LitElement, property, html, customElement, unsafeCSS } from "lit-element";
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
6
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
7 // import { Literal, N3Store } from "n3";
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
8 // import { NamedNode, DataFactory } from "n3";
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
9 // const { namedNode, literal } = DataFactory;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
10
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
11 // import { VersionedGraph } from "streamed-graph";
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
12 import style from "./style.styl";
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
13 // import { labelFromUri, graphLiteral, graphUriValue } from "./graph_access";
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
14
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
15 // const room = "http://projects.bigasterisk.com/room/";
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
16
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
17 // function asString(x: Literal | undefined): string {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
18 // if (x && x.value) {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
19 // return x.value;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
20 // }
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
21 // return "(unknown)";
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
22 // }
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
23
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
24 interface GraphAtTime {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
25 t: number;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
26 n3: string;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
27 }
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
28 interface Metric {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
29 name: string;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
30 labels: { [_: string]: string };
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
31 value: string;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
32 }
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
33 interface Subscribed {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
34 topic: string;
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
35 recentMessageGraphs: GraphAtTime[];
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
36 recentMetrics: Metric[];
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
37 currentOutputGraph: GraphAtTime;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
38 }
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
39 interface PageData {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
40 server: string;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
41 messagesSeen: number;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
42 subscribed: Subscribed[];
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
43 }
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
44
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
45 @customElement("mqtt-to-rdf-page")
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
46 export class MqttToRdfPage extends LitElement {
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
47 static get styles() {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
48 return unsafeCSS(style);
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
49 }
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
50
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
51 // @property({ type: Object })
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
52 // graph!: VersionedGraph;
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
53
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
54 connectedCallback() {
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
55 super.connectedCallback();
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
56 const data = new EventSource("debugPageData");
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
57 data.addEventListener("message", (ev: { data: string }) => {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
58 this.pageData = JSON.parse(ev.data) as PageData;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
59 console.log("data update");
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
60 });
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
61 // const sg = this.ownerDocument!.querySelector("streamed-graph");
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
62 // sg?.addEventListener("graph-changed", ((ev: CustomEvent) => {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
63 // this.graph = ev.detail!.value as VersionedGraph;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
64 // }) as EventListener);
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
65 }
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
66
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
67 // static get observers() {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
68 // return ["onGraphChanged(graph)"];
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
69 // }
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
70
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
71 @property({})
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
72 pageData: PageData = {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
73 server: "loading...",
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
74 messagesSeen: 0,
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
75 subscribed: [
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
76 {
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
77 topic: "top1",
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
78 recentMessageGraphs: [],
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
79 recentMetrics: [],
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
80 currentOutputGraph: { t: 1, n3: "(n3)" },
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
81 },
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
82 ],
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
83 };
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
84
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
85 render() {
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
86 const d = this.pageData;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
87 const now = Date.now() / 1000;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
88 const ago = (t: number) => html`${Math.round(now - t)}s ago`;
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
89 const topicItem = (t: Subscribed, index: number) =>
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
90 html`<div class="topic" style="grid-column: 1; grid-row: ${index + 2}">
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
91 <span class="topic">${t.topic} sticky this to graph column</span>
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
92 </div>`;
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
93
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
94 const parsedGraphAtTime = (g: GraphAtTime) => html` <div class="graph">graph: ${g.n3}</div> `;
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
95 const recentMessageGraphs = (t: Subscribed, index: number) =>
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
96 html` <div style="grid-column: 2; grid-row: ${index + 2}">${t.recentMessageGraphs.map(parsedGraphAtTime)}</div> `;
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
97
1577
6ddc5e037f15 big fixes and rewrites. emitting rdf works, not influx export yet
drewp@bigasterisk.com
parents: 799
diff changeset
98 const metric = (m: Metric) => html`<div>metrix ${m.name} ${JSON.stringify(m.labels)} = ${m.value}</div>`;
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
99 const outputMetrics = (t: Subscribed, index: number) => html` <div style="grid-column: 3; grid-row: ${index + 2}">${t.recentMetrics.map(metric)}</div> `;
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
100 const outputGraph = (t: Subscribed, index: number) =>
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
101 html` <div style="grid-column: 4; grid-row: ${index + 2}">${parsedGraphAtTime(t.currentOutputGraph)}</div> `;
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
102 return html`
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
103 <h1>mqtt_to_rdf</h1>
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
104
1577
6ddc5e037f15 big fixes and rewrites. emitting rdf works, not influx export yet
drewp@bigasterisk.com
parents: 799
diff changeset
105 <section>connected to ${d.server}; messages received ${d.messagesSeen}</section>
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
106
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
107 <div class="grid">
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
108 <div class="hd" style="grid-row: 1; grid-column: 1">subscribed topics</div>
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
109 ${d.subscribed.map(topicItem)}
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
110
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
111 <div class="hd" style="grid-row: 1; grid-column: 2">recent incoming messages</div>
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
112 ${d.subscribed.map(recentMessageGraphs)}
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
113
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
114 <div class="hd" style="grid-row: 1; grid-column: 3">output metrics: prom collection according to converted graph</div>
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
115 ${d.subscribed.map(outputMetrics)}
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
116
1628
24e8cd8fcdcd new grid layout in web ui
drewp@bigasterisk.com
parents: 1577
diff changeset
117 <div class="hd" style="grid-row: 1; grid-column: 4">output subgraph</div>
799
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
118 ${d.subscribed.map(outputGraph)}
e0e623c01a69 ts build is part of docker now; new web debug console
drewp@bigasterisk.com
parents: 733
diff changeset
119 </section>
733
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
120 `;
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
121 }
9ca69f2be87b more mqtt_to_rdf renames. bring in basic LitElement setup for the debug page
drewp@bigasterisk.com
parents:
diff changeset
122 }