Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultModule set default configuration for the Module DefaultModule = Module{ HTTP: DefaultHTTPProbe, TCP: DefaultTCPProbe, ICMP: DefaultICMPProbe, DNS: DefaultDNSProbe, } // DefaultHTTPProbe set default value for HTTPProbe DefaultHTTPProbe = HTTPProbe{ IPProtocolFallback: true, HTTPClientConfig: config.DefaultHTTPClientConfig, } // DefaultGRPCProbe set default value for HTTPProbe DefaultGRPCProbe = GRPCProbe{ Service: "", IPProtocolFallback: true, } // DefaultTCPProbe set default value for TCPProbe DefaultTCPProbe = TCPProbe{ IPProtocolFallback: true, } // DefaultICMPProbe set default value for ICMPProbe DefaultICMPTTL = 64 DefaultICMPProbe = ICMPProbe{ IPProtocolFallback: true, TTL: DefaultICMPTTL, } // DefaultDNSProbe set default value for DNSProbe DefaultDNSProbe = DNSProbe{ IPProtocolFallback: true, Recursion: true, } DefaultPingSetting = PingSetting{ ConcurrentLimit: 20, Interval: 60.0, Delay: 200.0, Timeout: 2.0, IPProtocol: "ip6", SourceIPAddress: "0.0.0.0", } )
Functions ¶
This section is empty.
Types ¶
type Config ¶
func (*Config) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type DNSProbe ¶
type DNSProbe struct {
IPProtocol string `yaml:"preferred_ip_protocol,omitempty"`
IPProtocolFallback bool `yaml:"ip_protocol_fallback,omitempty"`
DNSOverTLS bool `yaml:"dns_over_tls,omitempty"`
TLSConfig config.TLSConfig `yaml:"tls_config,omitempty"`
SourceIPAddress string `yaml:"source_ip_address,omitempty"`
TransportProtocol string `yaml:"transport_protocol,omitempty"`
QueryClass string `yaml:"query_class,omitempty"` // Defaults to IN.
QueryName string `yaml:"query_name,omitempty"`
QueryType string `yaml:"query_type,omitempty"` // Defaults to ANY.
Recursion bool `yaml:"recursion_desired,omitempty"` // Defaults to true.
ValidRcodes []string `yaml:"valid_rcodes,omitempty"` // Defaults to NOERROR.
ValidateAnswer DNSRRValidator `yaml:"validate_answer_rrs,omitempty"`
ValidateAuthority DNSRRValidator `yaml:"validate_authority_rrs,omitempty"`
ValidateAdditional DNSRRValidator `yaml:"validate_additional_rrs,omitempty"`
}
func (*DNSProbe) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type DNSRRValidator ¶
type DNSRRValidator struct {
FailIfMatchesRegexp []string `yaml:"fail_if_matches_regexp,omitempty"`
FailIfAllMatchRegexp []string `yaml:"fail_if_all_match_regexp,omitempty"`
FailIfNotMatchesRegexp []string `yaml:"fail_if_not_matches_regexp,omitempty"`
FailIfNoneMatchesRegexp []string `yaml:"fail_if_none_matches_regexp,omitempty"`
}
func (*DNSRRValidator) UnmarshalYAML ¶
func (s *DNSRRValidator) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
type GRPCProbe ¶
type GRPCProbe struct {
Service string `yaml:"service,omitempty"`
TLS bool `yaml:"tls,omitempty"`
TLSConfig config.TLSConfig `yaml:"tls_config,omitempty"`
IPProtocolFallback bool `yaml:"ip_protocol_fallback,omitempty"`
PreferredIPProtocol string `yaml:"preferred_ip_protocol,omitempty"`
}
func (*GRPCProbe) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type HTTPProbe ¶
type HTTPProbe struct {
// Defaults to 2xx.
ValidStatusCodes []int `yaml:"valid_status_codes,omitempty"`
ValidHTTPVersions []string `yaml:"valid_http_versions,omitempty"`
IPProtocol string `yaml:"preferred_ip_protocol,omitempty"`
IPProtocolFallback bool `yaml:"ip_protocol_fallback,omitempty"`
SkipResolvePhaseWithProxy bool `yaml:"skip_resolve_phase_with_proxy,omitempty"`
NoFollowRedirects *bool `yaml:"no_follow_redirects,omitempty"`
FailIfSSL bool `yaml:"fail_if_ssl,omitempty"`
FailIfNotSSL bool `yaml:"fail_if_not_ssl,omitempty"`
Method string `yaml:"method,omitempty"`
Headers map[string]string `yaml:"headers,omitempty"`
FailIfBodyMatchesRegexp []Regexp `yaml:"fail_if_body_matches_regexp,omitempty"`
FailIfBodyNotMatchesRegexp []Regexp `yaml:"fail_if_body_not_matches_regexp,omitempty"`
FailIfHeaderMatchesRegexp []HeaderMatch `yaml:"fail_if_header_matches,omitempty"`
FailIfHeaderNotMatchesRegexp []HeaderMatch `yaml:"fail_if_header_not_matches,omitempty"`
Body string `yaml:"body,omitempty"`
HTTPClientConfig config.HTTPClientConfig `yaml:"http_client_config,inline"`
Compression string `yaml:"compression,omitempty"`
BodySizeLimit units.Base2Bytes `yaml:"body_size_limit,omitempty"`
}
func (*HTTPProbe) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type HeaderMatch ¶
type HeaderMatch struct {
Header string `yaml:"header,omitempty"`
Regexp Regexp `yaml:"regexp,omitempty"`
AllowMissing bool `yaml:"allow_missing,omitempty"`
}
func (*HeaderMatch) UnmarshalYAML ¶
func (s *HeaderMatch) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
type ICMPProbe ¶
type ICMPProbe struct {
IPProtocol string `yaml:"preferred_ip_protocol,omitempty"` // Defaults to "ip6".
IPProtocolFallback bool `yaml:"ip_protocol_fallback,omitempty"`
SourceIPAddress string `yaml:"source_ip_address,omitempty"`
PayloadSize int `yaml:"payload_size,omitempty"`
DontFragment bool `yaml:"dont_fragment,omitempty"`
TTL int `yaml:"ttl,omitempty"`
}
func (*ICMPProbe) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type Module ¶
type Module struct {
Prober string `yaml:"prober,omitempty"`
Timeout time.Duration `yaml:"timeout,omitempty"`
HTTP HTTPProbe `yaml:"http,omitempty"`
TCP TCPProbe `yaml:"tcp,omitempty"`
ICMP ICMPProbe `yaml:"icmp,omitempty"`
DNS DNSProbe `yaml:"dns,omitempty"`
GRPC GRPCProbe `yaml:"grpc,omitempty"`
}
func (*Module) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type PingMeshConfig ¶
type PingMeshConfig struct {
IsNew bool `yaml:"-"`
Items map[string]PingMeshItem `yaml:"mesh"` //ID : object
Setting PingSetting `yaml:"setting"`
}
type PingMeshItem ¶
type PingSetting ¶
type PingSetting struct {
ConcurrentLimit uint `yaml:"concurrent_limit"`
Interval float64 `yaml:"interval"` //second
Delay float64 `yaml:"delay"` //millisecond
Timeout float64 `yaml:"timeout"` //second
IpListLen int `yaml:"-"`
IPProtocol string `yaml:"ip_protocol"`
SourceIPAddress string `yaml:"source_ip_addr"`
}
func (*PingSetting) UnmarshalYAML ¶
func (s *PingSetting) UnmarshalYAML(unmarshal func(interface{}) error) error
type QueryResponse ¶
type QueryResponse struct {
Expect Regexp `yaml:"expect,omitempty"`
Send string `yaml:"send,omitempty"`
StartTLS bool `yaml:"starttls,omitempty"`
}
func (*QueryResponse) UnmarshalYAML ¶
func (s *QueryResponse) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
type Regexp ¶
Regexp encapsulates a regexp.Regexp and makes it YAML marshalable.
func MustNewRegexp ¶
MustNewRegexp works like NewRegexp, but panics if the regular expression does not compile.
func NewRegexp ¶
NewRegexp creates a new anchored Regexp and returns an error if the passed-in regular expression does not compile.
func (Regexp) MarshalYAML ¶
MarshalYAML implements the yaml.Marshaler interface.
func (*Regexp) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type SafeConfig ¶
type SafeConfig struct {
sync.RWMutex
C *Config
P *PingMeshConfig
}
func (*SafeConfig) ReloadConfig ¶
type TCPProbe ¶
type TCPProbe struct {
IPProtocol string `yaml:"preferred_ip_protocol,omitempty"`
IPProtocolFallback bool `yaml:"ip_protocol_fallback,omitempty"`
SourceIPAddress string `yaml:"source_ip_address,omitempty"`
QueryResponse []QueryResponse `yaml:"query_response,omitempty"`
TLS bool `yaml:"tls,omitempty"`
TLSConfig config.TLSConfig `yaml:"tls_config,omitempty"`
}
func (*TCPProbe) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.