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.

Clone this wiki locally