node-red-contrib-grok
Version:
Grok node for Node-red
24 lines (21 loc) • 761 B
JavaScript
var grok = require('node-grok').loadDefaultSync();
var dotprop = require("dot-prop")
module.exports = function(RED) {
//----------------------------------------------------------------------------------------------------
function GrokNode(config) {
RED.nodes.createNode(this, config);
var node = this;
this.field = config.field || "payload";
this.regex = config.regex || "";
this.pattern = grok.createPattern(this.regex);
// cleanup on close
this.on('close',function() {
});
this.on('input', function (message) {
let f = dotprop.get(message, this.field)
message.grok = this.pattern.parseSync(f);
node.send(message);
}); // END On Input
}; //End of Node
RED.nodes.registerType('grok', GrokNode);
}