Documentation
¶
Index ¶
- Variables
- func ProbeDNS(ctx context.Context, target string, module Module, ...) bool
- func ProbeGRPC(ctx context.Context, target string, module Module, ...) (success bool)
- func ProbeHTTP(ctx context.Context, target string, module Module, ...) (success bool)
- func ProbeICMP(ctx context.Context, target string, module Module, ...) (success bool)
- func ProbeTCP(ctx context.Context, target string, module Module, ...) bool
- type DNSProbe
- type DNSRRValidator
- type GRPCHealthCheck
- type GRPCProbe
- type HTTPProbe
- type HeaderMatch
- type ICMPProbe
- type Module
- type ProbeFn
- type QueryResponse
- type Regexp
- type TCPProbe
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, } )
Functions ¶
Types ¶
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 GRPCHealthCheck ¶
type GRPCHealthCheck interface {
Check(c context.Context, service string) (bool, codes.Code, *peer.Peer, string, error)
}
func NewGrpcHealthCheckClient ¶
func NewGrpcHealthCheckClient(conn *grpc.ClientConn) GRPCHealthCheck
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"`
BodyFile string `yaml:"body_file,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 {
BaseDir string `yaml:"-"`
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"`
}
Blackbox 这个插件使用 yaml 配置文件,而不是 toml 配置文件 一般来讲,一个 scrape job 只会关联一个 blackbox 插件
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 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.