Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/pkg/integrations/blackbox_exporter/blackbox_exporter_test.go
5411 views
1
package blackbox_exporter
2
3
import (
4
"net/url"
5
"testing"
6
7
integrations "github.com/grafana/agent/pkg/integrations/config"
8
"github.com/stretchr/testify/require"
9
"gopkg.in/yaml.v2"
10
)
11
12
func TestBlackboxConfig(t *testing.T) {
13
t.Run("scrape configs", func(t *testing.T) {
14
var config Config
15
strConfig := `---
16
blackbox_targets:
17
- name: icmp_cloudflare
18
address: 1.1.1.1
19
module: icmp_ipv4
20
- name: http_cloudflare
21
address: https://www.cloudflare.com
22
module: http_2xx_ipv4
23
blackbox_config:
24
modules:
25
http_2xx_ipv4:
26
prober: http
27
timeout: 5s
28
http:
29
preferred_ip_protocol: "ip4"
30
icmp_ipv4:
31
prober: "icmp"
32
timeout: 5s
33
icmp:
34
preferred_ip_protocol: "ip4"
35
`
36
require.NoError(t, yaml.UnmarshalStrict([]byte(strConfig), &config), "unmarshal config")
37
38
integration, err := New(nil, &config)
39
require.NoError(t, err)
40
expectedScrapeConfigs := []integrations.ScrapeConfig{
41
{
42
JobName: "blackbox/icmp_cloudflare",
43
MetricsPath: "/metrics",
44
QueryParams: url.Values{"target": []string{"1.1.1.1"}, "module": []string{"icmp_ipv4"}},
45
},
46
{
47
JobName: "blackbox/http_cloudflare",
48
MetricsPath: "/metrics",
49
QueryParams: url.Values{"target": []string{"https://www.cloudflare.com"}, "module": []string{"http_2xx_ipv4"}},
50
},
51
}
52
require.Equal(t, integration.ScrapeConfigs(), expectedScrapeConfigs)
53
})
54
}
55
56