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 DefualtICMPPackets = 1 DefaultICMPProbe = ICMPProbe{ IPProtocolFallback: true, TTL: DefaultICMPTTL, Packets: DefualtICMPPackets, } // DefaultDNSProbe set default value for DNSProbe DefaultDNSProbe = DNSProbe{ IPProtocolFallback: true, Recursion: true, } )
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"` 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"` Packets int `yaml:"packets,omitempty"` Delay int `yaml:"delay,omitempty"` }
func (*ICMPProbe) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type JSONstruct ¶
type JSONstruct struct {
// contains filtered or unexported fields
}
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 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 ¶
func (*SafeConfig) ReloadConfig ¶
func (sc *SafeConfig) ReloadConfig(confFile string, logger log.Logger) (err error)
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.