Documentation
¶
Index ¶
- Constants
- func LoadEnvVars(cfg *koanf.Koanf)
- func LoadGlobalConfigDefaults(cfg *koanf.Koanf)
- func LoadPluginConfigDefaults(cfg *koanf.Koanf)
- type AcceptancePolicy
- type Client
- type CompatibilityPolicy
- type GlobalConfig
- type LogOutput
- type Logger
- type Metrics
- type Plugin
- type PluginConfig
- type Pool
- type Proxy
- type Server
- type Status
- type VerificationPolicy
Constants ¶
const ( // Config constants. Default = "default" EnvPrefix = "GATEWAYD_" // Logger constants. DefaultLogFileName = "gatewayd.log" DefaultLogOutput = "console" DefaultLogLevel = "info" DefaultMaxSize = 500 // megabytes DefaultMaxBackups = 5 DefaultMaxAge = 30 // days DefaultCompress = true // Plugin constants. DefaultMinPort = 50000 DefaultMaxPort = 60000 PluginPriorityStart = 1000 LoggerName = "plugin" DefaultMetricsMergerPeriod = 5 * time.Second // Client constants. DefaultChunkSize = 4096 DefaultReceiveDeadline = 0 // 0 means no deadline (timeout) DefaultSendDeadline = 0 DefaultTCPKeepAlivePeriod = 30 * time.Second // Pool constants. EmptyPoolCapacity = 0 DefaultPoolSize = 10 MinimumPoolSize = 2 DefaultHealthCheckPeriod = 60 * time.Second // This must match PostgreSQL authentication timeout. // Server constants. DefaultListenNetwork = "tcp" DefaultListenAddress = "0.0.0.0:15432" DefaultTickInterval = 5 * time.Second DefaultBufferSize = 1 << 24 // 16777216 bytes DefaultTCPKeepAlive = 3 * time.Second DefaultLoadBalancer = "roundrobin" // Utility constants. DefaultSeed = 1000 ChecksumBufferSize = 65536 // Metrics constants. DefaultMetricsAddress = "127.0.0.1:2112" DefaultMetricsPath = "/metrics" )
Variables ¶
This section is empty.
Functions ¶
func LoadEnvVars ¶ added in v0.2.2
LoadEnvVars loads the environment variables into the configuration with the given prefix, "GATEWAYD_".
func LoadGlobalConfigDefaults ¶
LoadDefaultConfig loads the default configuration before loading the config file.
func LoadPluginConfigDefaults ¶
LoadPluginConfigDefaults loads the default plugin configuration before loading the plugin config file.
Types ¶
type AcceptancePolicy ¶ added in v0.2.4
type AcceptancePolicy uint
const ( Accept AcceptancePolicy = iota // Accept all custom hooks Reject // Reject all custom hooks )
AcceptancePolicy is the acceptance policy for custom hooks.
type Client ¶
type Client struct {
Network string `koanf:"network"`
Address string `koanf:"address"`
TCPKeepAlive bool `koanf:"tcpKeepAlive"`
TCPKeepAlivePeriod time.Duration `koanf:"tcpKeepAlivePeriod"`
ReceiveBufferSize int `koanf:"receiveBufferSize"`
ReceiveChunkSize int `koanf:"receiveChunkSize"`
ReceiveDeadline time.Duration `koanf:"receiveDeadline"`
SendDeadline time.Duration `koanf:"sendDeadline"`
}
type CompatibilityPolicy ¶ added in v0.2.4
type CompatibilityPolicy uint
const ( Strict CompatibilityPolicy = iota // Expect all required plugins to be loaded and present Loose // Load the plugin, even if the requirements are not met )
CompatibilityPolicy is the compatibility policy for plugins.
type GlobalConfig ¶
type Logger ¶
type Logger struct {
Output string `koanf:"output"`
TimeFormat string `koanf:"timeFormat"`
Level string `koanf:"level"`
NoColor bool `koanf:"noColor"`
StartupMsg bool `koanf:"startupMsg"`
FileName string `koanf:"fileName"`
MaxSize int `koanf:"maxSize"`
MaxBackups int `koanf:"maxBackups"`
MaxAge int `koanf:"maxAge"`
Compress bool `koanf:"compress"`
}
func (Logger) GetTimeFormat ¶
GetTimeFormat returns the logger time format from config file.
type PluginConfig ¶
type PluginConfig struct {
VerificationPolicy string `koanf:"verificationPolicy"`
CompatibilityPolicy string `koanf:"compatibilityPolicy"`
AcceptancePolicy string `koanf:"acceptancePolicy"`
MetricsMergerPeriod time.Duration `koanf:"metricsMergerPeriod"`
Plugins []Plugin `koanf:"plugins"`
}
func (PluginConfig) GetAcceptancePolicy ¶ added in v0.2.4
func (p PluginConfig) GetAcceptancePolicy() AcceptancePolicy
GetAcceptancePolicy returns the acceptance policy from plugin config file.
func (PluginConfig) GetPluginCompatibilityPolicy ¶ added in v0.2.4
func (p PluginConfig) GetPluginCompatibilityPolicy() CompatibilityPolicy
GetPluginCompatibilityPolicy returns the plugin compatibility policy from plugin config file.
func (PluginConfig) GetVerificationPolicy ¶
func (p PluginConfig) GetVerificationPolicy() VerificationPolicy
GetVerificationPolicy returns the hook verification policy from plugin config file.
type Server ¶
type Server struct {
EnableTicker bool `koanf:"enableTicker"`
MultiCore bool `koanf:"multiCore"`
LockOSThread bool `koanf:"lockOSThread"`
ReuseAddress bool `koanf:"reuseAddress"`
ReusePort bool `koanf:"reusePort"`
TCPNoDelay bool `koanf:"tcpNoDelay"`
ReadBufferCap int `koanf:"readBufferCap"`
WriteBufferCap int `koanf:"writeBufferCap"`
SocketRecvBuffer int `koanf:"socketRecvBuffer"`
SocketSendBuffer int `koanf:"socketSendBuffer"`
SoftLimit uint64 `koanf:"softLimit"`
HardLimit uint64 `koanf:"hardLimit"`
TCPKeepAlive time.Duration `koanf:"tcpKeepAlive"`
TickInterval time.Duration `koanf:"tickInterval"`
Network string `koanf:"network"`
Address string `koanf:"address"`
LoadBalancer string `koanf:"loadBalancer"`
}
func (Server) GetLoadBalancer ¶
func (s Server) GetLoadBalancer() gnet.LoadBalancing
GetLoadBalancer returns the load balancing algorithm to use.
func (Server) GetTCPNoDelay ¶
func (s Server) GetTCPNoDelay() gnet.TCPSocketOpt
GetTCPNoDelay returns the TCP no delay option from config file.
type VerificationPolicy ¶ added in v0.2.4
type VerificationPolicy uint
const ( // Non-strict (permissive) mode. PassDown VerificationPolicy = iota // Pass down the extra keys/values in result to the next plugins // Strict mode. Ignore // Ignore errors and continue Abort // Abort on first error and return results Remove // Remove the hook from the list on error and continue )
Policy is the policy for hook verification.