diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index a2a6975cc56..a74e82024fc 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -150,6 +150,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