From de653dec233ace680629d109eee102e2701be597 Mon Sep 17 00:00:00 2001 From: henryxie Date: Thu, 16 Nov 2023 10:21:48 +0800 Subject: [PATCH] chore():cherry-pick k8s code from branch release/7.14 refs MONITOR-7364 --- metricbeat/helper/easyops/cou_metric_builder.go | 11 +++++------ metricbeat/helper/easyops/div_metric_builder.go | 11 +++++------ metricbeat/helper/easyops/sub_metric_builder.go | 10 +++++----- metricbeat/helper/easyops/sum_metric_builder.go | 10 +++++----- metricbeat/helper/easyops/types.go | 6 ++---- metricbeat/helper/easyops/util.go | 9 ++++----- metricbeat/module/kubernetes/node/node_test.go | 6 ------ 7 files changed, 26 insertions(+), 37 deletions(-) diff --git a/metricbeat/helper/easyops/cou_metric_builder.go b/metricbeat/helper/easyops/cou_metric_builder.go index b9656ce80a23..2cd07fb92506 100644 --- a/metricbeat/helper/easyops/cou_metric_builder.go +++ b/metricbeat/helper/easyops/cou_metric_builder.go @@ -2,9 +2,8 @@ package easyops import ( "fmt" + "github.com/elastic/elastic-agent-libs/mapstr" "strings" - - "github.com/elastic/beats/v7/libbeat/common" ) type couMetricBuilder struct { @@ -22,14 +21,14 @@ func newCouMetricBuilder(field string, originMetric []string, groupKeys []string } } -func (builder *couMetricBuilder) Build(events []common.MapStr) []common.MapStr { - var result []common.MapStr +func (builder *couMetricBuilder) Build(events []mapstr.M) []mapstr.M { + var result []mapstr.M eventMap := GroupEventsByKeys(events, builder.groupKeys) for _, es := range eventMap { if len(es) == 0 { continue } - rs := common.MapStr{} + rs := mapstr.M{} for _, groupKey := range builder.groupKeys { // GetValue success in GroupEventsByKeys val, _ := es[0].GetValue(groupKey) @@ -45,7 +44,7 @@ func (builder *couMetricBuilder) Build(events []common.MapStr) []common.MapStr { return result } -func (builder *couMetricBuilder) count(events []common.MapStr, originMetric []string, defaultValues map[string]interface{}) map[string]float64 { +func (builder *couMetricBuilder) count(events []mapstr.M, originMetric []string, defaultValues map[string]interface{}) map[string]float64 { counters := map[string]float64{} for field, defaultValue := range defaultValues { if value, ok := defaultValue.(float64); ok { diff --git a/metricbeat/helper/easyops/div_metric_builder.go b/metricbeat/helper/easyops/div_metric_builder.go index ca1c84c6dc2c..5c3f8c7224ed 100644 --- a/metricbeat/helper/easyops/div_metric_builder.go +++ b/metricbeat/helper/easyops/div_metric_builder.go @@ -1,9 +1,8 @@ package easyops import ( + "github.com/elastic/elastic-agent-libs/mapstr" "math" - - "github.com/elastic/beats/v7/libbeat/common" ) type divMetricBuilder struct { @@ -21,14 +20,14 @@ func newDivMetricBuilder(field string, originMetric []string, groupKeys []string } } -func (builder *divMetricBuilder) Build(events []common.MapStr) []common.MapStr { - var result []common.MapStr +func (builder *divMetricBuilder) Build(events []mapstr.M) []mapstr.M { + var result []mapstr.M eventMap := GroupEventsByKeys(events, builder.groupKeys) for _, es := range eventMap { if len(es) == 0 { continue } - rs := common.MapStr{} + rs := mapstr.M{} for _, groupKey := range builder.groupKeys { // GetValue success in GroupEventsByKeys val, _ := es[0].GetValue(groupKey) @@ -40,7 +39,7 @@ func (builder *divMetricBuilder) Build(events []common.MapStr) []common.MapStr { return result } -func (builder *divMetricBuilder) div(events []common.MapStr, originMetric []string) interface{} { +func (builder *divMetricBuilder) div(events []mapstr.M, originMetric []string) interface{} { var floatResult float64 = 0 MetricLoop: for index, metric := range originMetric { diff --git a/metricbeat/helper/easyops/sub_metric_builder.go b/metricbeat/helper/easyops/sub_metric_builder.go index 9f0ee1004c81..84534e0830c8 100644 --- a/metricbeat/helper/easyops/sub_metric_builder.go +++ b/metricbeat/helper/easyops/sub_metric_builder.go @@ -1,6 +1,6 @@ package easyops -import "github.com/elastic/beats/v7/libbeat/common" +import "github.com/elastic/elastic-agent-libs/mapstr" type subMetricBuilder struct { baseBuilderFields @@ -17,14 +17,14 @@ func newSubMetricBuilder(field string, originMetric []string, groupKeys []string } } -func (builder *subMetricBuilder) Build(events []common.MapStr) []common.MapStr { - var result []common.MapStr +func (builder *subMetricBuilder) Build(events []mapstr.M) []mapstr.M { + var result []mapstr.M eventMap := GroupEventsByKeys(events, builder.groupKeys) for _, es := range eventMap { if len(es) == 0 { continue } - rs := common.MapStr{} + rs := mapstr.M{} for _, groupKey := range builder.groupKeys { // GetValue success in GroupEventsByKeys val, _ := es[0].GetValue(groupKey) @@ -36,7 +36,7 @@ func (builder *subMetricBuilder) Build(events []common.MapStr) []common.MapStr { return result } -func (builder *subMetricBuilder) sub(events []common.MapStr, originMetric []string) interface{} { +func (builder *subMetricBuilder) sub(events []mapstr.M, originMetric []string) interface{} { var floatResult float64 = 0 for index, metric := range originMetric { for _, event := range events { diff --git a/metricbeat/helper/easyops/sum_metric_builder.go b/metricbeat/helper/easyops/sum_metric_builder.go index b5c99fc48d4f..a35863865e92 100644 --- a/metricbeat/helper/easyops/sum_metric_builder.go +++ b/metricbeat/helper/easyops/sum_metric_builder.go @@ -1,6 +1,6 @@ package easyops -import "github.com/elastic/beats/v7/libbeat/common" +import "github.com/elastic/elastic-agent-libs/mapstr" type sumMetricBuilder struct { baseBuilderFields @@ -17,14 +17,14 @@ func newSumMetricBuilder(field string, originMetric []string, groupKeys []string } } -func (builder *sumMetricBuilder) Build(events []common.MapStr) []common.MapStr { - var result []common.MapStr +func (builder *sumMetricBuilder) Build(events []mapstr.M) []mapstr.M { + var result []mapstr.M eventMap := GroupEventsByKeys(events, builder.groupKeys) for _, es := range eventMap { if len(es) == 0 { continue } - rs := common.MapStr{} + rs := mapstr.M{} for _, groupKey := range builder.groupKeys { // GetValue success in GroupEventsByKeys val, _ := es[0].GetValue(groupKey) @@ -36,7 +36,7 @@ func (builder *sumMetricBuilder) Build(events []common.MapStr) []common.MapStr { return result } -func (builder *sumMetricBuilder) sum(events []common.MapStr, originMetric []string) interface{} { +func (builder *sumMetricBuilder) sum(events []mapstr.M, originMetric []string) interface{} { var floatResult float64 = 0 for _, metric := range originMetric { for _, event := range events { diff --git a/metricbeat/helper/easyops/types.go b/metricbeat/helper/easyops/types.go index 0832ba394bb4..9b7bdcf1ac7f 100644 --- a/metricbeat/helper/easyops/types.go +++ b/metricbeat/helper/easyops/types.go @@ -1,8 +1,6 @@ package easyops -import ( - "github.com/elastic/beats/v7/libbeat/common" -) +import "github.com/elastic/elastic-agent-libs/mapstr" type AggregateType uint8 @@ -22,7 +20,7 @@ type AggregateMetricMap struct { } type AggregateMetricBuilder interface { - Build(events []common.MapStr) []common.MapStr + Build(events []mapstr.M) []mapstr.M } type baseBuilderFields struct { diff --git a/metricbeat/helper/easyops/util.go b/metricbeat/helper/easyops/util.go index 2c12ee451d13..8f4ab6f6a69e 100644 --- a/metricbeat/helper/easyops/util.go +++ b/metricbeat/helper/easyops/util.go @@ -2,12 +2,11 @@ package easyops import ( "fmt" + "github.com/elastic/elastic-agent-libs/mapstr" "strings" - - "github.com/elastic/beats/v7/libbeat/common" ) -func GenerateGroupValue(event common.MapStr, groupKeys []string) (string, error) { +func GenerateGroupValue(event mapstr.M, groupKeys []string) (string, error) { groupValues := make([]string, 0, len(groupKeys)) for _, groupKey := range groupKeys { value, err := event.GetValue(groupKey) @@ -19,8 +18,8 @@ func GenerateGroupValue(event common.MapStr, groupKeys []string) (string, error) return strings.Join(groupValues, ";"), nil } -func GroupEventsByKeys(events []common.MapStr, groupKeys []string) map[string][]common.MapStr { - result := map[string][]common.MapStr{} +func GroupEventsByKeys(events []mapstr.M, groupKeys []string) map[string][]mapstr.M { + result := map[string][]mapstr.M{} for _, event := range events { group, err := GenerateGroupValue(event, groupKeys) if err == nil { diff --git a/metricbeat/module/kubernetes/node/node_test.go b/metricbeat/module/kubernetes/node/node_test.go index 30695115fa07..c11f07263ded 100644 --- a/metricbeat/module/kubernetes/node/node_test.go +++ b/metricbeat/module/kubernetes/node/node_test.go @@ -55,12 +55,6 @@ func (s *NodeTestSuite) ReadTestFile(testFile string) []byte { return body } -//======= -// events, err := eventMapping(body, &prometheus.MetricsMapping{}) -// assert.NoError(t, err, "error mapping "+testFile) -// assert.Equal(t, len(events), 1) -//>>>>>>> 99ddfa11c9 (chore(): new k8s node metrics refs MONITOR-4095) - func (s *NodeTestSuite) TestEventMapping() { body := s.ReadTestFile(testFile) events, err := eventMapping(body, s.Logger, &prometheus.MetricsMapping{})