Skip to content

Releases: postmates/cernan

skyhawk

26 Sep 22:48
@blt blt
Compare
Choose a tag to compare

This release has three major changes over 0.3.3:

  • a durable mpsc is now used in place of std's mpsc
  • QOS is now guaranteed timestamp accurate
  • Kinesis Firehose sink is introduced

In the situation of a very slow sink and a fast source cernan 0.3.3 and lower would allocate increasing amounts of memory. Obviously that is not desirable but cernan cannot drop telemetry on the floor. The solution is a durable mpsc which writes in-flight data to disk in a concurrency safe fashion. Extensive testing has been done to ensure safety of the durable mpsc.

In cernan 0.3.3 and below QOS was inaccurate as points would be put into a timeless aggregation. A snapshot thread was added to simulate time but this was less than perfect. Now we store points with their timestamps in-aggregate and are able to do QOS elision with guaranteed precision.

As a follow-on effect of this time accurate aggregation, cernan now has different behaviours with regard to two aggregations, gauges and timers. By popular demand, timers will now reset at every second boundary where previously they persisted for the lifetime of the cernan instance. Increment and decrement gauges are also now supported and a gauge will persist across second boundaries.

Finally, we introduce a Kinesis Firehose sink that will allow cernan to emit into Amazon's Firehose, forking from there to various AWS services, S3 and Elasticsearch of the most interest. At present this sink only ships LogLines but in the future when #39 lands we can choose to do more exciting things.

skyhawk

24 Sep 03:58
@blt blt
Compare
Choose a tag to compare

This commit correctly handles raw points, both in terms of
snapshotting and buffering. Previous releases treated raw
points as gauges which lost points. Once gauge behaviour was
changed in 0.3.2 the raws were moved off on their own but
were not correctly flushed. This is now corrected.

skyhawk

24 Sep 03:57
@blt blt
Compare
Choose a tag to compare

This release implements:

The first change puts cernan closer to etsy/statsd's gauge behaviour.

skyhawk

24 Sep 03:57
@blt blt
Compare
Choose a tag to compare

This release corrects the way we report counts with a non-one QOS
and incidentally includes VERY VERY experimental support for reading
from files. DO NOT USE THIS. The downside of this file-reading
support is that we will, for very fast files, buffer too much in
memory and swamp your box.

skyhawk

24 Sep 03:56
@blt blt
Compare
Choose a tag to compare

This release includes several enhancement which bring cernan's feature parity
much closer to both statsd and graphite. Additionaly, the concept of quality of
service per metric type has been added, allowing users to set the reporting
interval for gauges, counters, histograms, timers, and raw points.

Config files are now flat, and can be correctly parsed when running cernan with
the -C flag.

Support for the librato sink was removed, and aggregation was reintroduced to the
Wavefront sink since WF simply averages all points reported within sub-second
intervals.

provisio

24 Sep 03:49
@blt blt
Compare
Choose a tag to compare

This release obligates aggregation to the wavefront sink. The flag to disable aggregation remains but it no longer has any effect.

provisio

24 Sep 03:46
@blt blt
Compare
Choose a tag to compare

In my rectification of stable with master the commits that pushed backends into their own thread were not applied. The commit previous to this re-applies that work to cernan master and this commit finalizes it.

provisio

09 Aug 17:52
@blt blt
Compare
Choose a tag to compare

In this release we:

  • bind to both IPv4 / IPv6 sockets on source ports
  • re-enable CLI configuration for backward compatibility
  • enable DNS lookups for wavefront backend host
  • adapt lazy evaluation of UTC::now to strict evaluation

provisio

23 Jul 18:35
@blt blt
Compare
Choose a tag to compare

This commit ensures that if a librato write fails we merely log out the error and move on. Librato only aggregates so we'd end up skipping some points but would not lose any real data.

provisio

23 Jul 04:49
@blt blt
Compare
Choose a tag to compare

This is a somewhat ahead-of-schedule commit to stop cernan crashing in the event that the wavefront proxy TCP connection fails. Curious thing is that it's been happening more and more.

This is a small piece of the work to remove all unwraps and other panic-worthy behaviour from cernan.