Skip to content

Commit 3bc982f

Browse files
authored
Merge pull request #1228 from ioito/hotfix/qx-huawei-windows-metric
fix(huawei): windows metric query
2 parents 643f143 + 3a4b463 commit 3bc982f

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

pkg/multicloud/huawei/monitor.go

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,10 @@ package huawei
1616

1717
import (
1818
"fmt"
19-
"strings"
2019
"time"
2120

2221
"yunion.io/x/log"
2322
"yunion.io/x/pkg/errors"
24-
"yunion.io/x/pkg/util/osprofile"
2523

2624
api "yunion.io/x/cloudmux/pkg/apis/compute"
2725
"yunion.io/x/cloudmux/pkg/cloudprovider"
@@ -84,6 +82,9 @@ func (self *SHuaweiClient) getServerMetrics(opts *cloudprovider.MetricListOption
8482
}
8583
result := []cloudprovider.MetricValues{}
8684
for i := range metricData {
85+
if len(metricData[i].Datapoints) == 0 {
86+
continue
87+
}
8788
ret := cloudprovider.MetricValues{
8889
Id: opts.ResourceId,
8990
Unit: metricData[i].Unit,
@@ -129,9 +130,6 @@ func (self *SHuaweiClient) getServerMetrics(opts *cloudprovider.MetricListOption
129130
}
130131

131132
func (self *SHuaweiClient) getServerAgentMetrics(opts *cloudprovider.MetricListOptions) ([]cloudprovider.MetricValues, error) {
132-
if strings.ToLower(opts.OsType) == strings.ToLower(osprofile.OS_TYPE_WINDOWS) {
133-
return []cloudprovider.MetricValues{}, nil
134-
}
135133
params := map[string]interface{}{
136134
"from": opts.StartTime.UnixMilli(),
137135
"to": opts.EndTime.UnixMilli(),
@@ -141,6 +139,8 @@ func (self *SHuaweiClient) getServerAgentMetrics(opts *cloudprovider.MetricListO
141139
metrics := []interface{}{}
142140
namespace, dimesionName, metricNames := "AGT.ECS", "instance_id", []string{
143141
"mem_usedPercent",
142+
"cpu_usage",
143+
"disk_usedPercent",
144144
}
145145
for _, metricName := range metricNames {
146146
metrics = append(metrics, map[string]interface{}{
@@ -166,6 +166,9 @@ func (self *SHuaweiClient) getServerAgentMetrics(opts *cloudprovider.MetricListO
166166
}
167167
result := []cloudprovider.MetricValues{}
168168
for i := range metricData {
169+
if len(metricData[i].Datapoints) == 0 {
170+
continue
171+
}
169172
ret := cloudprovider.MetricValues{
170173
Id: opts.ResourceId,
171174
Unit: metricData[i].Unit,
@@ -175,6 +178,8 @@ func (self *SHuaweiClient) getServerAgentMetrics(opts *cloudprovider.MetricListO
175178
switch metricData[i].MetricName {
176179
case "mem_usedPercent":
177180
ret.MetricType = cloudprovider.VM_METRIC_TYPE_MEM_USAGE
181+
case "cpu_usage":
182+
ret.MetricType = cloudprovider.VM_METRIC_TYPE_CPU_USAGE
178183
case "disk_usedPercent":
179184
ret.MetricType = cloudprovider.VM_METRIC_TYPE_DISK_USAGE
180185
default:
@@ -237,6 +242,9 @@ func (self *SHuaweiClient) getRedisMetrics(opts *cloudprovider.MetricListOptions
237242
}
238243
result := []cloudprovider.MetricValues{}
239244
for i := range metricData {
245+
if len(metricData[i].Datapoints) == 0 {
246+
continue
247+
}
240248
ret := cloudprovider.MetricValues{
241249
Id: opts.ResourceId,
242250
Unit: metricData[i].Unit,
@@ -333,6 +341,9 @@ func (self *SHuaweiClient) getRdsMetrics(opts *cloudprovider.MetricListOptions)
333341
}
334342
result := []cloudprovider.MetricValues{}
335343
for i := range metricData {
344+
if len(metricData[i].Datapoints) == 0 {
345+
continue
346+
}
336347
ret := cloudprovider.MetricValues{
337348
Id: opts.ResourceId,
338349
Unit: metricData[i].Unit,
@@ -422,6 +433,9 @@ func (self *SHuaweiClient) getBucketMetrics(opts *cloudprovider.MetricListOption
422433
}
423434
result := []cloudprovider.MetricValues{}
424435
for i := range metricData {
436+
if len(metricData[i].Datapoints) == 0 {
437+
continue
438+
}
425439
ret := cloudprovider.MetricValues{
426440
Id: opts.ResourceId,
427441
Unit: metricData[i].Unit,
@@ -503,6 +517,9 @@ func (self *SHuaweiClient) getLoadbalancerMetrics(opts *cloudprovider.MetricList
503517
}
504518
result := []cloudprovider.MetricValues{}
505519
for i := range metricData {
520+
if len(metricData[i].Datapoints) == 0 {
521+
continue
522+
}
506523
ret := cloudprovider.MetricValues{
507524
Id: opts.ResourceId,
508525
Unit: metricData[i].Unit,
@@ -556,6 +573,9 @@ func (self *SHuaweiClient) getModelartsPoolMetrics(opts *cloudprovider.MetricLis
556573
}
557574
result := []cloudprovider.MetricValues{}
558575
for i := range metricData {
576+
if len(metricData[i].Datapoints) == 0 {
577+
continue
578+
}
559579
isMB := false
560580
if metricData[i].Datapoints[0].Unit == "Megabytes" {
561581
isMB = true

0 commit comments

Comments
 (0)