Skip to content

SinksWavefront

Brian L. Troutwine edited this page Nov 30, 2017 · 2 revisions

The wavefront sink emits to a wavefront proxy, which eventually aggregates into the Wavefront product.

Configuration

The wavefront sink configuration options are as follows:

  • port :: the network port toward which to push data [default: 2878]
  • host :: the host (IP or DNS) toward which to push data [default: 127.0.0.1]
  • bin_width :: determines how many seconds wide an aggregation bin is [default: 1]
  • age_threshold :: threshold in seconds for telemetry shedding [default: None] (SINCE 0.8.2)
  • percentiles :: a map from key-name to a percentile (see percentiles)
  • padding :: a map from aggregation kind to boolean. (see padding)

Percentiles

The Summarize aggregation type -- see Data Model for more details -- can compute arbitrary percentile queries over its stored data. The wavefront sink percentiles configuration option is a table from name to percentile query. For instance:

[sinks.wavefront.percentile]
min = 0.0
max = 1.0
50 = 0.50
75 = 0.75

This wavefront sink will send all Summarize aggregations with four queries: 'min', 'max', '50' and '75'. If the Summarize metric is named 'cernan.example_summary' then four metrics will appear in wavefront:

  • cernan.example_summary.min
  • cernan.example_summary.max
  • cernan.example_summary.50
  • cernan.example_summary.75

The default percentiles shipped are equivalent to this configuration:

[sinks.wavefront.percentiles]
min = 0.0
max = 1.0
2 = 0.02
9 = 0.09
25 = 0.25
50 = 0.50
75 = 0.75
90 = 0.90
91 = 0.91
95 = 0.95
98 = 0.98
99 = 0.99
999 = 0.999

Padding

(Since 0.7.2)

The Wavefront sink has the ability to 'pads' time series with zeros. What this means is that in a time series with two points separated by more than one bin width cernan will insert one or two but no more zeros in the 'gap'. This a hack of the Wavefront aggregation system. The idea is that wavefront default() is slow in some cases -- as of this writing -- and Wavefront's provided interpolation is sometimes not desirable. By padding we force Wavefront's interpolation to view a gap as 'zeroed'. Pads are set by aggregation method.

The default padding is equivalent to this configuration:

[sinks.wavefront.padding]
set = false
sum = false
histogram = false
summarize = false

The full discussion and justification may be found here.

Example

[sinks]
  [sinks.wavefront]
  bin_width = 10
  host = "wavefront-proxy.example.org"
  port = 2878

  [sinks.wavefront.padding]
  set = true
  sum = false
  histogram = true
  summarize = false

  [sinks.wavefront.percentiles]
  min = 0.0
  max = 1.0
  2 = 0.02
  9 = 0.09
  25 = 0.25
  50 = 0.50
  75 = 0.75
  90 = 0.90
  91 = 0.91
  95 = 0.95
  98 = 0.98
  99 = 0.99
  999 = 0.999

This enables the wavefront sink, pointing cernan to a proxy running at "wavefront-proxy.example.org" which listens on port 2878. The wavefront sink will aggregate into bins ten seconds wide and ship thirteen distinct points for every Summary telemetry. Set and Histogram telemetry are padded.