Documentation
¶
Overview ¶
Copyright 2025 The Prometheus Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
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, Unix: DefaultUnixProbe, } // 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, } // DefaultUnixProbe set default value for UnixProbe DefaultUnixProbe = UnixProbe{} )
Functions ¶
func GenerateChecksum ¶ added in v0.28.0
Types ¶
type CELProgram ¶ added in v0.27.0
CELProgram encapsulates a cel.Program and makes it YAML marshalable.
func MustNewCELProgram ¶ added in v0.27.0
func MustNewCELProgram(s string) CELProgram
MustNewCELProgram works like NewCELProgram, but panics if the CEL expression does not compile.
func NewCELProgram ¶ added in v0.27.0
func NewCELProgram(s string) (CELProgram, error)
NewCELProgram creates a new CEL Program and returns an error if the passed-in CEL expression does not compile.
func (CELProgram) MarshalYAML ¶ added in v0.27.0
func (c CELProgram) MarshalYAML() (interface{}, error)
MarshalYAML implements the yaml.Marshaler interface.
func (*CELProgram) UnmarshalYAML ¶ added in v0.27.0
func (c *CELProgram) UnmarshalYAML(unmarshal func(interface{}) error) error
UnmarshalYAML implements the yaml.Unmarshaler interface.
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 ¶ added in v0.20.0
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"`
Metadata metadata.MD `yaml:"metadata,omitempty"`
}
func (*GRPCProbe) UnmarshalYAML ¶ added in v0.20.0
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"`
FailIfBodyJsonMatchesCEL *CELProgram `yaml:"fail_if_body_json_matches_cel,omitempty"`
FailIfBodyJsonNotMatchesCEL *CELProgram `yaml:"fail_if_body_json_not_matches_cel,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"`
UseHTTP3 bool `yaml:"enable_http3,omitempty"`
}
func (*HTTPProbe) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type HeaderMatch ¶ added in v0.14.0
type HeaderMatch struct {
Header string `yaml:"header,omitempty"`
Regexp Regexp `yaml:"regexp,omitempty"`
AllowMissing bool `yaml:"allow_missing,omitempty"`
}
func (*HeaderMatch) UnmarshalYAML ¶ added in v0.14.0
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"`
Unix UnixProbe `yaml:"unix,omitempty"`
}
func (*Module) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface.
type QueryResponse ¶
type QueryResponse struct {
Expect Regexp `yaml:"expect,omitempty"`
ExpectBytes string `yaml:"expect_bytes,omitempty"`
Labels []Label `yaml:"labels,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 ¶ added in v0.19.0
Regexp encapsulates a regexp.Regexp and makes it YAML marshalable.
func MustNewRegexp ¶ added in v0.19.0
MustNewRegexp works like NewRegexp, but panics if the regular expression does not compile.
func NewRegexp ¶ added in v0.19.0
NewRegexp creates a new anchored Regexp and returns an error if the passed-in regular expression does not compile.
func (Regexp) MarshalYAML ¶ added in v0.19.0
MarshalYAML implements the yaml.Marshaler interface.
func (*Regexp) UnmarshalYAML ¶ added in v0.19.0
UnmarshalYAML implements the yaml.Unmarshaler interface.
type SafeConfig ¶
func NewSafeConfig ¶ added in v0.25.0
func NewSafeConfig(reg prometheus.Registerer) *SafeConfig
func (*SafeConfig) ReloadConfig ¶
func (sc *SafeConfig) ReloadConfig(confFile string, logger *slog.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.
type UnixProbe ¶ added in v0.28.0
type UnixProbe struct {
QueryResponse []QueryResponse `yaml:"query_response,omitempty"`
TLS bool `yaml:"tls,omitempty"`
TLSConfig config.TLSConfig `yaml:"tls_config,omitempty"`
}
func (*UnixProbe) UnmarshalYAML ¶ added in v0.28.0
UnmarshalYAML implements the yaml.Unmarshaler interface.