Documentation ¶
Index ¶
- Variables
- func NewCmdFactory(register func(id string, staticCfg LoggingConfig) (*RegisteredLoop, error), ...) (func() *exec.Cmd, error)
- func NewLogger(name string, cfg LoggingConfig) (logger.Logger, func())
- func SetCmdEnvFromConfig(cmd *exec.Cmd, cfg EnvConfig)
- type Base
- type CmdConfig
- type EnvConfig
- type LoggingConfig
- type LoopRegistry
- type PromServer
- type PromServerOpt
- type RegisteredLoop
- type RegistrarConfig
Constants ¶
This section is empty.
Variables ¶
var ErrExists = errors.New("plugin already registered")
Functions ¶
func NewCmdFactory ¶ added in v2.3.0
func NewCmdFactory(register func(id string, staticCfg LoggingConfig) (*RegisteredLoop, error), lcfg CmdConfig) (func() *exec.Cmd, error)
NewCmdFactory is helper to ensure synchronization between the loop registry and os cmd to exec the LOOP
func SetCmdEnvFromConfig ¶
SetCmdEnvFromConfig sets LOOP-specific vars in the env of the given cmd.
Types ¶
type Base ¶ added in v2.3.0
Base is a base layer for plugins to easily manage sub-[types.Service]s.
func (*Base) HealthReport ¶ added in v2.3.0
func (*Base) SubService ¶ added in v2.3.0
type CmdConfig ¶ added in v2.3.0
type CmdConfig struct { ID string // unique string used by the node to track the LOOP. typically supplied by the loop logger name Cmd string // string value of executable to exec LoggingConfig }
CmdConfig is configuration used to register the LOOP and generate an exec
type EnvConfig ¶
type EnvConfig interface { LoggingConfig PrometheusPort() int }
EnvConfig is the configuration interface between the application and the LOOP executable. The values are fully resolved and static and passed via the environment.
func GetEnvConfig ¶
GetEnvConfig deserializes LOOP-specific environment variables to an EnvConfig
func NewEnvConfig ¶
func NewEnvConfig(lc LoggingConfig, prometheusPort int) EnvConfig
type LoggingConfig ¶
type LoggingConfig interface { LogLevel() zapcore.Level JSONConsole() bool LogUnixTimestamps() bool }
LoggingConfig controls static logging related configuration that is inherited from the chainlink application to the given LOOP executable.
func NewLoggingConfig ¶
func NewLoggingConfig(level zapcore.Level, jsonConsole bool, unixTimestamps bool) LoggingConfig
type LoopRegistry ¶
type LoopRegistry struct {
// contains filtered or unexported fields
}
LoopRegistry is responsible for assigning ports to plugins that are to be used for the plugin's prometheus HTTP server
func NewLoopRegistry ¶
func NewLoopRegistry() *LoopRegistry
func (*LoopRegistry) Get ¶
func (m *LoopRegistry) Get(id string) (*RegisteredLoop, bool)
func (*LoopRegistry) List ¶
func (m *LoopRegistry) List() []*RegisteredLoop
func (*LoopRegistry) Register ¶
func (m *LoopRegistry) Register(id string, staticCfg LoggingConfig) (*RegisteredLoop, error)
Register creates a port of the plugin. It is idempotent. Duplicate calls to Register will return the same port
type PromServer ¶
type PromServer struct {
// contains filtered or unexported fields
}
func NewPromServer ¶
func NewPromServer(port int, lggr logger.Logger, opts ...PromServerOpt) *PromServer
func (*PromServer) Close ¶
func (p *PromServer) Close() error
Close shutdowns down the underlying HTTP server. See http.Server.Close for details
func (*PromServer) Port ¶
func (p *PromServer) Port() int
Port is the resolved port and is only known after Start(). returns -1 before it is resolved or if there was an error during resolution.
func (*PromServer) Start ¶
func (p *PromServer) Start() error
Start start HTTP server on specified port to handle metrics requests
type PromServerOpt ¶
type PromServerOpt func(*PromServer)
func WithHandler ¶ added in v2.3.0
func WithHandler(h http.Handler) PromServerOpt
type RegisteredLoop ¶
type RegistrarConfig ¶
type RegistrarConfig interface { LoggingConfig RegisterLOOP(loopId string, cmdName string) (func() *exec.Cmd, loop.GRPCOpts, error) }
RegistrarConfig generates contains static configuration inher
func NewRegistrarConfig ¶
func NewRegistrarConfig(lc LoggingConfig, grpcOpts loop.GRPCOpts, loopRegistrationFn func(loopId string, loopStaticCfg LoggingConfig) (*RegisteredLoop, error)) RegistrarConfig
NewRegistrarConfig creates a RegistarConfig loopRegistrationFn must act as a global registry function of LOOPs and must be idempotent. The [func() *exec.Cmd] for a LOOP should be generated by calling [RegistrarConfig.RegisterLOOP]