From 129441607e6ae874f2dacecd4e9067527975a026 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Wed, 8 Apr 2020 19:53:25 +0200 Subject: [PATCH] Cherry-pick #17608 to 7.6: [Metricbeat] Fix "ID" event generator of Google Cloud module (#17612) --- CHANGELOG.next.asciidoc | 1 + .../module/googlecloud/stackdriver/timeseries.go | 13 +++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 19941583713..f09879be821 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -68,6 +68,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix diskio issue for windows 32 bit on disk_performance struct alignment. {issue}16680[16680] - Reduce memory usage in `elasticsearch/index` metricset. {issue}16503[16503] {pull}16538[16538] - Fix issue in Jolokia module when mbean contains multiple quoted properties. {issue}17375[17375] {pull}17374[17374] +- Fix "ID" event generator of Google Cloud module {issue}17160[17160] {pull}17608[17608] *Packetbeat* diff --git a/x-pack/metricbeat/module/googlecloud/stackdriver/timeseries.go b/x-pack/metricbeat/module/googlecloud/stackdriver/timeseries.go index aa5d2139915..3da2842b6a0 100644 --- a/x-pack/metricbeat/module/googlecloud/stackdriver/timeseries.go +++ b/x-pack/metricbeat/module/googlecloud/stackdriver/timeseries.go @@ -17,28 +17,29 @@ import ( func (m *MetricSet) timeSeriesGrouped(ctx context.Context, gcpService googlecloud.MetadataService, tss []*monitoringpb.TimeSeries, e *incomingFieldExtractor) (map[string][]KeyValuePoint, error) { eventGroups := make(map[string][]KeyValuePoint) - for _, ts := range tss { - if gcpService == nil { - gcpService = googlecloud.NewStackdriverMetadataServiceForTimeSeries(ts) - } + metadataService := gcpService + for _, ts := range tss { keyValues, err := e.extractTimeSeriesMetricValues(ts) if err != nil { return nil, err } sdCollectorInputData := googlecloud.NewStackdriverCollectorInputData(ts, m.config.ProjectID, m.config.Zone) + if gcpService == nil { + metadataService = googlecloud.NewStackdriverMetadataServiceForTimeSeries(ts) + } for i := range keyValues { sdCollectorInputData.Timestamp = &keyValues[i].Timestamp - id, err := gcpService.ID(ctx, sdCollectorInputData) + id, err := metadataService.ID(ctx, sdCollectorInputData) if err != nil { m.Logger().Errorf("error trying to retrieve ID from metric event '%v'", err) continue } - metadataCollectorData, err := gcpService.Metadata(ctx, sdCollectorInputData.TimeSeries) + metadataCollectorData, err := metadataService.Metadata(ctx, sdCollectorInputData.TimeSeries) if err != nil { m.Logger().Error("error trying to retrieve labels from metric event") continue