Documentation
¶
Index ¶
- Variables
- func ValidateConfig(mainOpts Options) error
- func ValidateMapping(mainOpts Options) error
- func Watch() error
- type AccessLogOptions
- type ChangeFunc
- type ErrInvalidConfig
- type EscapeType
- type FileProviderOptions
- type LoggingOtions
- type MetricsOptions
- type MiddlwareOptions
- type OTLPOptions
- type Options
- type PrometheusOptions
- type Protocol
- type ProviderOtions
- type RedisOptions
- type ResolverOptions
- type RouteOptions
- type ServerOptions
- type ServerTimeoutOptions
- type ServiceOptions
- type ServiceTimeoutOptions
- type TLSOptions
- type TargetOptions
- type TracingOptions
- type UpstreamOptions
- type UpstreamStrategy
Constants ¶
This section is empty.
Variables ¶
View Source
var (
OnChanged provider.ChangeFunc
)
Functions ¶
func ValidateConfig ¶
ValidateConfig checks if the config's values are valid, but does not check if the config's value mapping is valid
func ValidateMapping ¶
ValidateMapping checks if the config's value mapping is valid. For example, the server in route must be finded in the servers
Types ¶
type AccessLogOptions ¶
type AccessLogOptions struct {
Enabled bool `yaml:"enabled" json:"enabled"`
BufferSize int `yaml:"buffer_size" json:"buffer_size"`
Output string `yaml:"output" json:"output"`
Template string `yaml:"template" json:"template"`
TimeFormat string `yaml:"time_format" json:"time_format"`
Escape EscapeType `yaml:"escape" json:"escape"`
Flush time.Duration `yaml:"flush" json:"flush"`
}
type ChangeFunc ¶
type ChangeFunc func() error
type ErrInvalidConfig ¶
func (ErrInvalidConfig) Error ¶
func (e ErrInvalidConfig) Error() string
type EscapeType ¶
type EscapeType string
const ( NoneEscape EscapeType = "none" DefaultEscape EscapeType = "default" JSONEscape EscapeType = "json" )
type FileProviderOptions ¶
type LoggingOtions ¶
type MetricsOptions ¶
type MetricsOptions struct {
Prometheus PrometheusOptions `yaml:"prometheus" json:"prometheus"`
}
type MiddlwareOptions ¶
type OTLPOptions ¶
type OTLPOptions struct {
Enabled bool `yaml:"enabled" json:"enabled"`
Propagators []string `yaml:"propagators" json:"propagators"`
Endpoint string `yaml:"endpoint" json:"endpoint"`
Insecure bool `yaml:"insecure" json:"insecure"`
SamplingRate float64 `yaml:"sampling_rate" json:"sampling_rate"`
BatchSize int64 `yaml:"batch_size" json:"batch_size"`
QueueSize int64 `yaml:"queue_size" json:"queue_size"`
Flush time.Duration `yaml:"flush" json:"flush"`
Timeout time.Duration `yaml:"timeout" json:"timeout"`
}
type Options ¶
type Options struct {
IsDaemon bool `yaml:"-" json:"-"`
Version string `yaml:"version" json:"version"`
PIDFile string `yaml:"pid_file" json:"pid_file"`
UpgradeSock string `yaml:"upgrade_sock" json:"upgrade_sock"`
Gopool bool `yaml:"gopool" json:"gopool"`
Resolver ResolverOptions `yaml:"resolver" json:"resolver"`
NumLoops int `yaml:"num_loops" json:"num_loops"`
Watch *bool `yaml:"watch" json:"watch"`
User string `yaml:"user" json:"user"`
Group string `yaml:"group" json:"group"`
Providers ProviderOtions `yaml:"providers" json:"providers"`
TimerResolution time.Duration `yaml:"timer_resolution" json:"timer_resolution"`
Logging LoggingOtions `yaml:"logging" json:"logging"`
Metrics MetricsOptions `yaml:"metrics" json:"metrics"`
Tracing TracingOptions `yaml:"tracing" json:"tracing"`
AccessLogs map[string]AccessLogOptions `yaml:"access_logs" json:"access_logs"`
Servers map[string]ServerOptions `yaml:"servers" json:"servers"`
Routes map[string]RouteOptions `yaml:"routes" json:"routes"`
Middlewares map[string]MiddlwareOptions `yaml:"middlewares" json:"middlewares"`
Services map[string]ServiceOptions `yaml:"services" json:"services"`
Upstreams map[string]UpstreamOptions `yaml:"upstreams" json:"upstreams"`
Redis []RedisOptions `yaml:"redis" json:"redis"`
// contains filtered or unexported fields
}
func NewOptions ¶
func NewOptions() Options
type PrometheusOptions ¶
type ProviderOtions ¶
type ProviderOtions struct {
File FileProviderOptions `yaml:"file" json:"file"`
}
type RedisOptions ¶
type ResolverOptions ¶
type RouteOptions ¶
type RouteOptions struct {
ID string `yaml:"-" json:"-"`
Methods []string `yaml:"methods" json:"methods"`
Paths []string `yaml:"paths" json:"paths"`
Servers []string `yaml:"servers" json:"servers"`
Middlewares []MiddlwareOptions `yaml:"middlewares" json:"middlewares"`
ServiceID string `yaml:"service_id" json:"service_id"`
}
type ServerOptions ¶
type ServerOptions struct {
ID string `yaml:"-" json:"-"`
Bind string `yaml:"bind" json:"bind"`
TLS TLSOptions `yaml:"tls" json:"tls"`
ReusePort bool `yaml:"reuse_port" json:"reuse_port"`
TCPQuickAck bool `yaml:"tcp_quick_ack" json:"tcp_quick_ack"`
TCPFastOpen bool `yaml:"tcp_fast_open" json:"tcp_fast_open"`
Backlog int `yaml:"backlog" json:"backlog"`
HTTP2 bool `yaml:"http2" json:"http2"`
Middlewares []MiddlwareOptions `yaml:"middlewares" json:"middlewares"`
Logging LoggingOtions `yaml:"logging" json:"logging"`
Timeout ServerTimeoutOptions `yaml:"timeout" json:"timeout"`
MaxRequestBodySize int `yaml:"max_request_body_size" json:"max_request_body_size"`
ReadBufferSize int `yaml:"read_buffer_size" json:"read_buffer_size"`
PPROF bool `yaml:"pprof" json:"pprof"`
AccessLogID string `yaml:"access_log_id" json:"access_log_id"`
}
type ServerTimeoutOptions ¶
type ServiceOptions ¶
type ServiceOptions struct {
ID string `yaml:"-" json:"-"`
TLSVerify bool `yaml:"tls_verify" json:"tls_verify"`
MaxConnsPerHost *int `yaml:"max_conns_per_host" json:"max_conns_per_host"`
Protocol Protocol `yaml:"protocol" json:"protocol"`
Url string `yaml:"url" json:"url"`
Timeout ServiceTimeoutOptions `yaml:"timeout" json:"timeout"`
Middlewares []MiddlwareOptions `yaml:"middlewares" json:"middlewares"`
}
type ServiceTimeoutOptions ¶
type TLSOptions ¶
type TargetOptions ¶
type TracingOptions ¶
type TracingOptions struct {
OTLP OTLPOptions `yaml:"otlp" json:"otlp"`
}
type UpstreamOptions ¶
type UpstreamOptions struct {
ID string `yaml:"-" json:"-"`
Strategy UpstreamStrategy `yaml:"strategy" json:"strategy"`
HashOn string `yaml:"hash_on" json:"hash_on"`
Targets []TargetOptions `yaml:"targets" json:"targets"`
}
type UpstreamStrategy ¶
type UpstreamStrategy string
const ( RandomStrategy UpstreamStrategy = "random" RoundRobinStrategy UpstreamStrategy = "round_robin" WeightedStrategy UpstreamStrategy = "weighted" HashingStrategy UpstreamStrategy = "hashing" )
Click to show internal directories.
Click to hide internal directories.