cernan - telemetry aggregation and shipping, last up the ladder
Cernan is a telemetry and logging aggregation server. It exposes multiple interfaces for ingestion and can emit to multiple 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.
Quickstart
To build cernan you will need to have Rust. This should be as simple as:
> curl -sSf https://static.rust-lang.org/rustup.sh | sh
Once Rust is installed, from the root of this project run:
> cargo run -- --config examples/configs/quickstart.toml
and you're good to go. Cernan will report to stdout what ports it is now listening on. If you would like to debug your service--to determine if the telemetry you intend is issued--run cernan like:
> cargo run -- -vvvv --config examples/configs/quickstart.toml
and full trace output will be reported to stdout.
Usage
The cernan server has a few command-line toggles to control its behaviour:
-C, --config <config> The config file to feed in.
-v Turn on verbose output.
The verbose flag -v
allows multiples, each addition cranking up the verbosity by one. So:
-v
-- error, warning-vv
-- error, warning, info-vvv
-- error, warning, info, debug-vvvv
-- error, warning, info, debug, trace
License
cernan is copyright © 2017-2018 Postmates, Inc and released to the public under the terms of the MIT license.