Documentation ¶
Index ¶
- Constants
- func CanonicalDomain(domain string) string
- func MatchDomain(domain string, certDomain string) bool
- type AccessLog
- type AccessLogFields
- type AccessLogFilters
- type ClientTLS
- type Datadog
- type Domain
- type Duration
- type FieldHeaders
- type HTTPCodeRanges
- type HostResolverConfig
- type InfluxDB
- type Metrics
- type Prometheus
- type RouteAppender
- type Statistics
- type Statsd
- type TraefikLog
Constants ¶
const ( // AccessLogKeep is the keep string value AccessLogKeep = "keep" // AccessLogDrop is the drop string value AccessLogDrop = "drop" // AccessLogRedact is the redact string value AccessLogRedact = "redact" )
const ( // CommonFormat is the common logging format (CLF). CommonFormat string = "common" // JSONFormat is the JSON logging format. JSONFormat string = "json" )
Variables ¶
This section is empty.
Functions ¶
func CanonicalDomain ¶
CanonicalDomain returns a lower case domain with trim space.
func MatchDomain ¶
MatchDomain returns true if a domain match the cert domain.
Types ¶
type AccessLog ¶
type AccessLog struct { FilePath string `` /* 165-byte string literal not displayed */ Format string `` /* 132-byte string literal not displayed */ Filters *AccessLogFilters `` /* 162-byte string literal not displayed */ Fields *AccessLogFields `description:"AccessLogFields." json:"fields,omitempty" toml:"fields,omitempty" yaml:"fields,omitempty" export:"true"` BufferingSize int64 `` /* 177-byte string literal not displayed */ }
AccessLog holds the configuration settings for the access logger (middlewares/accesslog).
func (*AccessLog) SetDefaults ¶
func (l *AccessLog) SetDefaults()
SetDefaults sets the default values.
type AccessLogFields ¶
type AccessLogFields struct { DefaultMode string `` /* 152-byte string literal not displayed */ Names map[string]string `description:"Override mode for fields" json:"names,omitempty" toml:"names,omitempty" yaml:"names,omitempty" export:"true"` Headers *FieldHeaders `` /* 134-byte string literal not displayed */ }
AccessLogFields holds configuration for access log fields
func (*AccessLogFields) Keep ¶
func (f *AccessLogFields) Keep(field string) bool
Keep check if the field need to be kept or dropped
func (*AccessLogFields) KeepHeader ¶
func (f *AccessLogFields) KeepHeader(header string) string
KeepHeader checks if the headers need to be kept, dropped or redacted and returns the status
func (*AccessLogFields) SetDefaults ¶
func (f *AccessLogFields) SetDefaults()
SetDefaults sets the default values.
type AccessLogFilters ¶
type AccessLogFilters struct { StatusCodes []string `` /* 173-byte string literal not displayed */ RetryAttempts bool `` /* 171-byte string literal not displayed */ MinDuration Duration `` /* 185-byte string literal not displayed */ }
AccessLogFilters holds filters configuration
type ClientTLS ¶
type ClientTLS struct { CA string `description:"TLS CA" json:"ca,omitempty" toml:"ca,omitempty" yaml:"ca,omitempty"` CAOptional bool `description:"TLS CA.Optional" json:"caOptional,omitempty" toml:"caOptional,omitempty" yaml:"caOptional,omitempty"` Cert string `description:"TLS cert" json:"cert,omitempty" toml:"cert,omitempty" yaml:"cert,omitempty"` Key string `description:"TLS key" json:"key,omitempty" toml:"key,omitempty" yaml:"key,omitempty"` InsecureSkipVerify bool `` /* 146-byte string literal not displayed */ }
ClientTLS holds TLS specific configurations as client CA, Cert and Key can be either path or file contents
type Datadog ¶
type Datadog struct { Address string `description:"Datadog's address." json:"address,omitempty" toml:"address,omitempty" yaml:"address,omitempty"` PushInterval Duration `` /* 140-byte string literal not displayed */ AddEntryPointsLabels bool `` /* 173-byte string literal not displayed */ AddServicesLabels bool `` /* 160-byte string literal not displayed */ }
Datadog contains address and metrics pushing interval configuration.
type Domain ¶
type Domain struct { Main string `description:"Default subject name." json:"main,omitempty" toml:"main,omitempty" yaml:"main,omitempty"` SANs []string `description:"Subject alternative names." json:"sans,omitempty" toml:"sans,omitempty" yaml:"sans,omitempty"` }
Domain holds a domain name with SANs.
func (*Domain) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Domain.
func (*Domain) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Domain) ToStrArray ¶
ToStrArray convert a domain into an array of strings.
type Duration ¶
Duration is a custom type suitable for parsing duration values. It supports `time.ParseDuration`-compatible values and suffix-less digits; in the latter case, seconds are assumed.
func (Duration) MarshalJSON ¶
MarshalJSON serializes the given duration value.
func (Duration) MarshalText ¶
MarshalText serialize the given duration value into a text.
func (*Duration) UnmarshalJSON ¶
UnmarshalJSON deserializes the given text into a duration value.
func (*Duration) UnmarshalText ¶
UnmarshalText deserializes the given text into a duration value. It is meant to support TOML decoding of durations.
type FieldHeaders ¶
type FieldHeaders struct { DefaultMode string `` /* 160-byte string literal not displayed */ Names map[string]string `description:"Override mode for headers" json:"names,omitempty" toml:"names,omitempty" yaml:"names,omitempty" export:"true"` }
FieldHeaders holds configuration for access log headers
type HTTPCodeRanges ¶
type HTTPCodeRanges [][2]int
HTTPCodeRanges holds HTTP code ranges
func NewHTTPCodeRanges ¶
func NewHTTPCodeRanges(strBlocks []string) (HTTPCodeRanges, error)
NewHTTPCodeRanges creates HTTPCodeRanges from a given []string. Break out the http status code ranges into a low int and high int for ease of use at runtime
func (HTTPCodeRanges) Contains ¶
func (h HTTPCodeRanges) Contains(statusCode int) bool
Contains tests whether the passed status code is within one of its HTTP code ranges.
type HostResolverConfig ¶
type HostResolverConfig struct { CnameFlattening bool `` /* 168-byte string literal not displayed */ ResolvConfig string `` /* 152-byte string literal not displayed */ ResolvDepth int `` /* 159-byte string literal not displayed */ }
HostResolverConfig contain configuration for CNAME Flattening.
func (*HostResolverConfig) SetDefaults ¶
func (h *HostResolverConfig) SetDefaults()
SetDefaults sets the default values.
type InfluxDB ¶
type InfluxDB struct { Address string `description:"InfluxDB address." json:"address,omitempty" toml:"address,omitempty" yaml:"address,omitempty"` Protocol string `` /* 132-byte string literal not displayed */ PushInterval Duration `` /* 141-byte string literal not displayed */ Database string `` /* 151-byte string literal not displayed */ RetentionPolicy string `` /* 180-byte string literal not displayed */ Username string `` /* 141-byte string literal not displayed */ Password string `` /* 141-byte string literal not displayed */ AddEntryPointsLabels bool `` /* 173-byte string literal not displayed */ AddServicesLabels bool `` /* 160-byte string literal not displayed */ }
InfluxDB contains address, login and metrics pushing interval configuration.
func (*InfluxDB) SetDefaults ¶
func (i *InfluxDB) SetDefaults()
SetDefaults sets the default values.
type Metrics ¶
type Metrics struct { Prometheus *Prometheus `` /* 164-byte string literal not displayed */ Datadog *Datadog `` /* 152-byte string literal not displayed */ StatsD *Statsd `` /* 148-byte string literal not displayed */ InfluxDB *InfluxDB `` /* 142-byte string literal not displayed */ }
Metrics provides options to expose and send Traefik metrics to different third party monitoring systems.
type Prometheus ¶
type Prometheus struct { Buckets []float64 `` /* 131-byte string literal not displayed */ AddEntryPointsLabels bool `` /* 173-byte string literal not displayed */ AddServicesLabels bool `` /* 160-byte string literal not displayed */ EntryPoint string `description:"EntryPoint" export:"true" json:"entryPoint,omitempty" toml:"entryPoint,omitempty" yaml:"entryPoint,omitempty"` ManualRouting bool `description:"Manual routing" json:"manualRouting,omitempty" toml:"manualRouting,omitempty" yaml:"manualRouting,omitempty"` }
Prometheus can contain specific configuration used by the Prometheus Metrics exporter.
func (*Prometheus) SetDefaults ¶
func (p *Prometheus) SetDefaults()
SetDefaults sets the default values.
type RouteAppender ¶
RouteAppender appends routes on a router (/api, /ping ...)
type Statistics ¶
type Statistics struct {
RecentErrors int `` /* 149-byte string literal not displayed */
}
Statistics provides options for monitoring request and response stats.
func (*Statistics) SetDefaults ¶
func (s *Statistics) SetDefaults()
SetDefaults sets the default values.
type Statsd ¶
type Statsd struct { Address string `description:"StatsD address." json:"address,omitempty" toml:"address,omitempty" yaml:"address,omitempty"` PushInterval Duration `` /* 139-byte string literal not displayed */ AddEntryPointsLabels bool `` /* 173-byte string literal not displayed */ AddServicesLabels bool `` /* 160-byte string literal not displayed */ Prefix string `` /* 137-byte string literal not displayed */ }
Statsd contains address and metrics pushing interval configuration.
type TraefikLog ¶
type TraefikLog struct { Level string `` /* 127-byte string literal not displayed */ FilePath string `` /* 152-byte string literal not displayed */ Format string `description:"Traefik log format: json | common" json:"format,omitempty" toml:"format,omitempty" yaml:"format,omitempty"` }
TraefikLog holds the configuration settings for the traefik logger.
func (*TraefikLog) SetDefaults ¶
func (l *TraefikLog) SetDefaults()
SetDefaults sets the default values.