Skip to content

Commit 9a601a8

Browse files
committed
add prometheus_measure_nodeid
1 parent bda9e95 commit 9a601a8

2 files changed

Lines changed: 29 additions & 3 deletions

File tree

OpenFlowNodeRED/src/Config.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export class Config {
6363

6464
Config.amqp_message_ttl = parseInt(Config.getEnv("amqp_message_ttl", "20000"));
6565
Config.prometheus_max_node_time_seconds = parseInt(Config.getEnv("prometheus_max_node_time_seconds", "300"));
66+
Config.prometheus_measure_nodeid = Config.parseBoolean(Config.getEnv("prometheus_measure_nodeid", "false"));
6667
}
6768
public static version: string = Config.getversion();
6869
public static logpath: string = Config.getEnv("logpath", __dirname);
@@ -122,6 +123,7 @@ export class Config {
122123
public static amqp_message_ttl: number = parseInt(Config.getEnv("amqp_message_ttl", "20000"));
123124
public static prometheus_max_node_time_seconds: number = parseInt(Config.getEnv("prometheus_max_node_time_seconds", "300"));
124125

126+
public static prometheus_measure_nodeid: boolean = Config.parseBoolean(Config.getEnv("prometheus_measure_nodeid", "false"));
125127

126128

127129
public static baseurl(): string {

OpenFlowNodeRED/src/WebServer.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,19 @@ export class WebServer {
6767
client.collectDefaultMetrics({ register })
6868

6969
this._logger.debug("WebServer.configure::registerMetrics");
70+
if (Config.prometheus_measure_nodeid) {
71+
WebServer.openflow_nodered_node_count = new client.Counter({
72+
name: 'openflow_nodered_node_count',
73+
help: 'Total number of node calls',
74+
labelNames: ["nodetype", "nodeid"]
75+
})
76+
WebServer.openflow_nodered_node_duration = new client.Histogram({
77+
name: 'openflow_nodered_node_duration',
78+
help: 'Duration of each node call',
79+
labelNames: ["nodetype", "nodeid"],
80+
buckets: [0.1, 0.3, 0.5, 0.7, 1, 3, 5, 7, 10]
81+
})
82+
}
7083
if (!NoderedUtil.IsNullUndefinded(register)) register.registerMetric(WebServer.openflow_nodered_node_count);
7184
if (!NoderedUtil.IsNullUndefinded(register)) register.registerMetric(WebServer.openflow_nodered_node_duration);
7285

@@ -165,13 +178,18 @@ export class WebServer {
165178
msg.event = msg.event.substring(0, msg.event.length - 8);
166179
msg.end = WebServer.openflow_nodered_node_duration.startTimer()
167180
WebServer.openflow_nodered_node_count.labels(msg.event).inc();
181+
if (Config.prometheus_measure_nodeid) WebServer.openflow_nodered_node_count.labels(msg.event, msg.nodeid).inc();
168182
WebServer.log_messages[msg.msgid] = msg;
169183
}
170184
if (msg.event.endsWith(".send")) {
171185
msg.event = msg.event.substring(0, msg.event.length - 5);
172186
const startmessage = WebServer.log_messages[msg.msgid];
173187
if (!NoderedUtil.IsNullUndefinded(startmessage)) {
174-
startmessage.end({ nodetype: startmessage.event });
188+
if (Config.prometheus_measure_nodeid) {
189+
startmessage.end({ nodetype: startmessage.event, nodeid: msg.nodeid });
190+
} else {
191+
startmessage.end({ nodetype: startmessage.event });
192+
}
175193
delete WebServer.log_messages[msg.msgid];
176194
}
177195
}
@@ -274,11 +292,17 @@ export class WebServer {
274292

275293
if (Config.nodered_port > 0) {
276294
this._logger.debug("WebServer.configure::server.listen on port " + Config.nodered_port);
277-
server.listen(Config.nodered_port);
295+
server.listen(Config.nodered_port).on('error', function (error) {
296+
WebServer._logger.error(error);
297+
process.exit(404);
298+
});
278299
}
279300
else {
280301
this._logger.debug("WebServer.configure::server.listen on port " + Config.port);
281-
server.listen(Config.port);
302+
server.listen(Config.port).on('error', function (error) {
303+
WebServer._logger.error(error);
304+
process.exit(404);
305+
});
282306
}
283307

284308
} else {

0 commit comments

Comments
 (0)