static void om_kafka_write(nx_module_t *module) { nx_om_kafka_conf_t* modconf; modconf = (nx_om_kafka_conf_t*) module->config; nx_logdata_t *logdata; if (nx_module_get_status(module) != NX_MODULE_STATUS_RUNNING) { log_warn("Kafka module not running."); return; } if (module->output.buflen == 0) { if ((logdata = nx_module_logqueue_peek(module)) != NULL) { module->output.logdata = logdata; if (rd_kafka_produce(modconf->rkt, modconf->partition, RD_KAFKA_MSG_F_COPY, /* Payload and length */ logdata->raw_event->buf, (int) logdata->raw_event->len, /* Optional key and its length */ NULL, 0, /* Message opaque, provided in delivery report callback as msg_opaque. */ NULL) == -1) { log_error("Unable to produce message"); rd_kafka_poll(modconf->rk, 0); } else { //TODO: report on message log_debug("Message sent"); rd_kafka_poll(modconf->rk, 0); nx_module_logqueue_pop(module, module->output.logdata); nx_logdata_free(module->output.logdata); module->output.logdata = NULL; } } } }
static nx_logdata_t *nx_patterndb_pattern_exec(nx_module_t *module, nx_logdata_t *logdata, nx_pattern_t *pattern) { nx_expr_eval_ctx_t eval_ctx; nx_exception_t e; nx_expr_eval_ctx_init(&eval_ctx, logdata, module, NULL); try { nx_expr_statement_list_execute(&eval_ctx, pattern->exec); } catch(e) { log_exception(e); } if ( eval_ctx.logdata == NULL ) { // dropped nx_module_logqueue_pop(module, logdata); nx_logdata_free(logdata); } logdata = eval_ctx.logdata; nx_expr_eval_ctx_destroy(&eval_ctx); return ( logdata ); }
static nx_logdata_t *pm_norepeat_process(nx_module_t *module, nx_logdata_t *logdata) { nx_pm_norepeat_conf_t *modconf; ASSERT ( logdata != NULL ); modconf = (nx_pm_norepeat_conf_t *) module->config; log_debug("nx_pm_norepeat_process()"); //log_debug("processing: [%s]", logdata->data); if ( modconf->logdata == NULL ) { modconf->logdata = nx_logdata_clone(logdata); } else { if ( nx_logdata_eq(modconf, modconf->logdata, logdata) == TRUE ) { (modconf->repeatcnt)++; pm_norepeat_add_event(module); nx_module_logqueue_pop(module, logdata); nx_logdata_free(logdata); return ( NULL ); } else { pm_norepeat_log_repeat(module); ASSERT(modconf->logdata == NULL); modconf->logdata = nx_logdata_clone(logdata); modconf->repeatcnt = 0; } } return ( logdata ); }