logagent-input-filter-grok
Version:
Logagent grok input filter plugin
30 lines (26 loc) • 809 B
JavaScript
var grok = require('node-grok')
var patterns = grok.loadDefaultSync()
module.exports = function (sourceName, config, data, callback) {
try {
var drop = false
if(config.matchSource) {
var pattern = patterns.createPattern(config.matchSource)
drop = checkData(pattern,data)
}
else if(config.filePath && config.idpattern)
{
var coll = new grok.GrokCollection()
coll.loadSync(config.filePath)
var patternFile = coll.getPattern(config.idpattern)
drop = checkData(patternFile,data)
}
return drop ? callback(null,null) : callback(null,data)
}catch(err){
return callback(null, data)
}
function checkData(pattern,data){
var result = pattern.parseSync(data)
return result === undefined || result === null
}
}