Skip to content

Commit

Permalink
Take host label from the pinger for consistency
Browse files Browse the repository at this point in the history
Older versions of pro-bing return the host name as pkt.Addr but
newer versions return the stringified version of IPAddr instead.

Signed-off-by: Tom Hughes <[email protected]>
  • Loading branch information
tomhughes committed Mar 10, 2024
1 parent 606485d commit be41891
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,20 +88,21 @@ func NewSmokepingCollector(pingers *[]*probing.Pinger, pingResponseSeconds prome
for _, pinger := range *pingers {
// Init all metrics to 0s.
ipAddr := pinger.IPAddr().String()
pingResponseDuplicates.WithLabelValues(ipAddr, pinger.Addr(), pinger.Source)
pingResponseSeconds.WithLabelValues(ipAddr, pinger.Addr(), pinger.Source)
pingResponseTTL.WithLabelValues(ipAddr, pinger.Addr(), pinger.Source)
pingSendErrors.WithLabelValues(ipAddr, pinger.Addr(), pinger.Source)
host := pinger.Addr()
pingResponseDuplicates.WithLabelValues(ipAddr, host, pinger.Source)
pingResponseSeconds.WithLabelValues(ipAddr, host, pinger.Source)
pingResponseTTL.WithLabelValues(ipAddr, host, pinger.Source)
pingSendErrors.WithLabelValues(ipAddr, host, pinger.Source)

// Setup handler functions.
pinger.OnRecv = func(pkt *probing.Packet) {
pingResponseSeconds.WithLabelValues(pkt.IPAddr.String(), pkt.Addr, pinger.Source).Observe(pkt.Rtt.Seconds())
pingResponseTTL.WithLabelValues(pkt.IPAddr.String(), pkt.Addr, pinger.Source).Set(float64(pkt.TTL))
pingResponseSeconds.WithLabelValues(pkt.IPAddr.String(), host, pinger.Source).Observe(pkt.Rtt.Seconds())
pingResponseTTL.WithLabelValues(pkt.IPAddr.String(), host, pinger.Source).Set(float64(pkt.TTL))
level.Debug(logger).Log("msg", "Echo reply", "ip_addr", pkt.IPAddr,
"bytes_received", pkt.Nbytes, "icmp_seq", pkt.Seq, "time", pkt.Rtt, "ttl", pkt.TTL)
}
pinger.OnDuplicateRecv = func(pkt *probing.Packet) {
pingResponseDuplicates.WithLabelValues(pkt.IPAddr.String(), pkt.Addr, pinger.Source).Inc()
pingResponseDuplicates.WithLabelValues(pkt.IPAddr.String(), host, pinger.Source).Inc()
level.Debug(logger).Log("msg", "Echo reply (DUP!)", "ip_addr", pkt.IPAddr,
"bytes_received", pkt.Nbytes, "icmp_seq", pkt.Seq, "time", pkt.Rtt, "ttl", pkt.TTL)
}
Expand All @@ -122,7 +123,7 @@ func NewSmokepingCollector(pingers *[]*probing.Pinger, pingResponseSeconds prome
level.Debug(logger).Log("msg", "Error receiving packet", "error", err)
}
pinger.OnSendError = func(pkt *probing.Packet, err error) {
pingSendErrors.WithLabelValues(pkt.IPAddr.String(), pkt.Addr, pinger.Source).Inc()
pingSendErrors.WithLabelValues(pkt.IPAddr.String(), host, pinger.Source).Inc()
level.Debug(logger).Log("msg", "Error sending packet", "ip_addr", pkt.IPAddr,
"bytes_received", pkt.Nbytes, "icmp_seq", pkt.Seq, "time", pkt.Rtt, "ttl", pkt.TTL, "error", err)
}
Expand Down

0 comments on commit be41891

Please sign in to comment.