Documentation ¶
Index ¶
- Constants
- func LoadConfigMap(path string) (map[interface{}]interface{}, error)
- func LoadIdentityConfigFromMap(cfgmap map[interface{}]interface{}) (*identity.Config, error)
- func SetConfigMapFlags(cfgmap map[interface{}]interface{}, flags map[string]*pflag.Flag)
- type Config
- func (config *Config) Configure(sub config.Subconfig) error
- func (config *Config) CreateBackup() (string, error)
- func (config *Config) CurrentCtrlAddress() string
- func (config *Config) Save() error
- func (config *Config) SetFlags(flags map[string]*pflag.Flag)
- func (config *Config) UpdateControllerEndpoint(address string) error
- type Router
- func (self *Router) DefaultRequestTimeout() time.Duration
- func (self *Router) GetChannel(controllerId string) channel.Channel
- func (self *Router) GetCloseNotify() <-chan struct{}
- func (self *Router) GetConfig() *Config
- func (self *Router) GetCtrlRateLimiter() command.AdaptiveRateLimitTracker
- func (self *Router) GetDialerCfg() map[string]xgress.OptionsData
- func (self *Router) GetHeartbeatOptions() env.HeartbeatOptions
- func (self *Router) GetLinkDialerPool() goroutines.Pool
- func (self *Router) GetMetricsRegistry() metrics.UsageRegistry
- func (self *Router) GetNetworkControllers() env.NetworkControllers
- func (self *Router) GetRateLimiterPool() goroutines.Pool
- func (self *Router) GetRouterId() *identity.TokenId
- func (self *Router) GetTraceHandler() *channel.TraceHandler
- func (self *Router) GetVersionInfo() versions.VersionProvider
- func (self *Router) GetXlinkDialers() []xlink.Dialer
- func (self *Router) GetXlinkRegistry() xlink.Registry
- func (self *Router) GetXrctrls() []env.Xrctrl
- func (self *Router) HandleAgentAsyncOp(conn net.Conn) error
- func (self *Router) HandleAgentOp(conn net.Conn) error
- func (self *Router) RegisterAgentBindHandler(bindHandler channel.BindHandler)
- func (self *Router) RegisterAgentOp(opId byte, f func(c *bufio.ReadWriter) error)
- func (self *Router) RegisterDefaultAgentOps(debugEnabled bool)
- func (self *Router) RegisterXWebHandlerFactory(x xweb.ApiHandlerFactory) error
- func (self *Router) RegisterXrctrl(x env.Xrctrl) error
- func (self *Router) RegisterXweb(x xweb.Instance) error
- func (self *Router) RenderJsonConfig() (string, error)
- func (self *Router) Run() error
- func (self *Router) Shutdown() error
- func (self *Router) Start() error
- func (self *Router) UpdateCtrlEndpoints(endpoints []string)
- type RouterMonitor
- type UpdatableAddress
- func (c *UpdatableAddress) Dial(name string, i *identity.TokenId, timeout time.Duration, ...) (transport.Conn, error)
- func (c *UpdatableAddress) DialWithLocalBinding(name string, binding string, i *identity.TokenId, timeout time.Duration, ...) (transport.Conn, error)
- func (c *UpdatableAddress) Listen(name string, i *identity.TokenId, acceptF func(transport.Conn), ...) (io.Closer, error)
- func (c *UpdatableAddress) MarshalYAML() (interface{}, error)
- func (c *UpdatableAddress) MustListen(name string, i *identity.TokenId, acceptF func(transport.Conn), ...) io.Closer
- func (c *UpdatableAddress) Store(address transport.Address)
- func (c *UpdatableAddress) String() string
- func (c *UpdatableAddress) Type() string
- func (c *UpdatableAddress) UnmarshalYAML(value *yaml3.Node) error
Constants ¶
const ( // FlagsCfgMapKey is used as a key in the source configuration map to pass flags from // higher levels (i.e. CLI arguments) down through the stack w/o colliding w/ file // based configuration values FlagsCfgMapKey = "@flags" // PathMapKey is used to store a loaded configuration file's source path PathMapKey = "@file" // CtrlMapKey is the string key for the ctrl section CtrlMapKey = "ctrl" // CtrlEndpointMapKey is the string key for the ctrl.endpoint section CtrlEndpointMapKey = "endpoint" // CtrlEndpointsMapKey is the string key for the ctrl.endpoints section CtrlEndpointsMapKey = "endpoints" // CtrlEndpointBindMapKey is the string key for the ctrl.bind section CtrlEndpointBindMapKey = "bind" // CtrlRateLimiterMinSizeValue is the minimum size that can be configured for the control channel rate limiter // window range CtrlRateLimiterMinSizeValue = 5 // CtrlRateLimiterMaxSizeValue is the maximum size that can be configured for the control channel rate limiter // window range CtrlRateLimiterMaxSizeValue = 1000 // CtrlRateLimiterMetricOutstandingCount is the name of the metric tracking how many tasks are in process CtrlRateLimiterMetricOutstandingCount = "ctrl_limiter.in_process" // CtrlRateLimiterMetricCurrentWindowSize is the name of the metric tracking the current window size CtrlRateLimiterMetricCurrentWindowSize = "ctrl_limiter.window_size" // CtrlRateLimiterMetricWorkTimer is the name of the metric tracking how long successful tasks are taking to complete CtrlRateLimiterMetricWorkTimer = "ctrl_limiter.work_timer" CtrlHaMapKey = "ha" )
const ( TimeFormatYear = "2006" TimeFormatMonth = "01" TimeFormatDay = "02" TimeFormatHour = "15" TimeFormatMinute = "04" TimeFormatSeconds = "05" TimestampFormat = TimeFormatYear + TimeFormatMonth + TimeFormatDay + TimeFormatHour + TimeFormatMinute + TimeFormatSeconds DefaultLinkHeartbeatSendInterval = 10 * time.Second DefaultLinkUnresponsiveTimeout = time.Minute )
const (
AgentAppId byte = 2
)
Variables ¶
This section is empty.
Functions ¶
func LoadConfigMap ¶
func SetConfigMapFlags ¶
Types ¶
type Config ¶
type Config struct { Id *identity.TokenId EnableDebugOps bool Forwarder *forwarder.Options Trace struct { Handler *channel.TraceHandler } Profile struct { Memory struct { Path string Interval time.Duration } CPU struct { Path string } } Ctrl struct { InitialEndpoints []*UpdatableAddress LocalBinding string DefaultRequestTimeout time.Duration Options *channel.Options DataDir string Heartbeats env.HeartbeatOptions StartupTimeout time.Duration RateLimit command.AdaptiveRateLimiterConfig } Link struct { Listeners []map[interface{}]interface{} Dialers []map[interface{}]interface{} Heartbeats channel.HeartbeatOptions } Dialers map[string]xgress.OptionsData Listeners []listenerBinding Transport map[interface{}]interface{} Metrics struct { ReportInterval time.Duration IntervalAgeThreshold time.Duration MessageQueueSize int } HealthChecks struct { CtrlPingCheck struct { Interval time.Duration Timeout time.Duration InitialDelay time.Duration } LinkCheck struct { MinLinks int Interval time.Duration InitialDelay time.Duration } } Ha struct { Enabled bool } Proxy *transport.ProxyConfiguration Plugins []string // contains filtered or unexported fields }
func LoadConfig ¶
func (*Config) CreateBackup ¶
CreateBackup will attempt to use the current path value to create a backup of the file on disk. The resulting file path is returned.
func (*Config) CurrentCtrlAddress ¶
func (*Config) Save ¶
Save attempts to take the current config's src attribute and Save it as yaml to the path value.
func (*Config) UpdateControllerEndpoint ¶
UpdateControllerEndpoint updates the runtime configuration address of the controller and the internal map configuration.
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
func (*Router) DefaultRequestTimeout ¶
func (*Router) GetChannel ¶
func (*Router) GetCloseNotify ¶
func (self *Router) GetCloseNotify() <-chan struct{}
func (*Router) GetCtrlRateLimiter ¶ added in v0.33.0
func (self *Router) GetCtrlRateLimiter() command.AdaptiveRateLimitTracker
func (*Router) GetDialerCfg ¶
func (self *Router) GetDialerCfg() map[string]xgress.OptionsData
func (*Router) GetHeartbeatOptions ¶
func (self *Router) GetHeartbeatOptions() env.HeartbeatOptions
func (*Router) GetLinkDialerPool ¶
func (self *Router) GetLinkDialerPool() goroutines.Pool
func (*Router) GetMetricsRegistry ¶
func (self *Router) GetMetricsRegistry() metrics.UsageRegistry
func (*Router) GetNetworkControllers ¶
func (self *Router) GetNetworkControllers() env.NetworkControllers
func (*Router) GetRateLimiterPool ¶
func (self *Router) GetRateLimiterPool() goroutines.Pool
func (*Router) GetRouterId ¶
func (*Router) GetTraceHandler ¶
func (self *Router) GetTraceHandler() *channel.TraceHandler
func (*Router) GetVersionInfo ¶
func (self *Router) GetVersionInfo() versions.VersionProvider
func (*Router) GetXlinkDialers ¶
func (*Router) GetXlinkRegistry ¶
func (*Router) GetXrctrls ¶
func (*Router) RegisterAgentBindHandler ¶
func (self *Router) RegisterAgentBindHandler(bindHandler channel.BindHandler)
func (*Router) RegisterAgentOp ¶
func (self *Router) RegisterAgentOp(opId byte, f func(c *bufio.ReadWriter) error)
func (*Router) RegisterDefaultAgentOps ¶
func (*Router) RegisterXWebHandlerFactory ¶
func (*Router) RegisterXweb ¶
func (*Router) RenderJsonConfig ¶
func (*Router) UpdateCtrlEndpoints ¶
type RouterMonitor ¶
type RouterMonitor interface {
Monitor()
}
type UpdatableAddress ¶
type UpdatableAddress struct {
// contains filtered or unexported fields
}
UpdatableAddress allows a single address to be passed to multiple channel implementations and be centrally updated in a thread safe manner.
func NewUpdatableAddress ¶
func NewUpdatableAddress(address transport.Address) *UpdatableAddress
NewUpdatableAddress create a new *UpdatableAddress which implements transport.Address and allow thread safe updating of the internal address
func (*UpdatableAddress) Dial ¶
func (c *UpdatableAddress) Dial(name string, i *identity.TokenId, timeout time.Duration, tcfg transport.Configuration) (transport.Conn, error)
Dial implements transport.Address.Dial
func (*UpdatableAddress) DialWithLocalBinding ¶
func (*UpdatableAddress) Listen ¶
func (c *UpdatableAddress) Listen(name string, i *identity.TokenId, acceptF func(transport.Conn), tcfg transport.Configuration) (io.Closer, error)
Listen implements transport.Address.Listen
func (*UpdatableAddress) MarshalYAML ¶
func (c *UpdatableAddress) MarshalYAML() (interface{}, error)
MarshalYAML handles serialization for the YAML format
func (*UpdatableAddress) MustListen ¶
func (c *UpdatableAddress) MustListen(name string, i *identity.TokenId, acceptF func(transport.Conn), tcfg transport.Configuration) io.Closer
MustListen implements transport.Address.MustListen
func (*UpdatableAddress) Store ¶
func (c *UpdatableAddress) Store(address transport.Address)
Store updates the address currently used by this configuration instance
func (*UpdatableAddress) String ¶
func (c *UpdatableAddress) String() string
String implements transport.Address.String
func (*UpdatableAddress) Type ¶
func (c *UpdatableAddress) Type() string
Type implements transport.Address.Type
func (*UpdatableAddress) UnmarshalYAML ¶
func (c *UpdatableAddress) UnmarshalYAML(value *yaml3.Node) error
UnmarshalYAML handled deserialization for the YAML format