Version: v2.2.0+incompatible Latest Latest

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

Go to latest
Published: Aug 23, 2019 License: Apache-2.0 Imports: 2 Imported by: 469



Package infra provides Plugin interface and related utilities.



This section is empty.


This section is empty.


This section is empty.


type Plugin

type Plugin interface {
	// Init is called in the agent`s startup phase.
	Init() error
	// Close is called in the agent`s cleanup phase.
	Close() error
	// String returns unique name of the plugin.
	String() string

Plugin interface defines plugin's basic life-cycle methods.

type PluginDeps

type PluginDeps struct {
	Log logging.PluginLogger
	Cfg config.PluginConfig

PluginDeps defines common dependencies for use with plugins. It can easily be embedded in Deps for Plugin:

type Deps struct {
    // other dependencies

func (*PluginDeps) Close

func (d *PluginDeps) Close() error

Close is an empty implementation used to avoid need for implementing it by plugins that do not need it.

func (*PluginDeps) Setup

func (d *PluginDeps) Setup()

Setup sets up default instances for plugin deps.

func (*PluginDeps) SetupLog

func (d *PluginDeps) SetupLog()

SetupLog sets up default instance for plugin log dep.

type PluginName

type PluginName string

PluginName is a part of the plugin's API. It's used by embedding it into Plugin to provide unique name of the plugin.

func (*PluginName) SetName

func (name *PluginName) SetName(n string)

SetName sets plugin name.

func (PluginName) String

func (name PluginName) String() string

String returns the PluginName.

type PostInit

type PostInit interface {
	// AfterInit is called once Init() of all plugins have returned without error.
	AfterInit() error

PostInit interface defines an optional method for plugins with additional initialization.

Source Files

Jump to

Keyboard shortcuts

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