@@ -15,6 +15,7 @@ package collector
1515
1616import (
1717 "net"
18+ "strings"
1819
1920 "github.com/facebook/time/ntp/chrony"
2021 "github.com/go-kit/log/level"
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 ,
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+
93106func (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