Skip to content

Commit 252900f

Browse files
zeidlitzquakj
authored andcommitted
style: improve logging
1 parent 86421d6 commit 252900f

File tree

2 files changed

+38
-29
lines changed

2 files changed

+38
-29
lines changed

dns.go

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,66 +11,71 @@ import (
1111
)
1212

1313
var (
14-
dnsRequests = promauto.NewCounterVec(prometheus.CounterOpts{
14+
dnsRequestsCounter = promauto.NewCounterVec(prometheus.CounterOpts{
1515
Name: "observer_dns_requests",
1616
Help: "Total number of sent DNS requests",
1717
}, []string{"resolver"})
18-
dnsFailures = promauto.NewCounterVec(prometheus.CounterOpts{
18+
dnsFailuresCounter = promauto.NewCounterVec(prometheus.CounterOpts{
1919
Name: "observer_dns_failures",
2020
Help: "Total number of failed DNS requests",
2121
}, []string{"resolver"})
22-
dnsLatency = prometheus.NewGaugeVec(prometheus.GaugeOpts{
22+
dnsLatencyGauge = prometheus.NewGaugeVec(prometheus.GaugeOpts{
2323
Name: "observer_dns_latency",
2424
Help: "Latency of DNS reequest.",
2525
}, []string{"resolver"})
26-
dnsAge = prometheus.NewGaugeVec(prometheus.GaugeOpts{
26+
dnsAgeGauge = prometheus.NewGaugeVec(prometheus.GaugeOpts{
2727
Name: "observer_dns_age",
2828
Help: "Age of DNS healthcheck record.",
2929
}, []string{"resolver"})
3030
)
3131

3232
func init() {
33-
prometheus.MustRegister(dnsLatency)
34-
prometheus.MustRegister(dnsAge)
33+
prometheus.MustRegister(dnsLatencyGauge)
34+
prometheus.MustRegister(dnsAgeGauge)
3535
}
3636

37-
func sampleDns(targets []string, qname string) {
37+
func sampleDns(targets []string, qname string) error {
3838
for _, target := range targets {
39-
f := dnsFailures.With(prometheus.Labels{
39+
40+
dnsFailures := dnsFailuresCounter.With(prometheus.Labels{
4041
"resolver": target,
4142
})
42-
f.Add(float64(0))
43-
dnsRequests.With(prometheus.Labels{
43+
44+
dnsRequestsCounter.With(prometheus.Labels{
4445
"resolver": target,
4546
}).Inc()
46-
c := dns.Client{}
47-
m := dns.Msg{}
48-
m.SetQuestion(qname, dns.TypeTXT)
49-
start := time.Now()
50-
r, _, err := c.Exchange(&m, fmt.Sprintf("%s:53", target))
47+
48+
dnsClient := dns.Client{}
49+
dnsMessage := dns.Msg{}
50+
dnsMessage.SetQuestion(qname, dns.TypeTXT)
51+
52+
r, rtt, err := dnsClient.Exchange(&dnsMessage, fmt.Sprintf("%s:53", target))
5153
if err != nil {
52-
f.Inc()
53-
return
54+
dnsFailures.Inc()
55+
return err
5456
}
55-
dnsLatency.With(prometheus.Labels{
56-
"resolver": target,
57-
}).Set(time.Since(start).Seconds())
57+
5858
if len(r.Answer) == 0 {
59-
return
59+
return fmt.Errorf("dns message lenght %d", len(r.Answer))
6060
}
61+
62+
dnsLatencyGauge.With(prometheus.Labels{
63+
"resolver": target,
64+
}).Set(rtt.Seconds())
65+
6166
for _, ans := range r.Answer {
6267
if t, ok := ans.(*dns.TXT); ok {
6368
if len(t.Txt) > 0 {
6469
stamp, err := strconv.Atoi(t.Txt[0])
6570
if err != nil {
66-
fmt.Println("Failed to parse healthcheck record")
67-
return
71+
return fmt.Errorf("failed to parse healthcheck record")
6872
}
69-
dnsAge.With(prometheus.Labels{
73+
dnsAgeGauge.With(prometheus.Labels{
7074
"resolver": target,
7175
}).Set(float64(int(time.Now().Unix()) - stamp))
7276
}
7377
}
7478
}
7579
}
80+
return nil
7681
}

main.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,16 @@ func main() {
6060

6161
go func() {
6262
for {
63-
_, _, err := sampleDhcp(iface, verbose)
63+
yourIPAddr, prefixBits, err := sampleDhcp(iface, verbose)
6464
if err != nil {
65-
slog.Warn("sampling dhcp", "err", err)
65+
slog.Warn("sampling dhcp", "your_ip_addr", yourIPAddr, "prefix_bits", prefixBits, "err", err)
6666
}
67-
if len(dnsTargetsList) > 0 {
68-
sampleDns(dnsTargetsList, dnsQname)
67+
68+
err = sampleDns(dnsTargetsList, dnsQname)
69+
if err != nil {
70+
slog.Warn("sampling DNS", "err", err)
6971
}
72+
7073
var addr *netlink.Addr
7174
var addr6 *netlink.Addr
7275
if !disable4 {
@@ -77,7 +80,8 @@ func main() {
7780

7881
addr, err = netlink.ParseAddr(yourIPAddr.String() + "/" + strconv.Itoa(prefixBits))
7982
if err != nil {
80-
log.Fatalln(err)
83+
slog.Error("parsing address", "err", err)
84+
os.Exit(1)
8185
}
8286

8387
err = netlink.AddrAdd(link, addr)

0 commit comments

Comments
 (0)