Skip to content

Commit

Permalink
re-added changes again
Browse files Browse the repository at this point in the history
  • Loading branch information
spidercensus committed Oct 6, 2023
1 parent d25ec56 commit f953470
Show file tree
Hide file tree
Showing 6 changed files with 102 additions and 60 deletions.
28 changes: 16 additions & 12 deletions receiver/googlecloudspannerreceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,12 @@ require (
github.com/ReneKroon/ttlcache/v2 v2.11.0
github.com/mitchellh/hashstructure v1.1.0
github.com/stretchr/testify v1.8.4
go.opentelemetry.io/collector/component v0.86.1-0.20231004185026-b5635a7a90d2
go.opentelemetry.io/collector/confmap v0.86.1-0.20231004185026-b5635a7a90d2
go.opentelemetry.io/collector/consumer v0.86.1-0.20231004185026-b5635a7a90d2
go.opentelemetry.io/collector/pdata v1.0.0-rcv0015.0.20231004185026-b5635a7a90d2
go.opentelemetry.io/collector/receiver v0.86.1-0.20231004185026-b5635a7a90d2
go.opentelemetry.io/collector/component v0.86.0
go.opentelemetry.io/collector/confmap v0.86.0
go.opentelemetry.io/collector/consumer v0.86.0
go.opentelemetry.io/collector/pdata v1.0.0-rcv0015
go.opentelemetry.io/collector/receiver v0.86.0
go.uber.org/multierr v1.11.0
go.uber.org/zap v1.26.0
google.golang.org/api v0.143.0
google.golang.org/grpc v1.58.2
Expand All @@ -31,6 +32,8 @@ require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/envoyproxy/go-control-plane v0.11.1 // indirect
github.com/envoyproxy/protoc-gen-validate v1.0.2 // indirect
github.com/go-logr/logr v1.2.4 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
Expand All @@ -49,13 +52,14 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/stretchr/objx v0.5.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/collector v0.86.1-0.20231004185026-b5635a7a90d2 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.86.1-0.20231004185026-b5635a7a90d2 // indirect
go.opentelemetry.io/collector/featuregate v1.0.0-rcv0015.0.20231004185026-b5635a7a90d2 // indirect
go.opentelemetry.io/otel v1.19.0 // indirect
go.opentelemetry.io/otel/metric v1.19.0 // indirect
go.opentelemetry.io/otel/trace v1.19.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.opentelemetry.io/collector v0.86.0 // indirect
go.opentelemetry.io/collector/config/configtelemetry v0.86.0 // indirect
go.opentelemetry.io/collector/featuregate v1.0.0-rcv0015 // indirect
go.opentelemetry.io/otel v1.18.0 // indirect
go.opentelemetry.io/otel/metric v1.18.0 // indirect
go.opentelemetry.io/otel/sdk v1.18.0 // indirect
go.opentelemetry.io/otel/sdk/metric v0.41.0 // indirect
go.opentelemetry.io/otel/trace v1.18.0 // indirect
golang.org/x/crypto v0.13.0 // indirect
golang.org/x/net v0.15.0 // indirect
golang.org/x/oauth2 v0.12.0 // indirect
Expand Down
63 changes: 35 additions & 28 deletions receiver/googlecloudspannerreceiver/go.sum

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import (
"context"
"fmt"

"go.opentelemetry.io/collector/receiver/scrapererror"
"go.uber.org/multierr"
"go.uber.org/zap"

"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver/internal/datasource"
Expand Down Expand Up @@ -70,17 +72,24 @@ func (databaseReader *DatabaseReader) Read(ctx context.Context) ([]*metadata.Met
databaseReader.logger.Debug("Executing read method for database",
zap.String("database", databaseReader.database.DatabaseID().ID()))

var result []*metadata.MetricsDataPoint
var (
result []*metadata.MetricsDataPoint
err error
)

for _, reader := range databaseReader.readers {
dataPoints, err := reader.Read(ctx)
if err != nil {
return nil, fmt.Errorf("cannot read data for data points databaseReader %q because of an error: %w",
reader.Name(), err)
dataPoints, lastErr := reader.Read(ctx)
if lastErr != nil {
err = multierr.Append(err, fmt.Errorf("cannot read data for data points databaseReader %q because of an error: %w",
reader.Name(), lastErr))
} else {
result = append(result, dataPoints...)
}
}

result = append(result, dataPoints...)
if len(result) > 0 && err != nil {
err = scrapererror.NewPartialScrapeError(err, len(multierr.Errors(err)))
}

return result, nil
return result, err
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ import (
"context"
"strings"

"go.opentelemetry.io/collector/receiver/scrapererror"
"go.uber.org/multierr"
"go.uber.org/zap"

"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver/internal/metadata"
Expand All @@ -33,18 +35,24 @@ func (projectReader *ProjectReader) Shutdown() {
}

func (projectReader *ProjectReader) Read(ctx context.Context) ([]*metadata.MetricsDataPoint, error) {
var result []*metadata.MetricsDataPoint
var (
result []*metadata.MetricsDataPoint
err error
)

for _, databaseReader := range projectReader.databaseReaders {
dataPoints, err := databaseReader.Read(ctx)
if err != nil {
return nil, err
dataPoints, readErr := databaseReader.Read(ctx)
err = multierr.Append(err, readErr)
if readErr == nil {
result = append(result, dataPoints...)
}
}

result = append(result, dataPoints...)
if len(result) > 0 && err != nil {
err = scrapererror.NewPartialScrapeError(err, len(multierr.Errors(err)))
}

return result, nil
return result, err
}

func (projectReader *ProjectReader) Name() string {
Expand Down
26 changes: 20 additions & 6 deletions receiver/googlecloudspannerreceiver/receiver.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ import (
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/pdata/pmetric"
"go.opentelemetry.io/collector/receiver"
"go.opentelemetry.io/collector/receiver/scrapererror"
"go.uber.org/multierr"
"go.uber.org/zap"

"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver/internal/datasource"
Expand Down Expand Up @@ -41,18 +43,30 @@ func newGoogleCloudSpannerReceiver(logger *zap.Logger, config *Config) *googleCl
}

func (r *googleCloudSpannerReceiver) Scrape(ctx context.Context) (pmetric.Metrics, error) {
var allMetricsDataPoints []*metadata.MetricsDataPoint
var (
allMetricsDataPoints []*metadata.MetricsDataPoint
err error
)

for _, projectReader := range r.projectReaders {
dataPoints, err := projectReader.Read(ctx)
if err != nil {
return pmetric.Metrics{}, err
dataPoints, readErr := projectReader.Read(ctx)
err = multierr.Append(err, readErr)
if err == nil {
allMetricsDataPoints = append(allMetricsDataPoints, dataPoints...)
}
}

result, buildErr := r.metricsBuilder.Build(allMetricsDataPoints)

if buildErr != nil {
err = multierr.Append(err, buildErr)
}

allMetricsDataPoints = append(allMetricsDataPoints, dataPoints...)
if result.MetricCount() > 0 && err != nil {
err = scrapererror.NewPartialScrapeError(err, len(multierr.Errors(err)))
}

return r.metricsBuilder.Build(allMetricsDataPoints)
return result, err
}

func (r *googleCloudSpannerReceiver) Start(ctx context.Context, _ component.Host) error {
Expand Down
2 changes: 1 addition & 1 deletion receiver/googlecloudspannerreceiver/receiver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func newMetricsBuilder(throwErrorOnShutdown bool) metadata.MetricsBuilder {
}

func (b *metricsBuilder) Build([]*metadata.MetricsDataPoint) (pmetric.Metrics, error) {
return pmetric.Metrics{}, nil
return pmetric.NewMetrics(), nil
}

func (b *metricsBuilder) Shutdown() error {
Expand Down

0 comments on commit f953470

Please sign in to comment.