final

package
v1.29.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2024 License: MIT Imports: 6 Imported by: 4

README

Final Aggregator Plugin

The final aggregator emits the last metric of a contiguous series. A contiguous series is defined as a series which receives updates within the time period in series_timeout. The contiguous series may be longer than the time interval defined by period.

This is useful for getting the final value for data sources that produce discrete time series such as procstat, cgroup, kubernetes etc.

When a series has not been updated within the time defined in series_timeout, the last metric is emitted with the _final appended.

Global configuration options

In addition to the plugin-specific configuration settings, plugins support additional global and plugin configuration settings. These settings are used to modify metrics, tags, and field or create aliases and configure ordering, etc. See the CONFIGURATION.md for more details.

Configuration

# Report the final metric of a series
[[aggregators.final]]
  ## The period on which to flush & clear the aggregator.
  period = "30s"
  ## If true, the original metric will be dropped by the
  ## aggregator and will not get sent to the output plugins.
  # drop_original = false

  ## The time that a series is not updated until considering it final.
  # series_timeout = "5m"

  ## Output strategy, supported values:
  ##   timeout  -- output a metric if no new input arrived for `series_timeout`;
  ##               useful for filling gaps in input data
  ##   periodic -- output the last received metric every `period`; useful to
  ##               downsample the input data
  # output_strategy = "timeout"
Output strategy

By default (output_strategy = "timeout") the plugin will only emit a metric for the period if the last received one is older than the series_timeout. This will not guarantee a regular output of a final metric e.g. if the series-timeout is a multiple of the gathering interval for an input. In this case metric sporadically arrive in the timeout phase of the period and emitting the final metric is suppressed. This can be helpful to fill in gaps in the data if no input arrived in time.

Contrary to this, output_strategy = "periodic" will always output a final metric at the end of the period irrespectively of when the last metric arrived, the series_timeout is ignored. This is helpful if you for example want to downsample input data arriving at a high rate and require a periodic output of the final metric.

Metrics

Measurement and tags are unchanged, fields are emitted with the suffix _final.

Example Output

counter,host=bar i_final=3,j_final=6 1554281635115090133
counter,host=foo i_final=3,j_final=6 1554281635112992012

Original input:

counter,host=bar i=1,j=4 1554281633101153300
counter,host=foo i=1,j=4 1554281633099323601
counter,host=bar i=2,j=5 1554281634107980073
counter,host=foo i=2,j=5 1554281634105931116
counter,host=bar i=3,j=6 1554281635115090133
counter,host=foo i=3,j=6 1554281635112992012

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Final

type Final struct {
	OutputStrategy string          `toml:"output_strategy"`
	SeriesTimeout  config.Duration `toml:"series_timeout"`
	// contains filtered or unexported fields
}

func NewFinal

func NewFinal() *Final

func (*Final) Add

func (m *Final) Add(in telegraf.Metric)

func (*Final) Init added in v1.29.0

func (m *Final) Init() error

func (*Final) Push

func (m *Final) Push(acc telegraf.Accumulator)

func (*Final) Reset

func (m *Final) Reset()

func (*Final) SampleConfig

func (*Final) SampleConfig() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL