_, port, _ := net.SplitHostPort(addr.String())
- // Force IPv4
+ // Prefer IPv6
module := config.Module{
Timeout: time.Second,
DNS: config.DNSProbe{
QueryName: "example.com",
TransportProtocol: protocol,
- IPProtocol: "ip4",
+ IPProtocol: "ip6",
},
}
registry := prometheus.NewRegistry()
defer cancel()
result := ProbeDNS(testCTX, net.JoinHostPort("localhost", port), module, registry, log.NewNopLogger())
if !result {
- t.Fatalf("DNS protocol: \"%v4\" connection test failed, expected success.", protocol)
+ t.Fatalf("DNS protocol: \"%v\", preferred \"ip6\" connection test failed, expected success.", protocol)
}
mfs, err := registry.Gather()
if err != nil {
t.Fatal(err)
}
-
expectedResults := map[string]float64{
- "probe_ip_protocol": 4,
- }
- checkRegistryResults(expectedResults, mfs, t)
-
- // Force IPv6
- module = config.Module{
- Timeout: time.Second,
- DNS: config.DNSProbe{
- QueryName: "example.com",
- TransportProtocol: protocol,
- IPProtocol: "ip6",
- },
- }
- registry = prometheus.NewRegistry()
- testCTX, cancel = context.WithTimeout(context.Background(), 10*time.Second)
- defer cancel()
- result = ProbeDNS(testCTX, net.JoinHostPort("localhost", port), module, registry, log.NewNopLogger())
- if !result {
- t.Fatalf("DNS protocol: \"%v6\" connection test failed, expected success.", protocol)
- }
- mfs, err = registry.Gather()
- if err != nil {
- t.Fatal(err)
- }
- expectedResults = map[string]float64{
- "probe_ip_protocol": 6,
- }
- checkRegistryResults(expectedResults, mfs, t)
-
- // Prefer IPv6
- module = config.Module{
- Timeout: time.Second,
- DNS: config.DNSProbe{
- QueryName: "example.com",
- TransportProtocol: protocol,
- IPProtocol: "ip6",
- },
- }
- registry = prometheus.NewRegistry()
- testCTX, cancel = context.WithTimeout(context.Background(), 10*time.Second)
- defer cancel()
- result = ProbeDNS(testCTX, net.JoinHostPort("localhost", port), module, registry, log.NewNopLogger())
- if !result {
- t.Fatalf("DNS protocol: \"%v\", preferred \"ip6\" connection test failed, expected success.", protocol)
- }
- mfs, err = registry.Gather()
- if err != nil {
- t.Fatal(err)
- }
- expectedResults = map[string]float64{
"probe_ip_protocol": 6,
}
checkRegistryResults(expectedResults, mfs, t)
_, port, _ := net.SplitHostPort(ln.Addr().String())
- // Force IPv4
+ // Prefer IPv4
module := config.Module{
TCP: config.TCPProbe{
IPProtocol: "ip4",
registry := prometheus.NewRegistry()
result := ProbeTCP(testCTX, net.JoinHostPort("localhost", port), module, registry, log.NewNopLogger())
if !result {
- t.Fatalf("TCP protocol: \"tcp4\" connection test failed, expected success.")
+ t.Fatalf("TCP protocol: \"tcp\", prefer: \"ip4\" connection test failed, expected success.")
}
mfs, err := registry.Gather()
if err != nil {
}
checkRegistryResults(expectedResults, mfs, t)
- // Force IPv6
- module = config.Module{
- TCP: config.TCPProbe{},
- }
-
- registry = prometheus.NewRegistry()
- result = ProbeTCP(testCTX, net.JoinHostPort("localhost", port), module, registry, log.NewNopLogger())
- if !result {
- t.Fatalf("TCP protocol: \"tcp6\" connection test failed, expected success.")
- }
- mfs, err = registry.Gather()
- if err != nil {
- t.Fatal(err)
- }
- expectedResults = map[string]float64{
- "probe_ip_protocol": 6,
- }
- checkRegistryResults(expectedResults, mfs, t)
-
- // Prefer IPv4
- module = config.Module{
- TCP: config.TCPProbe{
- IPProtocol: "ip4",
- },
- }
-
- registry = prometheus.NewRegistry()
- result = ProbeTCP(testCTX, net.JoinHostPort("localhost", port), module, registry, log.NewNopLogger())
- if !result {
- t.Fatalf("TCP protocol: \"tcp\", prefer: \"ip4\" connection test failed, expected success.")
- }
- mfs, err = registry.Gather()
- if err != nil {
- t.Fatal(err)
- }
- expectedResults = map[string]float64{
- "probe_ip_protocol": 4,
- }
- checkRegistryResults(expectedResults, mfs, t)
-
// Prefer IPv6
module = config.Module{
TCP: config.TCPProbe{
"probe_ip_protocol": 6,
}
checkRegistryResults(expectedResults, mfs, t)
-
- // No protocol
- module = config.Module{
- TCP: config.TCPProbe{},
- }
-
- registry = prometheus.NewRegistry()
- result = ProbeTCP(testCTX, net.JoinHostPort("localhost", port), module, registry, log.NewNopLogger())
- if !result {
- t.Fatalf("TCP connection test with protocol unspecified failed, expected success.")
- }
- mfs, err = registry.Gather()
- if err != nil {
- t.Fatal(err)
- }
- expectedResults = map[string]float64{
- "probe_ip_protocol": 6,
- }
- checkRegistryResults(expectedResults, mfs, t)
}
func TestPrometheusTimeoutTCP(t *testing.T) {