Skip to content

Commit c2e6478

Browse files
[Metricbeat][Azure]Check for metrics dimensions before matching two metrics together (#42591) (#42620)
* Check for metrics dimensions before matching two metrics together * Add test case for metrics with different dimensions (cherry picked from commit d9f5498) Co-authored-by: Michalis Katsoulis <[email protected]>
1 parent dee3ade commit c2e6478

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

x-pack/metricbeat/module/azure/client_utils.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func metricIsEmpty(metric armmonitor.MetricValue) bool {
9292
// matchMetrics will compare current metrics
9393
func matchMetrics(prevMet Metric, met Metric) bool {
9494
if prevMet.Namespace == met.Namespace && reflect.DeepEqual(prevMet.Names, met.Names) && prevMet.ResourceId == met.ResourceId &&
95-
prevMet.Aggregations == met.Aggregations && prevMet.TimeGrain == met.TimeGrain {
95+
prevMet.Aggregations == met.Aggregations && prevMet.TimeGrain == met.TimeGrain && reflect.DeepEqual(prevMet.Dimensions, met.Dimensions) {
9696
return true
9797
}
9898
return false

x-pack/metricbeat/module/azure/client_utils_test.go

+6
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,17 @@ func TestMatchMetrics(t *testing.T) {
7777
Values: []MetricValue{},
7878
TimeGrain: "1PM",
7979
}
80+
// match
8081
result := matchMetrics(prev, current)
8182
assert.True(t, result)
83+
// different resourceId, not match
8284
current.ResourceId = "id1"
8385
result = matchMetrics(prev, current)
8486
assert.False(t, result)
87+
// different dimension, not match
88+
current.Dimensions = []Dimension{{Name: "location", Value: "East Europe"}}
89+
result = matchMetrics(prev, current)
90+
assert.False(t, result)
8591
}
8692

8793
func TestMetricIsEmpty(t *testing.T) {

0 commit comments

Comments
 (0)