The Mirabelle configuration is defined in EDN. Here is an example configuration file:
{;; The Mirabelle TCP server. It's the server responsible for receiving events
;; using the Riemann format (protobuf).
;; the :key, :cert, and :cacert optional parameters can be set to enable TLS (the
;; parameters are path to the cert files)
;; The :event-executor-size optional parameter can be used to control the number
;; of threads for the TCP server (default to number of cores).
;; the :native? option can be used to enable epoll (on Linux) or kqueue (on mac or
;; freebsd), which should increase performances.
:tcp {:host "0.0.0.0"
:port 5555
:native? true}
;; The Mirabelle HTTP Server.
;; The :key, :cert, and :cacert optional parameters can be set to enable TLS (the
;; parameters are path to the cert files)
;; :basic-auth can be set and should in this case contain :username "user" and
;; :password #secret "password"
:http {:host "0.0.0.0"
:port 5558}
;; The "real time" streams configuration.
;; The directories parameter is a list of directories containing streams definitions
;; The actions parameter can be used to define custom actions which can then
;; be used inside streams.
:stream {:directories ["/usr/lib/mirabelle/streams/"]
:actions {}}
;; outputs configurations.
;; The directories parameter is a list of directories containing I/O definitions
:outputs {:write-file {:config {:path "/tmp/file"}
:type :file}
;; Logging configuration (https://github.com/pyr/unilog)
:logging {:level "info"
:console {:encoder :json}}
;; Directories containing test files
:test {:directories ["dev/resources/examples/streams/tests/"]}}