Properly support PacketLoss and export as metric

This commit is contained in:
Diego Fernando Carrión 2024-10-20 14:47:10 +02:00
parent 33409f275e
commit 4ad2495de0
Signed by: CRThaze
GPG Key ID: 8279B79A1A7F8194

11
main.go
View File

@ -54,6 +54,13 @@ var (
},
labels,
)
packetLoss = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Name: "isp_packet_loss",
Help: "The packet loss of the network",
},
labels,
)
listenPort uint16
listenAddr string
@ -92,7 +99,7 @@ type SpeedTestResult struct {
Jitter float64
}
}
PacketLoss int
PacketLoss float64
ISP string
Interface struct {
InternalIP string
@ -121,6 +128,7 @@ func init() {
prometheus.MustRegister(uploadSpeed)
prometheus.MustRegister(downloadSpeed)
prometheus.MustRegister(pingLatency)
prometheus.MustRegister(packetLoss)
if lpEV, ok := os.LookupEnv(listenPortEnvVar); !ok {
listenPort = defaultListenPort
@ -215,6 +223,7 @@ func runTest() {
uploadSpeed.WithLabelValues(labelVals...).Set(uploadBandwidth)
downloadSpeed.WithLabelValues(labelVals...).Set(downloadBandwidth)
pingLatency.WithLabelValues(labelVals...).Set(result.Ping.Latency)
packetLoss.WithLabelValues(labelVals...).Set(result.PacketLoss)
}
func main() {