From 08ff9bab8f30ff900b44cc4c1f762306e2834e3b Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Wed, 8 Apr 2020 15:50:25 +0200 Subject: [PATCH] [Metricbeat] Fix "ID" event generator of Google Cloud module (#17608) Error is unrelated, merging (cherry picked from commit 755c1aee39786eb1bc8877828c098f322794bd97) --- 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 0e00a813b77..e1f478c2d27 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -193,6 +193,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix Unix socket path in memcached. {pull}17512[17512] - Fix vsphere VM dashboard host aggregation visualizations. {pull}17555[17555] - Metricbeat no longer needs to be started strictly after Logstash for `logstash-xpack` module to report correct data. {issue}17261[17261] {pull}17497[17497] +- 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 60a81c70265..fcf3184717c 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, m.config.Region) + 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