-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #193 from s-diez/fix-targets-loop
Fix loop over targets of all hosts
- Loading branch information
Showing
4 changed files
with
100 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
package collector_test | ||
|
||
import ( | ||
"strings" | ||
"testing" | ||
|
||
"github.com/Luzilla/dnsbl_exporter/collector" | ||
"github.com/Luzilla/dnsbl_exporter/internal/tests" | ||
"github.com/prometheus/client_golang/prometheus/testutil" | ||
"github.com/stretchr/testify/assert" | ||
) | ||
|
||
func TestCollector(t *testing.T) { | ||
dnsMock := tests.CreateDNSMock(t) | ||
defer dnsMock.Close() | ||
|
||
logger := tests.CreateTestLogger(t) | ||
util := tests.CreateDNSUtil(t, dnsMock.LocalAddr()) | ||
rbls := []string{"zen.spamhaus.org", "cbl.abuseat.org"} | ||
targets := []string{ | ||
"79.214.198.85", // bad | ||
"relay.heise.de", // good | ||
"1.3.3.7", // good | ||
} | ||
|
||
c := collector.NewRblCollector(rbls, targets, util, logger) | ||
|
||
result, err := testutil.CollectAndLint(c) | ||
assert.Empty(t, result) | ||
assert.NoError(t, err) | ||
|
||
// take all metrics but duration as it's value is hardly predictable | ||
metrics := []string{} | ||
for _, metric := range []string{"used", "ips_blacklisted", "errors", "listed", "targets"} { | ||
metrics = append(metrics, collector.BuildFQName(metric)) | ||
} | ||
expected := ` | ||
# HELP luzilla_rbls_ips_blacklisted Blacklisted IPs | ||
# TYPE luzilla_rbls_ips_blacklisted gauge | ||
luzilla_rbls_ips_blacklisted{hostname="1.3.3.7",ip="1.3.3.7",rbl="cbl.abuseat.org"} 0 | ||
luzilla_rbls_ips_blacklisted{hostname="1.3.3.7",ip="1.3.3.7",rbl="zen.spamhaus.org"} 0 | ||
luzilla_rbls_ips_blacklisted{hostname="79.214.198.85",ip="79.214.198.85",rbl="cbl.abuseat.org"} 0 | ||
luzilla_rbls_ips_blacklisted{hostname="79.214.198.85",ip="79.214.198.85",rbl="zen.spamhaus.org"} 1 | ||
luzilla_rbls_ips_blacklisted{hostname="relay.heise.de",ip="193.99.145.50",rbl="cbl.abuseat.org"} 0 | ||
luzilla_rbls_ips_blacklisted{hostname="relay.heise.de",ip="193.99.145.50",rbl="zen.spamhaus.org"} 0 | ||
# HELP luzilla_rbls_listed The number of listings in RBLs (this is bad) | ||
# TYPE luzilla_rbls_listed gauge | ||
luzilla_rbls_listed{rbl="cbl.abuseat.org"} 0 | ||
luzilla_rbls_listed{rbl="zen.spamhaus.org"} 1 | ||
# HELP luzilla_rbls_targets The number of targets that are being probed (configured via targets.ini or ?target=) | ||
# TYPE luzilla_rbls_targets gauge | ||
luzilla_rbls_targets 3 | ||
# HELP luzilla_rbls_used The number of RBLs to check IPs against (configured via rbls.ini) | ||
# TYPE luzilla_rbls_used gauge | ||
luzilla_rbls_used 2 | ||
` | ||
err = testutil.CollectAndCompare(c, strings.NewReader(expected), metrics...) | ||
assert.NoError(t, err) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters