collector/sb-server-monitor: remove unnecessary infos as labels & add new servers per datacenter metric
continuous-integration/drone/push Build is failing Details

This commit is contained in:
Tom Neuber 2024-03-14 15:10:48 +01:00
parent 17b3b68435
commit baa3b631c6
Signed by: tom
GPG Key ID: F17EFE4272D89FF6
2 changed files with 30 additions and 30 deletions

View File

@ -40,6 +40,7 @@ func (c *Collector) Collect(ch chan<- prometheus.Metric) {
c.collectServersMetric(ch, c.Data)
c.collectServerCountMetric(ch, c.Data[0].Category, len(c.Data))
c.collectServerCountPerPriceMetric(ch, c.Data)
c.collectServerCountPerDatacenterMetric(ch, c.Data)
}
func (c *Collector) collectServerCountMetric(ch chan<- prometheus.Metric, category string, value int) {
@ -67,6 +68,22 @@ func (c *Collector) collectServerCountPerPriceMetric(ch chan<- prometheus.Metric
}
}
func (c *Collector) collectServerCountPerDatacenterMetric(ch chan<- prometheus.Metric, servers []*hrobot.SbServer) {
serverCache := make(map[string]int)
for _, server := range servers {
serverCache[server.Datacenter] += 1
}
for datacenter, amount := range serverCache {
ch <- prometheus.MustNewConstMetric(
metricServerCountPerDatacenter,
prometheus.GaugeValue,
float64(amount),
datacenter,
)
}
}
func (c *Collector) collectServersMetric(ch chan<- prometheus.Metric, servers []*hrobot.SbServer) {
for _, server := range servers {
ch <- prometheus.MustNewConstMetric(
@ -77,26 +94,11 @@ func (c *Collector) collectServersMetric(ch chan<- prometheus.Metric, servers []
server.Name,
server.Category,
server.Hardware.CPU,
fmt.Sprint(server.Hardware.Drives),
fmt.Sprint(server.Hardware.Memory),
fmt.Sprint(server.Hardware.ECC),
fmt.Sprint(server.Hardware.HighIO),
server.Datacenter,
fmt.Sprint(server.Description),
fmt.Sprint(server.Dist),
fmt.Sprint(server.Information),
fmt.Sprint(server.PriceInformation.Price),
fmt.Sprint(server.PriceInformation.FixedPrice),
fmt.Sprint(server.PriceInformation.NextReduce),
fmt.Sprint(server.PriceInformation.NextReduceTimestamp),
fmt.Sprint(server.DiskData.General),
fmt.Sprint(server.DiskData.HDD),
fmt.Sprint(server.DiskData.SATA),
fmt.Sprint(server.DiskData.NVMe),
fmt.Sprint(server.PriceInformation.SetupPrice),
fmt.Sprint(server.Specials),
fmt.Sprint(server.Network.Bandwidth),
server.Network.Traffic,
)
}
}

View File

@ -60,6 +60,19 @@ var (
nil,
)
metricServerCountPerDatacenter = prometheus.NewDesc(
prometheus.BuildFQName(
namespace,
"server",
"current_available_per_datacenter",
),
"total number of all current available servers per datacenter",
[]string{
metricLabelServerDatacenter,
},
nil,
)
metricServers = prometheus.NewDesc(
prometheus.BuildFQName(
namespace,
@ -72,26 +85,11 @@ var (
metricLabelServerName,
metricLabelServerCategory,
metricLabelServerCPU,
metricLabelServerDrives,
metricLabelServerMemory,
metricLabelServerECC,
metricLabelServerHighIO,
metricLabelServerDatacenter,
metricLabelServerDescription,
metricLabelServerDist,
metricLabelServerInformation,
metricLabelServerPrice,
metricLabelServerFixedPrice,
metricLabelServerNextReduce,
metricLabelServerNextReduceTimestamp,
metricLabelServerGeneralDrives,
metricLabelServerHDDs,
metricLabelServerSATAs,
metricLabelServerNVMes,
metricLabelServerSetupPrice,
metricLabelServerSpecials,
metricLabelServerBandwidth,
metricLabelServerTraffic,
},
nil,
)