32 lines
1.0 KiB
Go
32 lines
1.0 KiB
Go
package telegraf
|
|
|
|
// Processor is a processor plugin interface for defining new inline processors.
|
|
// these are extremely efficient and should be used over StreamingProcessor if
|
|
// you do not need asynchronous metric writes.
|
|
type Processor interface {
|
|
PluginDescriber
|
|
|
|
// Apply the filter to the given metric.
|
|
Apply(in ...Metric) []Metric
|
|
}
|
|
|
|
// StreamingProcessor is a processor that can take in a stream of messages
|
|
type StreamingProcessor interface {
|
|
PluginDescriber
|
|
|
|
// Start is the initializer for the processor
|
|
// Start is only called once per plugin instance, and never in parallel.
|
|
// Start should exit immediately after setup
|
|
Start(acc Accumulator) error
|
|
|
|
// Add is called for each metric to be processed.
|
|
Add(metric Metric, acc Accumulator)
|
|
|
|
// Stop gives you a callback to free resources.
|
|
// by the time Stop is called, the input stream will have already been closed
|
|
// and Add will not be called anymore.
|
|
// When stop returns, you should no longer be writing metrics to the
|
|
// accumulator.
|
|
Stop() error
|
|
}
|