diff --git a/pkg/hostman/guestman/guesttasks.go b/pkg/hostman/guestman/guesttasks.go index 680c52af65..469b2d7da4 100644 --- a/pkg/hostman/guestman/guesttasks.go +++ b/pkg/hostman/guestman/guesttasks.go @@ -659,6 +659,12 @@ func (n *SGuestNetworkSyncTask) Start(callback func(...error)) { } n.addNicMacs = addNicMacs n.addNicConfs = addNicConfs + + // deploy nics configure before do add nics + allNics := append(n.guest.Desc.Nics, n.addNics...) + if err := n.guest.QgaDeployNicsConfigure(allNics); err != nil { + log.Errorf("failed do QgaDeployNicsConfigure %s", err) + } } n.delNicCnt = len(n.delNics) @@ -677,6 +683,7 @@ func (n *SGuestNetworkSyncTask) syncNetworkConf() { } else { func() { if len(n.addNicMacs) > 0 || n.delNicCnt > 0 { + // redeploy nics config after add/del nics if err := n.guest.QgaDeployNicsConfigure(n.guest.Desc.Nics); err != nil { log.Errorf("failed do QgaDeployNicsConfigure %s", err) return @@ -684,7 +691,7 @@ func (n *SGuestNetworkSyncTask) syncNetworkConf() { } if len(n.addNicMacs) > 0 { // try restart added nics, wait for added nic ready - time.Sleep(3 * time.Second) + time.Sleep(6 * time.Second) if err := n.qgaRestartAddedNics(); err != nil { log.Errorf("failed qgaRestartAddedNics %s", err) return diff --git a/pkg/hostman/hostmetrics/hostmetrics.go b/pkg/hostman/hostmetrics/hostmetrics.go index e38d1850d1..eb26e5c80d 100644 --- a/pkg/hostman/hostmetrics/hostmetrics.go +++ b/pkg/hostman/hostmetrics/hostmetrics.go @@ -470,6 +470,9 @@ type GuestMetrics struct { func (d *GuestMetrics) mapToStatStr(m map[string]interface{}) string { var statArr = []string{} for k, v := range m { + if vs, ok := v.(string); ok && len(vs) == 0 { + continue + } statArr = append(statArr, fmt.Sprintf("%s=%v", k, v)) } return strings.Join(statArr, ",") @@ -480,6 +483,9 @@ func (d *GuestMetrics) netioToTelegrafData(measurement string, tagStr string) [] for i := range d.VmNetio { netTagMap := d.VmNetio[i].ToTag() for k, v := range netTagMap { + if len(k) == 0 || len(v) == 0 { + continue + } tagStr = fmt.Sprintf("%s,%s=%s", tagStr, k, v) } res = append(res, fmt.Sprintf("%s,%s %s", measurement, tagStr, d.mapToStatStr(d.VmNetio[i].ToMap())))