narkisr edited this page Apr 4, 2012 · 8 revisions
Clone this wiki locally

Welcome to the Gelfino wiki

Gelfino is a tiny embeddable Gelf server written in pure Clojure, Gelfino enables real time processing of log events through streams either standalone or as a forwarding target from Graylog2.

Streams are defined using a Clojure DSL, a stream is curved out from the global message streams by defining selectors or embedded Drools fusion rules DSL.

Use cases

Some use cases:

  • Forwarding events into fnordmetric for generating graphs on specific events.
  • Detecting events like server restarts, errors etc, and firing alerts.
  • As a standalone server pipping events into a durable store.
  • Statistics gathering, using storm and/or incanter.


Gelfino is meant to be used as library within a Clojure project, we use a DSL to define our streams and actions.

  • Defining selectors is the simplest form of creating streams and applying actions on them.
  • The embedded Drools rule DSL enables complex event processing queries (cep) who's results can be binded to any callback function.


Gelfino logs a couple of statistics into statistics.log file, these are updated every 5sec and include:

  • Total messages received.
  • Total messages processed.
  • Processing rate (the difference between every 5sec).

Installation and quick start

Just add [com.narkisr/gelfino "0.3.0"] to project.clj file then follow this quick start.

Future directions

  • Integrating gelfino and storm.
  • Use core logic in order to create facts and query them.
  • Step out of the GELF spec and use snappy, see how much faster it is.
  • Write a client side GELF sender, both for benchmarking and implementing chunking correctly (some existing libraries dont).
  • Add syslog support.


License GPLv3

Copyright (C) 2012 narkisr.com