diff --git a/pkg/baremetal/cronjobs.go b/pkg/baremetal/cronjobs.go index 2e3e21e9cb..c08695c631 100644 --- a/pkg/baremetal/cronjobs.go +++ b/pkg/baremetal/cronjobs.go @@ -232,20 +232,26 @@ func (job *SSendMetricsJob) Do(ctx context.Context, now time.Time) error { return nil } powerMetrics, thermalMetrics, err := job.baremetal.fetchPowerThermalMetrics(ctx) + if err != nil { + return errors.Wrap(err, "fetchPowerThermalMetrics") + } tags := job.baremetal.getTags() - metrics := []influxdb.SMetricData{ - { + metrics := []influxdb.SMetricData{} + if len(powerMetrics) > 0 { + metrics = append(metrics, influxdb.SMetricData{ Name: "power", Tags: tags, Metrics: powerMetrics, Timestamp: now, - }, - { + }) + } + if len(thermalMetrics) > 0 { + metrics = append(metrics, influxdb.SMetricData{ Name: "thermal", Tags: tags, Metrics: thermalMetrics, Timestamp: now, - }, + }) } err = influxdb.SendMetrics(urls, "telegraf", metrics, false) if err != nil { diff --git a/pkg/baremetal/manager.go b/pkg/baremetal/manager.go index 3958737f67..9c6036c4d7 100644 --- a/pkg/baremetal/manager.go +++ b/pkg/baremetal/manager.go @@ -2382,7 +2382,11 @@ func (b *SBaremetalInstance) fetchPowerThermalMetrics(ctx context.Context) ([]in if err != nil { return nil, nil, errors.Wrap(err, "redfishApi.Thermal") } - powerMetrics := powers[0].ToMetrics() + + var powerMetrics []influxdb.SKeyValue + if len(powers) > 0 { + powerMetrics = powers[0].ToMetrics() + } thermalMetrics := make([]influxdb.SKeyValue, 0) for _, t := range thermals { thermalMetrics = append(thermalMetrics, t.ToMetric())