64 lines
2.5 KiB
Go
64 lines
2.5 KiB
Go
package telegraf
|
|
|
|
// DeprecationInfo contains information for marking a plugin deprecated.
|
|
type DeprecationInfo struct {
|
|
// Since specifies the version since when the plugin is deprecated
|
|
Since string
|
|
// RemovalIn optionally specifies the version when the plugin is scheduled for removal
|
|
RemovalIn string
|
|
// Notice for the user on suggested replacements etc.
|
|
Notice string
|
|
}
|
|
|
|
// Initializer is an interface that all plugin types: Inputs, Outputs,
|
|
// Processors, and Aggregators can optionally implement to initialize the
|
|
// plugin.
|
|
type Initializer interface {
|
|
// Init performs one time setup of the plugin and returns an error if the
|
|
// configuration is invalid.
|
|
Init() error
|
|
}
|
|
|
|
// PluginDescriber contains the functions all plugins must implement to describe
|
|
// themselves to Telegraf. Note that all plugins may define a logger that is
|
|
// not part of the interface, but will receive an injected logger if it's set.
|
|
// eg: Log telegraf.Logger `toml:"-"`
|
|
type PluginDescriber interface {
|
|
// SampleConfig returns the default configuration of the Plugin
|
|
SampleConfig() string
|
|
}
|
|
|
|
// PluginWithID allows a plugin to overwrite its identifier of the plugin
|
|
// instance by a user specified value. By default the ID is generated
|
|
// using the plugin's configuration.
|
|
type PluginWithID interface {
|
|
// ID returns the ID of the plugin instance. This function has to be
|
|
// callable directly after the plugin's Init() function if there is any!
|
|
ID() string
|
|
}
|
|
|
|
// StatefulPlugin contains the functions that plugins must implement to
|
|
// persist an internal state across Telegraf runs.
|
|
// Note that plugins may define a persister that is not part of the
|
|
// interface, but can be used to trigger state updates by the plugin if
|
|
// it exists in the plugin struct,
|
|
// eg: Persister telegraf.StatePersister `toml:"-"`
|
|
type StatefulPlugin interface {
|
|
// GetState returns the current state of the plugin to persist
|
|
// The returned state can be of any time as long as it can be
|
|
// serialized to JSON. The best choice is a structure defined in
|
|
// your plugin.
|
|
// Note: This function has to be callable directly after the
|
|
// plugin's Init() function if there is any!
|
|
GetState() interface{}
|
|
|
|
// SetState is called by the Persister once after loading and
|
|
// initialization (after Init() function).
|
|
SetState(state interface{}) error
|
|
}
|
|
|
|
// ProbePlugin is an interface that all input/output plugins need to
|
|
// implement in order to support the `probe` value of `startup_error_behavior`
|
|
type ProbePlugin interface {
|
|
Probe() error
|
|
}
|