Skip to content

Commit 09894e6

Browse files
committed
Fix tracking info metric
* Use Chrony RefID hex string for `tracking_refid`. * Implement basic version of the chrony format_name() function. Fixes: #7 Signed-off-by: SuperQ <superq@gmail.com>
1 parent 44f4b36 commit 09894e6

1 file changed

Lines changed: 15 additions & 2 deletions

File tree

collector/tracking.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ package collector
1515

1616
import (
1717
"net"
18+
"strings"
1819

1920
"github.com/facebook/time/ntp/chrony"
2021
"github.com/go-kit/log/level"
@@ -33,7 +34,7 @@ var (
3334
prometheus.NewDesc(
3435
prometheus.BuildFQName(namespace, trackingSubsystem, "info"),
3536
"Chrony tracking info",
36-
[]string{"tracking_refid", "tracking_address"},
37+
[]string{"tracking_address", "tracking_name", "tracking_refid"},
3738
nil,
3839
),
3940
prometheus.GaugeValue,
@@ -90,6 +91,18 @@ var (
9091
}
9192
)
9293

94+
func chronyFormatName(tracking chrony.Tracking) string {
95+
if tracking.IPAddr.IsUnspecified() {
96+
return chrony.RefidToString(tracking.RefID)
97+
} else {
98+
names, err := net.LookupAddr(tracking.IPAddr.String())
99+
if err != nil {
100+
return tracking.IPAddr.String()
101+
}
102+
return strings.Join(names, ",")
103+
}
104+
}
105+
93106
func (e Exporter) getTrackingMetrics(ch chan<- prometheus.Metric, client chrony.Client) {
94107
packet, err := client.Communicate(chrony.NewTrackingPacket())
95108
if err != nil {
@@ -104,7 +117,7 @@ func (e Exporter) getTrackingMetrics(ch chan<- prometheus.Metric, client chrony.
104117
return
105118
}
106119

107-
ch <- trackingInfo.mustNewConstMetric(1.0, chrony.RefidToString(tracking.RefID), tracking.IPAddr.String())
120+
ch <- trackingInfo.mustNewConstMetric(1.0, tracking.IPAddr.String(), chronyFormatName(tracking.Tracking), chrony.RefidAsHEX(tracking.RefID))
108121

109122
ch <- trackingLastOffset.mustNewConstMetric(tracking.LastOffset)
110123
level.Debug(e.logger).Log("msg", "Tracking Last Offset", "offset", tracking.LastOffset)

0 commit comments

Comments
 (0)