diff --git a/x-pack/metricbeat/module/azure/client_utils.go b/x-pack/metricbeat/module/azure/client_utils.go index 114ccd95baf2..6c91f2edd286 100644 --- a/x-pack/metricbeat/module/azure/client_utils.go +++ b/x-pack/metricbeat/module/azure/client_utils.go @@ -92,7 +92,7 @@ func metricIsEmpty(metric armmonitor.MetricValue) bool { // matchMetrics will compare current metrics func matchMetrics(prevMet Metric, met Metric) bool { if prevMet.Namespace == met.Namespace && reflect.DeepEqual(prevMet.Names, met.Names) && prevMet.ResourceId == met.ResourceId && - prevMet.Aggregations == met.Aggregations && prevMet.TimeGrain == met.TimeGrain { + prevMet.Aggregations == met.Aggregations && prevMet.TimeGrain == met.TimeGrain && reflect.DeepEqual(prevMet.Dimensions, met.Dimensions) { return true } return false diff --git a/x-pack/metricbeat/module/azure/client_utils_test.go b/x-pack/metricbeat/module/azure/client_utils_test.go index 0087fc86aefd..40fe2da3bdfa 100644 --- a/x-pack/metricbeat/module/azure/client_utils_test.go +++ b/x-pack/metricbeat/module/azure/client_utils_test.go @@ -77,11 +77,17 @@ func TestMatchMetrics(t *testing.T) { Values: []MetricValue{}, TimeGrain: "1PM", } + // match result := matchMetrics(prev, current) assert.True(t, result) + // different resourceId, not match current.ResourceId = "id1" result = matchMetrics(prev, current) assert.False(t, result) + // different dimension, not match + current.Dimensions = []Dimension{{Name: "location", Value: "East Europe"}} + result = matchMetrics(prev, current) + assert.False(t, result) } func TestMetricIsEmpty(t *testing.T) {