Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Handshake = plugin.HandshakeConfig{
ProtocolVersion: 1,
MagicCookieKey: "AETHER_EXPORTER_PLUGIN",
MagicCookieValue: "886c2a46-18b4-4090-8e13-0461439bb0d0",
}
Handshake is a common handshake that is shared by plugin and host. this is to make sure that versioning of plugins is equal and is not for security
var SourceHandshake = plugin.HandshakeConfig{
ProtocolVersion: 1,
MagicCookieKey: "AETHER_SOURCE_PLUGIN",
MagicCookieValue: "9cf50efe-f360-4c46-997f-e1ce7317adaf",
}
SourceHandshake is a common handshake that is shared by plugin and host. this is to make sure that versioning of plugins is equal and is not for security
Functions ¶
This section is empty.
Types ¶
type ExportPluginSystem ¶
type ExportPluginSystem struct { Dir string Plugins []*RegisteredPlugin }
ExportPluginSystem is used to manage all third party exporters
type ExporterPlugin ¶
type ExporterPlugin struct { // GRPCPlugin must still implement the Plugin interface plugin.Plugin // Concrete implementation, written in Go. This is only used for plugins // that are written in Go. Impl Exporter }
This is the implementation of plugin.GRPCPlugin so we can serve/consume this.
func (*ExporterPlugin) GRPCClient ¶
func (p *ExporterPlugin) GRPCClient( ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn, ) (interface{}, error)
GRPCClient returns a gRPC client
func (*ExporterPlugin) GRPCServer ¶
func (p *ExporterPlugin) GRPCServer( broker *plugin.GRPCBroker, s *grpc.Server, ) error
GRPCServer is used to setup a GRPC server
type GRPCClient ¶
type GRPCClient struct {
// contains filtered or unexported fields
}
GRPCClient is an implementation of Exporter that can communicate over RPC
type GRPCServer ¶
type GRPCServer struct {
Impl Exporter
}
GRPCServer is the gRPC server that GRPCClient talks to.
func (*GRPCServer) Send ¶
func (m *GRPCServer) Send( ctx context.Context, req *proto.InstanceRequest, ) (*proto.Empty, error)
Send is used to receive the RPC requests
type PluginHandler ¶
type PluginHandler struct {
// contains filtered or unexported fields
}
func NewHandler ¶
func NewHandler(ctx context.Context, e *ExportPluginSystem) *PluginHandler
func (*PluginHandler) SendToExporters ¶
func (p *PluginHandler) SendToExporters(ctx context.Context, e *bus.Event)
func (*PluginHandler) Stop ¶
func (p *PluginHandler) Stop(ctx context.Context)
type RegisteredPlugin ¶
RegisteredPlugin is all the information needed to manage a registered plugin
type RegisteredSourcePlugin ¶
RegisteredSourcePlugin is all the information needed to manage a registered plugin
type SourceGRPCClient ¶
type SourceGRPCClient struct {
// contains filtered or unexported fields
}
SourceGRPCClient is an implemntation of v1.Source that can communicate over RPC
type SourceGRPCServer ¶
SourceGRPCServer is an GRPC implementation over which SourceGRPClient communicates
func (*SourceGRPCServer) Fetch ¶
func (s *SourceGRPCServer) Fetch( ctx context.Context, p *proto.Empty, ) (*proto.ListInstanceResponse, error)
Fetch is used to fulfill the GRPC Interface
type SourcePlugin ¶
type SourcePlugin struct { // GRPCPlugin must still implement the Plugin interface plugin.Plugin // Concrete implementation, written in Go. This is only used for plugins // that are written in Go. Impl v1.Source }
SourcePlugin is the implementation of plugin.GRPCPlugin so we can cionsume this plugin
func (*SourcePlugin) GRPCClient ¶
func (s *SourcePlugin) GRPCClient( ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn, ) (interface{}, error)
GRPCClient returns a gRPC client
func (*SourcePlugin) GRPCServer ¶
func (s *SourcePlugin) GRPCServer( broker *plugin.GRPCBroker, srv *grpc.Server, ) error
GRPCServer is used to setup a GRPC server
type SourcePluginSystem ¶
type SourcePluginSystem struct { Dir string Plugins []*RegisteredSourcePlugin }
SourcePluginSystem is used to manage all third party source
Directories ¶
Path | Synopsis |
---|---|
example
|
|
exporter
* This is a skeleton plugin that you can use to build an Aether ExporterPlugin * it is minimal with no functionality but adheres to the Aether plugin * interface
|
* This is a skeleton plugin that you can use to build an Aether ExporterPlugin * it is minimal with no functionality but adheres to the Aether plugin * interface |
source
* This is a skeleton plugin that you can use to build an Aether SourcePlugin * it is minimal with no functionality but adheres to the Aether plugin * interface
|
* This is a skeleton plugin that you can use to build an Aether SourcePlugin * it is minimal with no functionality but adheres to the Aether plugin * interface |