Crate cernan [] [src]

Cernan is a telemetry and logging aggregation server. It exposes multiple interfaces for ingestion and can emit to mutiple aggregation sources while doing in-flight manipulation of data. Cernan has minimal CPU and memory requirements and is intended to service bursty telemetry without load shedding. Cernan aims to be reliable and convenient to use, both for application engineers and operations staff.

Why you might choose to use cernan:

  • You need to ingest telemetry from multiple protocols.
  • You need to multiplex telemetry over aggregation services.
  • You want to convert log lines into telemetry.
  • You want to convert telemetry into log lines.
  • You want to transform telemetry or log lines in-flight.

If you'd like to learn more, please do have a look in our wiki.



Buckets are the primary internal storage type.


Provides the CLI option parser


Library level constants


Transform or create metric::Event from a stream of metric::Event.


Tiny, unassuming HTTP Server


Collection of matrix implementations.


metric is a collection of the abstract datatypes that cernan operates over, plus related metadata. The main show here is metric::Event. Everything branches down from that.


The input protocols that cernan must parse. Not all sources are reflected here. These modules are used by the sources to do their work.


A 'sink' is a final destination for telemetry and log lines. That is, a 'sink' is that which is at the end of a source -> filter -> filter -> ... -> sink chain. The sink has no obligations with regard to the telemetry and log lines it receives, other than to receive them. Individual sinks make different choices.


Staging ground for all sources


Mio enabled threading library.


Collection of time utilities for cernan


Utility module, a grab-bag of functionality