diff --git a/.golangci.yml b/.golangci.yml index 7e2ed99fa097e..db726af0138cc 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -108,8 +108,7 @@ linters-settings: list-type: denylist include-go-root: true packages-with-error-message: - # See https://github.com/open-telemetry/opentelemetry-collector/issues/5200 for rationale - - sync/atomic: "Use go.uber.org/atomic instead of sync/atomic" + - go.uber.org/atomic: "Use 'sync/atomic' instead of go.uber.org/atomic" - github.com/pkg/errors: "Use 'errors' or 'fmt' instead of github.com/pkg/errors" - github.com/hashicorp/go-multierror: "Use go.uber.org/multierr instead of github.com/hashicorp/go-multierror" # Add a different guard rule so that we can ignore tests. diff --git a/cmd/telemetrygen/go.mod b/cmd/telemetrygen/go.mod index 7368b2028e570..f4103ec13bace 100644 --- a/cmd/telemetrygen/go.mod +++ b/cmd/telemetrygen/go.mod @@ -18,7 +18,6 @@ require ( go.opentelemetry.io/otel/sdk v1.14.0 go.opentelemetry.io/otel/sdk/metric v0.37.0 go.opentelemetry.io/otel/trace v1.14.0 - go.uber.org/atomic v1.10.0 go.uber.org/zap v1.24.0 golang.org/x/time v0.3.0 google.golang.org/grpc v1.53.0 @@ -41,6 +40,7 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.37.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/proto/otlp v0.19.0 // indirect + go.uber.org/atomic v1.7.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect diff --git a/cmd/telemetrygen/go.sum b/cmd/telemetrygen/go.sum index 4a218990d447a..5e6bd2bc4440e 100644 --- a/cmd/telemetrygen/go.sum +++ b/cmd/telemetrygen/go.sum @@ -230,8 +230,8 @@ go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqe go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.10.0 h1:9qC72Qh0+3MqyJbAn8YU5xVq1frD8bn3JtD2oXtafVQ= -go.uber.org/atomic v1.10.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI= diff --git a/cmd/telemetrygen/internal/logs/logs.go b/cmd/telemetrygen/internal/logs/logs.go index 7fea9378aecdc..f1cf7fabd3ef8 100644 --- a/cmd/telemetrygen/internal/logs/logs.go +++ b/cmd/telemetrygen/internal/logs/logs.go @@ -18,13 +18,13 @@ import ( "context" "fmt" "sync" + "sync/atomic" "time" "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/plog/plogotlp" "go.opentelemetry.io/otel/sdk/resource" semconv "go.opentelemetry.io/otel/semconv/v1.4.0" - "go.uber.org/atomic" "go.uber.org/zap" "golang.org/x/time/rate" "google.golang.org/grpc" @@ -98,9 +98,11 @@ func Run(c *Config, exp exporter, logger *zap.Logger) error { } wg := sync.WaitGroup{} - running := atomic.NewBool(true) res := resource.NewWithAttributes(semconv.SchemaURL, c.GetAttributes()...) + running := &atomic.Bool{} + running.Store(true) + for i := 0; i < c.WorkerCount; i++ { wg.Add(1) w := worker{ diff --git a/cmd/telemetrygen/internal/logs/worker.go b/cmd/telemetrygen/internal/logs/worker.go index 95748ee86a175..a4023c6b01c65 100644 --- a/cmd/telemetrygen/internal/logs/worker.go +++ b/cmd/telemetrygen/internal/logs/worker.go @@ -17,12 +17,12 @@ package logs import ( "context" "sync" + "sync/atomic" "time" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/otel/sdk/resource" - "go.uber.org/atomic" "go.uber.org/zap" "golang.org/x/time/rate" ) diff --git a/cmd/telemetrygen/internal/metrics/metrics.go b/cmd/telemetrygen/internal/metrics/metrics.go index 82f3bd0059eba..55215e6c402b9 100644 --- a/cmd/telemetrygen/internal/metrics/metrics.go +++ b/cmd/telemetrygen/internal/metrics/metrics.go @@ -18,6 +18,7 @@ import ( "context" "fmt" "sync" + "sync/atomic" "time" semconv "go.opentelemetry.io/collector/semconv/v1.13.0" @@ -25,7 +26,6 @@ import ( "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp" sdkmetric "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/resource" - "go.uber.org/atomic" "go.uber.org/zap" "golang.org/x/time/rate" "google.golang.org/grpc" @@ -105,9 +105,11 @@ func Run(c *Config, exp sdkmetric.Exporter, logger *zap.Logger) error { } wg := sync.WaitGroup{} - running := atomic.NewBool(true) res := resource.NewWithAttributes(semconv.SchemaURL, c.GetAttributes()...) + running := &atomic.Bool{} + running.Store(true) + for i := 0; i < c.WorkerCount; i++ { wg.Add(1) w := worker{ diff --git a/cmd/telemetrygen/internal/metrics/worker.go b/cmd/telemetrygen/internal/metrics/worker.go index 3612fa617d361..e831c3052ed05 100644 --- a/cmd/telemetrygen/internal/metrics/worker.go +++ b/cmd/telemetrygen/internal/metrics/worker.go @@ -17,12 +17,12 @@ package metrics import ( "context" "sync" + "sync/atomic" "time" sdkmetric "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/metricdata" "go.opentelemetry.io/otel/sdk/resource" - "go.uber.org/atomic" "go.uber.org/zap" "golang.org/x/time/rate" ) diff --git a/cmd/telemetrygen/internal/traces/traces.go b/cmd/telemetrygen/internal/traces/traces.go index 27446dffb140d..758f577a60cf0 100644 --- a/cmd/telemetrygen/internal/traces/traces.go +++ b/cmd/telemetrygen/internal/traces/traces.go @@ -18,6 +18,7 @@ import ( "context" "fmt" "sync" + "sync/atomic" "time" "go.opentelemetry.io/otel" @@ -28,7 +29,6 @@ import ( "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" semconv "go.opentelemetry.io/otel/semconv/v1.4.0" - "go.uber.org/atomic" "go.uber.org/zap" "golang.org/x/time/rate" "google.golang.org/grpc" @@ -127,7 +127,9 @@ func Run(c *Config, logger *zap.Logger) error { } wg := sync.WaitGroup{} - running := atomic.NewBool(true) + + running := &atomic.Bool{} + running.Store(true) for i := 0; i < c.WorkerCount; i++ { wg.Add(1) diff --git a/cmd/telemetrygen/internal/traces/worker.go b/cmd/telemetrygen/internal/traces/worker.go index 686c3fdd5ed74..3d6ae1cf7e497 100644 --- a/cmd/telemetrygen/internal/traces/worker.go +++ b/cmd/telemetrygen/internal/traces/worker.go @@ -17,6 +17,7 @@ package traces // import "github.com/open-telemetry/opentelemetry-collector-cont import ( "context" "sync" + "sync/atomic" "time" "go.opentelemetry.io/otel" @@ -24,7 +25,6 @@ import ( "go.opentelemetry.io/otel/propagation" semconv "go.opentelemetry.io/otel/semconv/v1.4.0" "go.opentelemetry.io/otel/trace" - "go.uber.org/atomic" "go.uber.org/zap" "golang.org/x/time/rate" ) diff --git a/exporter/carbonexporter/exporter_test.go b/exporter/carbonexporter/exporter_test.go index 84c2d0ca15701..0378248f37876 100644 --- a/exporter/carbonexporter/exporter_test.go +++ b/exporter/carbonexporter/exporter_test.go @@ -24,6 +24,7 @@ import ( "runtime" "strconv" "sync" + "sync/atomic" "testing" "time" @@ -34,7 +35,6 @@ import ( "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" conventions "go.opentelemetry.io/collector/semconv/v1.9.0" - "go.uber.org/atomic" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/common/testutil" ) @@ -187,7 +187,7 @@ func Test_connPool_Concurrency(t *testing.T) { concurrentWriters := 3 writesPerRoutine := 3 - doneFlag := atomic.NewBool(false) + doneFlag := &atomic.Bool{} defer func() { doneFlag.Store(true) }() diff --git a/exporter/carbonexporter/go.mod b/exporter/carbonexporter/go.mod index 50212e1e0a990..99f70ed04ede2 100644 --- a/exporter/carbonexporter/go.mod +++ b/exporter/carbonexporter/go.mod @@ -10,7 +10,6 @@ require ( go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 ) require ( @@ -36,6 +35,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect go.uber.org/zap v1.24.0 // indirect golang.org/x/net v0.8.0 // indirect diff --git a/exporter/clickhouseexporter/exporter_metrics_test.go b/exporter/clickhouseexporter/exporter_metrics_test.go index f4604f662032a..7697c7e9a9da3 100644 --- a/exporter/clickhouseexporter/exporter_metrics_test.go +++ b/exporter/clickhouseexporter/exporter_metrics_test.go @@ -19,23 +19,23 @@ import ( "database/sql/driver" "fmt" "strings" + "sync/atomic" "testing" "time" "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" - "go.uber.org/atomic" "go.uber.org/zap/zaptest" ) func TestExporter_pushMetricsData(t *testing.T) { t.Parallel() t.Run("push success", func(t *testing.T) { - var items atomic.Int32 + items := &atomic.Int32{} initClickhouseTestServer(t, func(query string, values []driver.Value) error { if strings.HasPrefix(query, "INSERT") { - items.Inc() + items.Add(1) } return nil }) @@ -56,10 +56,10 @@ func TestExporter_pushMetricsData(t *testing.T) { require.Error(t, err) }) t.Run("check Resource metadata and scope metadata", func(t *testing.T) { - var items atomic.Int32 + items := &atomic.Int32{} initClickhouseTestServer(t, func(query string, values []driver.Value) error { if strings.HasPrefix(query, "INSERT") { - items.Inc() + items.Add(1) if strings.HasPrefix(query, "INSERT INTO otel_metrics_exponential_histogram") { require.Equal(t, "Resource SchemaUrl 1", values[1]) require.Equal(t, "Scope name 1", values[2]) diff --git a/exporter/clickhouseexporter/go.mod b/exporter/clickhouseexporter/go.mod index 9347334ece918..1e4a86141a8ce 100644 --- a/exporter/clickhouseexporter/go.mod +++ b/exporter/clickhouseexporter/go.mod @@ -12,7 +12,6 @@ require ( go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 ) @@ -51,6 +50,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect diff --git a/exporter/elasticsearchexporter/go.mod b/exporter/elasticsearchexporter/go.mod index 6db13578bb9e9..5096f07e906c9 100644 --- a/exporter/elasticsearchexporter/go.mod +++ b/exporter/elasticsearchexporter/go.mod @@ -14,7 +14,6 @@ require ( go.opentelemetry.io/collector/confmap v0.73.0 go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 ) @@ -41,6 +40,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect diff --git a/exporter/elasticsearchexporter/logs_exporter_test.go b/exporter/elasticsearchexporter/logs_exporter_test.go index e1bb11a6559c5..bf47b5aaa69d9 100644 --- a/exporter/elasticsearchexporter/logs_exporter_test.go +++ b/exporter/elasticsearchexporter/logs_exporter_test.go @@ -21,12 +21,12 @@ import ( "net/http" "runtime" "sync" + "sync/atomic" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.uber.org/atomic" "go.uber.org/zap" "go.uber.org/zap/zaptest" ) @@ -199,13 +199,13 @@ func TestExporter_PushEvent(t *testing.T) { handlers := map[string]func(attempts *atomic.Int64) bulkHandler{ "fail http request": func(attempts *atomic.Int64) bulkHandler { return func([]itemRequest) ([]itemResponse, error) { - attempts.Inc() + attempts.Add(1) return nil, &httpTestError{message: "oops"} } }, "fail item": func(attempts *atomic.Int64) bulkHandler { return func(docs []itemRequest) ([]itemResponse, error) { - attempts.Inc() + attempts.Add(1) return itemsReportStatus(docs, http.StatusTooManyRequests) } }, @@ -217,7 +217,7 @@ func TestExporter_PushEvent(t *testing.T) { for name, configurer := range configurations { t.Run(name, func(t *testing.T) { t.Parallel() - attempts := atomic.NewInt64(0) + attempts := &atomic.Int64{} server := newESTestServer(t, handler(attempts)) testConfig := configurer(server.URL) @@ -233,9 +233,9 @@ func TestExporter_PushEvent(t *testing.T) { }) t.Run("do not retry invalid request", func(t *testing.T) { - attempts := atomic.NewInt64(0) + attempts := &atomic.Int64{} server := newESTestServer(t, func(docs []itemRequest) ([]itemResponse, error) { - attempts.Inc() + attempts.Add(1) return nil, &httpTestError{message: "oops", status: http.StatusBadRequest} }) @@ -267,9 +267,9 @@ func TestExporter_PushEvent(t *testing.T) { }) t.Run("do not retry bad item", func(t *testing.T) { - attempts := atomic.NewInt64(0) + attempts := &atomic.Int64{} server := newESTestServer(t, func(docs []itemRequest) ([]itemResponse, error) { - attempts.Inc() + attempts.Add(1) return itemsReportStatus(docs, http.StatusBadRequest) }) diff --git a/exporter/elasticsearchexporter/traces_exporter_test.go b/exporter/elasticsearchexporter/traces_exporter_test.go index a5dd965c433b6..1f06cad317ca9 100644 --- a/exporter/elasticsearchexporter/traces_exporter_test.go +++ b/exporter/elasticsearchexporter/traces_exporter_test.go @@ -22,12 +22,12 @@ import ( "os" "runtime" "sync" + "sync/atomic" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.uber.org/atomic" "go.uber.org/zap" "go.uber.org/zap/zaptest" ) @@ -187,13 +187,13 @@ func TestExporter_PushTraceRecord(t *testing.T) { handlers := map[string]func(attempts *atomic.Int64) bulkHandler{ "fail http request": func(attempts *atomic.Int64) bulkHandler { return func([]itemRequest) ([]itemResponse, error) { - attempts.Inc() + attempts.Add(1) return nil, &httpTestError{message: "oops"} } }, "fail item": func(attempts *atomic.Int64) bulkHandler { return func(docs []itemRequest) ([]itemResponse, error) { - attempts.Inc() + attempts.Add(1) return itemsReportStatus(docs, http.StatusTooManyRequests) } }, @@ -205,7 +205,7 @@ func TestExporter_PushTraceRecord(t *testing.T) { for name, configurer := range configurations { t.Run(name, func(t *testing.T) { t.Parallel() - attempts := atomic.NewInt64(0) + attempts := &atomic.Int64{} server := newESTestServer(t, handler(attempts)) testConfig := configurer(server.URL) @@ -221,9 +221,9 @@ func TestExporter_PushTraceRecord(t *testing.T) { }) t.Run("do not retry invalid request", func(t *testing.T) { - attempts := atomic.NewInt64(0) + attempts := &atomic.Int64{} server := newESTestServer(t, func(docs []itemRequest) ([]itemResponse, error) { - attempts.Inc() + attempts.Add(1) return nil, &httpTestError{message: "oops", status: http.StatusBadRequest} }) @@ -255,9 +255,9 @@ func TestExporter_PushTraceRecord(t *testing.T) { }) t.Run("do not retry bad item", func(t *testing.T) { - attempts := atomic.NewInt64(0) + attempts := &atomic.Int64{} server := newESTestServer(t, func(docs []itemRequest) ([]itemResponse, error) { - attempts.Inc() + attempts.Add(1) return itemsReportStatus(docs, http.StatusBadRequest) }) diff --git a/exporter/loadbalancingexporter/go.mod b/exporter/loadbalancingexporter/go.mod index 89bd24d16bf21..9001786a03c20 100644 --- a/exporter/loadbalancingexporter/go.mod +++ b/exporter/loadbalancingexporter/go.mod @@ -14,7 +14,6 @@ require ( go.opentelemetry.io/collector/exporter/otlpexporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 ) @@ -72,6 +71,7 @@ require ( go.opentelemetry.io/otel/sdk v1.14.0 // indirect go.opentelemetry.io/otel/sdk/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect diff --git a/exporter/loadbalancingexporter/log_exporter_test.go b/exporter/loadbalancingexporter/log_exporter_test.go index ea66819231799..e8306bc0b73c6 100644 --- a/exporter/loadbalancingexporter/log_exporter_test.go +++ b/exporter/loadbalancingexporter/log_exporter_test.go @@ -20,6 +20,7 @@ import ( "fmt" "net" "sync" + "sync/atomic" "testing" "time" @@ -33,7 +34,6 @@ import ( "go.opentelemetry.io/collector/exporter/exportertest" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/plog" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -319,7 +319,7 @@ func TestRollingUpdatesWhenConsumeLogs(t *testing.T) { }) resolverCh := make(chan struct{}, 1) - counter := atomic.NewInt64(0) + counter := &atomic.Int64{} resolve := [][]net.IPAddr{ { {IP: net.IPv4(127, 0, 0, 1)}, @@ -333,7 +333,7 @@ func TestRollingUpdatesWhenConsumeLogs(t *testing.T) { res.resolver = &mockDNSResolver{ onLookupIPAddr: func(context.Context, string) ([]net.IPAddr, error) { defer func() { - counter.Inc() + counter.Add(1) }() if counter.Load() <= 2 { @@ -369,18 +369,18 @@ func TestRollingUpdatesWhenConsumeLogs(t *testing.T) { lb.res = res p.loadBalancer = lb - counter1 := atomic.NewInt64(0) - counter2 := atomic.NewInt64(0) + counter1 := &atomic.Int64{} + counter2 := &atomic.Int64{} defaultExporters := map[string]component.Component{ "127.0.0.1:4317": newMockLogsExporter(func(ctx context.Context, ld plog.Logs) error { - counter1.Inc() + counter1.Add(1) // simulate an unreachable backend time.Sleep(10 * time.Second) return nil }, ), "127.0.0.2:4317": newMockLogsExporter(func(ctx context.Context, ld plog.Logs) error { - counter2.Inc() + counter2.Add(1) return nil }, ), diff --git a/exporter/loadbalancingexporter/resolver_dns_test.go b/exporter/loadbalancingexporter/resolver_dns_test.go index 0c6ecfa595c8c..c8499b976e0e0 100644 --- a/exporter/loadbalancingexporter/resolver_dns_test.go +++ b/exporter/loadbalancingexporter/resolver_dns_test.go @@ -19,12 +19,12 @@ import ( "errors" "net" "sync" + "sync/atomic" "testing" "time" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -135,9 +135,9 @@ func TestOnChange(t *testing.T) { } // test - counter := atomic.NewInt64(0) + counter := &atomic.Int64{} res.onChange(func(endpoints []string) { - counter.Inc() + counter.Add(1) }) require.NoError(t, res.start(context.Background())) defer func() { @@ -192,7 +192,7 @@ func TestPeriodicallyResolve(t *testing.T) { res, err := newDNSResolver(zap.NewNop(), "service-1", "", 10*time.Millisecond, 1*time.Second) require.NoError(t, err) - counter := atomic.NewInt64(0) + counter := &atomic.Int64{} resolve := [][]net.IPAddr{ { {IP: net.IPv4(127, 0, 0, 1)}, @@ -208,7 +208,7 @@ func TestPeriodicallyResolve(t *testing.T) { res.resolver = &mockDNSResolver{ onLookupIPAddr: func(context.Context, string) ([]net.IPAddr, error) { defer func() { - counter.Inc() + counter.Add(1) }() // for second call, return the second result if counter.Load() == 2 { @@ -252,11 +252,11 @@ func TestPeriodicallyResolveFailure(t *testing.T) { expectedErr := errors.New("some expected error") wg := sync.WaitGroup{} - counter := atomic.NewInt64(0) + counter := &atomic.Int64{} resolve := []net.IPAddr{{IP: net.IPv4(127, 0, 0, 1)}} res.resolver = &mockDNSResolver{ onLookupIPAddr: func(context.Context, string) ([]net.IPAddr, error) { - counter.Inc() + counter.Add(1) // count down at most two times if counter.Load() <= 2 { diff --git a/exporter/loadbalancingexporter/trace_exporter_test.go b/exporter/loadbalancingexporter/trace_exporter_test.go index d386b6ec0e2c9..c41749a2b543d 100644 --- a/exporter/loadbalancingexporter/trace_exporter_test.go +++ b/exporter/loadbalancingexporter/trace_exporter_test.go @@ -22,6 +22,7 @@ import ( "net" "path/filepath" "sync" + "sync/atomic" "testing" "time" @@ -38,7 +39,6 @@ import ( "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/ptrace" conventions "go.opentelemetry.io/collector/semconv/v1.9.0" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -420,7 +420,7 @@ func TestRollingUpdatesWhenConsumeTraces(t *testing.T) { }) resolverCh := make(chan struct{}, 1) - counter := atomic.NewInt64(0) + counter := &atomic.Int64{} resolve := [][]net.IPAddr{ { {IP: net.IPv4(127, 0, 0, 1)}, @@ -434,7 +434,7 @@ func TestRollingUpdatesWhenConsumeTraces(t *testing.T) { res.resolver = &mockDNSResolver{ onLookupIPAddr: func(context.Context, string) ([]net.IPAddr, error) { defer func() { - counter.Inc() + counter.Add(1) }() if counter.Load() <= 2 { @@ -470,18 +470,18 @@ func TestRollingUpdatesWhenConsumeTraces(t *testing.T) { lb.res = res p.loadBalancer = lb - counter1 := atomic.NewInt64(0) - counter2 := atomic.NewInt64(0) + counter1 := &atomic.Int64{} + counter2 := &atomic.Int64{} defaultExporters := map[string]component.Component{ "127.0.0.1:4317": newMockTracesExporter(func(ctx context.Context, td ptrace.Traces) error { - counter1.Inc() + counter1.Add(1) // simulate an unreachable backend time.Sleep(10 * time.Second) return nil }, ), "127.0.0.2:4317": newMockTracesExporter(func(ctx context.Context, td ptrace.Traces) error { - counter2.Inc() + counter2.Add(1) return nil }, ), diff --git a/exporter/prometheusremotewriteexporter/go.mod b/exporter/prometheusremotewriteexporter/go.mod index 3e010305a582b..843d0e1fb76af 100644 --- a/exporter/prometheusremotewriteexporter/go.mod +++ b/exporter/prometheusremotewriteexporter/go.mod @@ -20,7 +20,6 @@ require ( go.opentelemetry.io/collector/consumer v0.73.0 go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 ) @@ -54,6 +53,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect diff --git a/exporter/prometheusremotewriteexporter/wal.go b/exporter/prometheusremotewriteexporter/wal.go index d65d4f9655980..a3324183280b8 100644 --- a/exporter/prometheusremotewriteexporter/wal.go +++ b/exporter/prometheusremotewriteexporter/wal.go @@ -20,13 +20,13 @@ import ( "fmt" "path/filepath" "sync" + "sync/atomic" "time" "github.com/fsnotify/fsnotify" "github.com/gogo/protobuf/proto" "github.com/prometheus/prometheus/prompb" "github.com/tidwall/wal" - "go.uber.org/atomic" "go.uber.org/multierr" "go.uber.org/zap" ) @@ -81,8 +81,8 @@ func newWAL(walConfig *WALConfig, exportSink func(context.Context, []*prompb.Wri exportSink: exportSink, walConfig: walConfig, stopChan: make(chan struct{}), - rWALIndex: atomic.NewUint64(0), - wWALIndex: atomic.NewUint64(0), + rWALIndex: &atomic.Uint64{}, + wWALIndex: &atomic.Uint64{}, }, nil } diff --git a/exporter/signalfxexporter/go.mod b/exporter/signalfxexporter/go.mod index 51f1853952b06..ccae80c7c6ef2 100644 --- a/exporter/signalfxexporter/go.mod +++ b/exporter/signalfxexporter/go.mod @@ -23,7 +23,6 @@ require ( go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 golang.org/x/sys v0.6.0 @@ -71,6 +70,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/text v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect diff --git a/exporter/signalfxexporter/internal/dimensions/dimclient_test.go b/exporter/signalfxexporter/internal/dimensions/dimclient_test.go index 5deb7d2453cfe..020818868db85 100644 --- a/exporter/signalfxexporter/internal/dimensions/dimclient_test.go +++ b/exporter/signalfxexporter/internal/dimensions/dimclient_test.go @@ -23,11 +23,11 @@ import ( "net/url" "regexp" "strconv" + "sync/atomic" "testing" "time" "github.com/stretchr/testify/require" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -101,7 +101,7 @@ func makeHandler(dimCh chan<- dim, forcedResp *atomic.Int32) http.HandlerFunc { func setup(t *testing.T) (*DimensionClient, chan dim, *atomic.Int32, context.CancelFunc) { dimCh := make(chan dim) - forcedResp := atomic.NewInt32(0) + forcedResp := &atomic.Int32{} server := httptest.NewServer(makeHandler(dimCh, forcedResp)) serverURL, err := url.Parse(server.URL) diff --git a/exporter/signalfxexporter/internal/dimensions/requests.go b/exporter/signalfxexporter/internal/dimensions/requests.go index eb9b7cf3c5229..6d5145047de26 100644 --- a/exporter/signalfxexporter/internal/dimensions/requests.go +++ b/exporter/signalfxexporter/internal/dimensions/requests.go @@ -33,8 +33,7 @@ import ( "fmt" "io" "net/http" - - "go.uber.org/atomic" + "sync/atomic" ) // ReqSender is a direct port of @@ -57,7 +56,7 @@ func NewReqSender(ctx context.Context, client *http.Client, requests: make(chan *http.Request), workerCount: workerCount, ctx: ctx, - runningWorkers: atomic.NewInt64(0), + runningWorkers: &atomic.Int64{}, } } diff --git a/exporter/skywalkingexporter/go.mod b/exporter/skywalkingexporter/go.mod index b727ce71d4250..2ce778a0ff09c 100644 --- a/exporter/skywalkingexporter/go.mod +++ b/exporter/skywalkingexporter/go.mod @@ -14,7 +14,6 @@ require ( go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 google.golang.org/grpc v1.53.0 skywalking.apache.org/repo/goapi v0.0.0-20211122071111-ffc517fbfe21 ) @@ -44,6 +43,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect go.uber.org/zap v1.24.0 // indirect golang.org/x/net v0.8.0 // indirect diff --git a/exporter/skywalkingexporter/skywalking_benchmark_test.go b/exporter/skywalkingexporter/skywalking_benchmark_test.go index d1e3b81170825..48e4a645f865e 100644 --- a/exporter/skywalkingexporter/skywalking_benchmark_test.go +++ b/exporter/skywalkingexporter/skywalking_benchmark_test.go @@ -21,6 +21,7 @@ import ( "net" "strconv" "sync" + "sync/atomic" "testing" "time" @@ -31,7 +32,6 @@ import ( "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/exporter/exporterhelper" "go.opentelemetry.io/collector/exporter/exportertest" - "go.uber.org/atomic" "google.golang.org/grpc" v3 "skywalking.apache.org/repo/goapi/collect/common/v3" logpb "skywalking.apache.org/repo/goapi/collect/logging/v3" @@ -40,7 +40,7 @@ import ( ) var ( - consumerNum = atomic.NewInt32(0) + consumerNum = &atomic.Int32{} sumNum = 10000 ) @@ -200,7 +200,7 @@ func (h *mockLogHandler2) Collect(stream logpb.LogReportService_CollectServer) e return stream.SendAndClose(&v3.Commands{}) } if err == nil { - consumerNum.Inc() + consumerNum.Add(1) if consumerNum.Load() >= int32(sumNum) { end := time.Now().UnixMilli() h.stopChan <- end diff --git a/exporter/sumologicexporter/go.mod b/exporter/sumologicexporter/go.mod index b5bd97c22b171..90713ab8fd7f2 100644 --- a/exporter/sumologicexporter/go.mod +++ b/exporter/sumologicexporter/go.mod @@ -9,7 +9,6 @@ require ( go.opentelemetry.io/collector/consumer v0.73.0 go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 ) @@ -43,6 +42,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/zap v1.24.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect diff --git a/exporter/sumologicexporter/sender_test.go b/exporter/sumologicexporter/sender_test.go index 40e4fe9494cfe..84c8da04b3815 100644 --- a/exporter/sumologicexporter/sender_test.go +++ b/exporter/sumologicexporter/sender_test.go @@ -21,6 +21,7 @@ import ( "net/http" "net/http/httptest" "strings" + "sync/atomic" "testing" "github.com/stretchr/testify/assert" @@ -29,7 +30,6 @@ import ( "go.opentelemetry.io/collector/config/confighttp" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/plog" - "go.uber.org/atomic" ) type senderTest struct { @@ -39,7 +39,7 @@ type senderTest struct { } func prepareSenderTest(t *testing.T, cb []func(w http.ResponseWriter, req *http.Request)) *senderTest { - reqCounter := atomic.NewInt32(0) + reqCounter := &atomic.Int32{} // generate a test server so we can capture and inspect the request testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { if len(cb) == 0 { @@ -48,7 +48,7 @@ func prepareSenderTest(t *testing.T, cb []func(w http.ResponseWriter, req *http. if c := int(reqCounter.Load()); assert.Greater(t, len(cb), c) { cb[c](w, req) - reqCounter.Inc() + reqCounter.Add(1) } })) diff --git a/exporter/tanzuobservabilityexporter/go.mod b/exporter/tanzuobservabilityexporter/go.mod index 9bc3b55260131..471716954f6f7 100644 --- a/exporter/tanzuobservabilityexporter/go.mod +++ b/exporter/tanzuobservabilityexporter/go.mod @@ -13,7 +13,6 @@ require ( go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 ) @@ -74,6 +73,7 @@ require ( go.opentelemetry.io/otel/sdk v1.14.0 // indirect go.opentelemetry.io/otel/sdk/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect diff --git a/exporter/tanzuobservabilityexporter/metrics.go b/exporter/tanzuobservabilityexporter/metrics.go index e12e4298a6ae1..b9cf6040e83b9 100644 --- a/exporter/tanzuobservabilityexporter/metrics.go +++ b/exporter/tanzuobservabilityexporter/metrics.go @@ -20,13 +20,13 @@ import ( "fmt" "math" "strconv" + "sync/atomic" "github.com/wavefronthq/wavefront-sdk-go/histogram" "github.com/wavefronthq/wavefront-sdk-go/senders" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" - "go.uber.org/atomic" "go.uber.org/multierr" "go.uber.org/zap" ) @@ -208,7 +208,7 @@ func logMissingValue(metric pmetric.Metric, settings component.TelemetrySettings namef := zap.String(metricNameString, metric.Name()) typef := zap.String(metricTypeString, metric.Type().String()) settings.Logger.Debug("Metric missing value", namef, typef) - count.Inc() + count.Add(1) } // getValue gets the floating point value out of a NumberDataPoint @@ -267,7 +267,7 @@ func newGaugeConsumer( return &gaugeConsumer{ sender: sender, settings: settings, - missingValues: atomic.NewInt64(0), + missingValues: &atomic.Int64{}, } } @@ -306,7 +306,7 @@ func newSumConsumer( return &sumConsumer{ sender: sender, settings: settings, - missingValues: atomic.NewInt64(0), + missingValues: &atomic.Int64{}, } } @@ -359,8 +359,8 @@ type histogramReporting struct { func newHistogramReporting(settings component.TelemetrySettings) *histogramReporting { return &histogramReporting{ settings: settings, - malformedHistograms: atomic.NewInt64(0), - noAggregationTemporality: atomic.NewInt64(0), + malformedHistograms: &atomic.Int64{}, + noAggregationTemporality: &atomic.Int64{}, } } @@ -379,14 +379,14 @@ func (r *histogramReporting) NoAggregationTemporality() int64 { func (r *histogramReporting) LogMalformed(metric pmetric.Metric) { namef := zap.String(metricNameString, metric.Name()) r.settings.Logger.Debug("Malformed histogram", namef) - r.malformedHistograms.Inc() + r.malformedHistograms.Add(1) } // LogNoAggregationTemporality logs seeing a histogram metric with no aggregation temporality func (r *histogramReporting) LogNoAggregationTemporality(metric pmetric.Metric) { namef := zap.String(metricNameString, metric.Name()) r.settings.Logger.Debug("histogram metric missing aggregation temporality", namef) - r.noAggregationTemporality.Inc() + r.noAggregationTemporality.Add(1) } // Report sends the counts in this instance to wavefront. diff --git a/extension/pprofextension/go.mod b/extension/pprofextension/go.mod index 7ffbb318063c3..e1ccef233d409 100644 --- a/extension/pprofextension/go.mod +++ b/extension/pprofextension/go.mod @@ -8,7 +8,6 @@ require ( go.opentelemetry.io/collector v0.73.0 go.opentelemetry.io/collector/component v0.73.0 go.opentelemetry.io/collector/confmap v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/zap v1.24.0 ) @@ -27,6 +26,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/extension/pprofextension/pprofextension.go b/extension/pprofextension/pprofextension.go index 4d70a6b67777d..959347a7ae579 100644 --- a/extension/pprofextension/pprofextension.go +++ b/extension/pprofextension/pprofextension.go @@ -23,13 +23,13 @@ import ( "os" "runtime" "runtime/pprof" + "sync/atomic" "go.opentelemetry.io/collector/component" - "go.uber.org/atomic" "go.uber.org/zap" ) -var running = atomic.NewBool(false) +var running = &atomic.Bool{} type pprofExtension struct { config Config diff --git a/pkg/stanza/go.mod b/pkg/stanza/go.mod index 8667a43f73c3e..11b874fb2563b 100644 --- a/pkg/stanza/go.mod +++ b/pkg/stanza/go.mod @@ -19,7 +19,6 @@ require ( go.opentelemetry.io/collector/featuregate v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/receiver v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 golang.org/x/sys v0.6.0 @@ -49,6 +48,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5 // indirect golang.org/x/net v0.8.0 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect diff --git a/pkg/stanza/operator/parser/regex/cache.go b/pkg/stanza/operator/parser/regex/cache.go index 918a5b21066ea..6df12e7dcb440 100644 --- a/pkg/stanza/operator/parser/regex/cache.go +++ b/pkg/stanza/operator/parser/regex/cache.go @@ -17,9 +17,8 @@ package regex // import "github.com/open-telemetry/opentelemetry-collector-contr import ( "math" "sync" + "sync/atomic" "time" - - "go.uber.org/atomic" ) // cache allows operators to cache a value and look it up later @@ -141,7 +140,7 @@ func newStartedAtomicLimiter(max uint64, interval uint64) *atomicLimiter { } a := &atomicLimiter{ - count: atomic.NewUint64(0), + count: &atomic.Uint64{}, max: max, interval: time.Second * time.Duration(interval), } @@ -160,7 +159,7 @@ type atomicLimiter struct { start sync.Once } -var _ limiter = &atomicLimiter{count: atomic.NewUint64(0)} +var _ limiter = &atomicLimiter{count: &atomic.Uint64{}} // init initializes the limiter func (l *atomicLimiter) init() { @@ -185,7 +184,7 @@ func (l *atomicLimiter) increment() { if l.count.Load() == l.max { return } - l.count.Inc() + l.count.Add(1) } // Returns true if the cache is currently throttled, meaning a high diff --git a/pkg/stanza/operator/parser/regex/cache_test.go b/pkg/stanza/operator/parser/regex/cache_test.go index 9c721c1b3eb46..004e9895fabd2 100644 --- a/pkg/stanza/operator/parser/regex/cache_test.go +++ b/pkg/stanza/operator/parser/regex/cache_test.go @@ -16,11 +16,11 @@ package regex import ( "strconv" + "sync/atomic" "testing" "time" "github.com/stretchr/testify/require" - "go.uber.org/atomic" ) func TestNewMemoryCache(t *testing.T) { @@ -224,9 +224,11 @@ func TestThrottledLimiter(t *testing.T) { // Limiter with a count higher than the max, which will force // it to be throttled by default. Also note that the init method // has not been called yet, so the reset go routine is not running + count := &atomic.Uint64{} + count.Add(max + 1) l := atomicLimiter{ max: max, - count: atomic.NewUint64(max + 1), + count: count, interval: 1, } diff --git a/processor/cumulativetodeltaprocessor/go.mod b/processor/cumulativetodeltaprocessor/go.mod index b2b4fa5733160..e35aeef61d003 100644 --- a/processor/cumulativetodeltaprocessor/go.mod +++ b/processor/cumulativetodeltaprocessor/go.mod @@ -12,7 +12,6 @@ require ( go.opentelemetry.io/collector/consumer v0.73.0 go.opentelemetry.io/collector/featuregate v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 - go.uber.org/atomic v1.10.0 go.uber.org/zap v1.24.0 ) @@ -35,6 +34,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect diff --git a/processor/cumulativetodeltaprocessor/internal/tracking/tracker_test.go b/processor/cumulativetodeltaprocessor/internal/tracking/tracker_test.go index 2e4e1240c6f63..0c53d26edee7a 100644 --- a/processor/cumulativetodeltaprocessor/internal/tracking/tracker_test.go +++ b/processor/cumulativetodeltaprocessor/internal/tracking/tracker_test.go @@ -16,6 +16,7 @@ package tracking import ( "context" + "sync/atomic" "testing" "time" @@ -23,7 +24,6 @@ import ( "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -213,7 +213,7 @@ func Test_metricTracker_removeStale(t *testing.T) { func Test_metricTracker_sweeper(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) sweepEvent := make(chan pcommon.Timestamp) - closed := atomic.NewBool(false) + closed := &atomic.Bool{} onSweep := func(staleBefore pcommon.Timestamp) { sweepEvent <- staleBefore diff --git a/processor/groupbytraceprocessor/event_test.go b/processor/groupbytraceprocessor/event_test.go index d388195df52fe..4b450e4ba54ec 100644 --- a/processor/groupbytraceprocessor/event_test.go +++ b/processor/groupbytraceprocessor/event_test.go @@ -18,6 +18,7 @@ import ( "errors" "strings" "sync" + "sync/atomic" "testing" "time" @@ -27,7 +28,6 @@ import ( "go.opencensus.io/stats/view" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -357,8 +357,8 @@ func TestEventShutdown(t *testing.T) { wg := sync.WaitGroup{} wg.Add(1) - traceReceivedFired := atomic.NewInt64(0) - traceExpiredFired := atomic.NewInt64(0) + traceReceivedFired := &atomic.Int64{} + traceExpiredFired := &atomic.Int64{} em := newEventMachine(zap.NewNop(), 50, 1, 1_000) em.onTraceReceived = func(tracesWithID, *eventMachineWorker) error { traceReceivedFired.Store(1) diff --git a/processor/groupbytraceprocessor/go.mod b/processor/groupbytraceprocessor/go.mod index 91a9de0debbef..7e95b03a77043 100644 --- a/processor/groupbytraceprocessor/go.mod +++ b/processor/groupbytraceprocessor/go.mod @@ -10,7 +10,6 @@ require ( go.opentelemetry.io/collector/component v0.73.0 go.opentelemetry.io/collector/consumer v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 ) @@ -37,6 +36,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect golang.org/x/text v0.8.0 // indirect diff --git a/processor/tailsamplingprocessor/go.mod b/processor/tailsamplingprocessor/go.mod index 20100dfd51152..4cc174249c711 100644 --- a/processor/tailsamplingprocessor/go.mod +++ b/processor/tailsamplingprocessor/go.mod @@ -14,7 +14,6 @@ require ( go.opentelemetry.io/collector/consumer v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/otel/trace v1.14.0 - go.uber.org/atomic v1.10.0 go.uber.org/goleak v1.2.1 go.uber.org/zap v1.24.0 ) @@ -38,6 +37,7 @@ require ( go.opentelemetry.io/collector/receiver v0.73.0 // indirect go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect diff --git a/processor/tailsamplingprocessor/internal/idbatcher/id_batcher_test.go b/processor/tailsamplingprocessor/internal/idbatcher/id_batcher_test.go index 3a154bc1e4cf3..9b1ed222a4c96 100644 --- a/processor/tailsamplingprocessor/internal/idbatcher/id_batcher_test.go +++ b/processor/tailsamplingprocessor/internal/idbatcher/id_batcher_test.go @@ -18,12 +18,12 @@ import ( "encoding/binary" "runtime" "sync" + "sync/atomic" "testing" "time" "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/pdata/pcommon" - "go.uber.org/atomic" ) func TestBatcherNew(t *testing.T) { @@ -67,12 +67,12 @@ func BenchmarkConcurrentEnqueue(b *testing.B) { ticker := time.NewTicker(100 * time.Millisecond) defer ticker.Stop() - ticked := atomic.NewInt64(0) - received := atomic.NewInt64(0) + ticked := &atomic.Int64{} + received := &atomic.Int64{} go func() { for range ticker.C { batch, _ := batcher.CloseCurrentAndTakeFirstBatch() - ticked.Inc() + ticked.Add(1) received.Add(int64(len(batch))) } }() diff --git a/processor/tailsamplingprocessor/internal/sampling/composite_test.go b/processor/tailsamplingprocessor/internal/sampling/composite_test.go index d0da5aa805136..9c5e8347df096 100644 --- a/processor/tailsamplingprocessor/internal/sampling/composite_test.go +++ b/processor/tailsamplingprocessor/internal/sampling/composite_test.go @@ -14,6 +14,7 @@ package sampling import ( + "sync/atomic" "testing" "time" @@ -21,7 +22,6 @@ import ( "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -36,7 +36,9 @@ func (f FakeTimeProvider) getCurSecond() int64 { var traceID = pcommon.TraceID([16]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x96, 0x9A, 0x89, 0x55, 0x57, 0x1A, 0x3F}) func createTrace() *TraceData { - trace := &TraceData{SpanCount: atomic.NewInt64(1), ReceivedBatches: ptrace.NewTraces()} + spanCount := &atomic.Int64{} + spanCount.Store(1) + trace := &TraceData{SpanCount: spanCount, ReceivedBatches: ptrace.NewTraces()} return trace } @@ -55,9 +57,11 @@ func newTraceWithKV(traceID pcommon.TraceID, key string, val int64) *TraceData { )) span.Attributes().PutInt(key, val) + spanCount := &atomic.Int64{} + spanCount.Store(1) return &TraceData{ ReceivedBatches: traces, - SpanCount: atomic.NewInt64(1), + SpanCount: spanCount, } } diff --git a/processor/tailsamplingprocessor/internal/sampling/policy.go b/processor/tailsamplingprocessor/internal/sampling/policy.go index b0ea321494d6c..371deaf6ea244 100644 --- a/processor/tailsamplingprocessor/internal/sampling/policy.go +++ b/processor/tailsamplingprocessor/internal/sampling/policy.go @@ -16,11 +16,11 @@ package sampling // import "github.com/open-telemetry/opentelemetry-collector-co import ( "sync" + "sync/atomic" "time" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/atomic" ) // TraceData stores the sampling related trace data. diff --git a/processor/tailsamplingprocessor/internal/sampling/rate_limiting_test.go b/processor/tailsamplingprocessor/internal/sampling/rate_limiting_test.go index fdfd52971cdef..5ea025aefde51 100644 --- a/processor/tailsamplingprocessor/internal/sampling/rate_limiting_test.go +++ b/processor/tailsamplingprocessor/internal/sampling/rate_limiting_test.go @@ -15,11 +15,11 @@ package sampling import ( + "sync/atomic" "testing" "github.com/stretchr/testify/assert" "go.opentelemetry.io/collector/pdata/pcommon" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -29,25 +29,32 @@ func TestRateLimiter(t *testing.T) { rateLimiter := NewRateLimiting(zap.NewNop(), 3) // Trace span count greater than spans per second - trace.SpanCount = atomic.NewInt64(10) + traceSpanCount := &atomic.Int64{} + traceSpanCount.Store(10) + trace.SpanCount = traceSpanCount decision, err := rateLimiter.Evaluate(traceID, trace) assert.Nil(t, err) assert.Equal(t, decision, NotSampled) // Trace span count equal to spans per second - trace.SpanCount = atomic.NewInt64(3) + traceSpanCount = &atomic.Int64{} + traceSpanCount.Store(3) + trace.SpanCount = traceSpanCount decision, err = rateLimiter.Evaluate(traceID, trace) assert.Nil(t, err) assert.Equal(t, decision, NotSampled) // Trace span count less than spans per second - trace.SpanCount = atomic.NewInt64(2) + traceSpanCount = &atomic.Int64{} + traceSpanCount.Store(2) + trace.SpanCount = traceSpanCount decision, err = rateLimiter.Evaluate(traceID, trace) assert.Nil(t, err) assert.Equal(t, decision, Sampled) // Trace span count less than spans per second - trace.SpanCount = atomic.NewInt64(0) + traceSpanCount = &atomic.Int64{} + trace.SpanCount = traceSpanCount decision, err = rateLimiter.Evaluate(traceID, trace) assert.Nil(t, err) assert.Equal(t, decision, Sampled) diff --git a/processor/tailsamplingprocessor/internal/sampling/span_count_sampler_test.go b/processor/tailsamplingprocessor/internal/sampling/span_count_sampler_test.go index 8ae8b08faf9a2..eda3c4a60c764 100644 --- a/processor/tailsamplingprocessor/internal/sampling/span_count_sampler_test.go +++ b/processor/tailsamplingprocessor/internal/sampling/span_count_sampler_test.go @@ -15,12 +15,12 @@ package sampling import ( + "sync/atomic" "testing" "github.com/stretchr/testify/assert" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -262,8 +262,10 @@ func newTraceWithMultipleSpans(numberSpans []int32) *TraceData { totalNumberSpans += numberSpans[i] } + traceSpanCount := &atomic.Int64{} + traceSpanCount.Store(int64(totalNumberSpans)) return &TraceData{ ReceivedBatches: traces, - SpanCount: atomic.NewInt64(int64(totalNumberSpans)), + SpanCount: traceSpanCount, } } diff --git a/processor/tailsamplingprocessor/processor.go b/processor/tailsamplingprocessor/processor.go index f58dea1c8ead9..5510de704fde9 100644 --- a/processor/tailsamplingprocessor/processor.go +++ b/processor/tailsamplingprocessor/processor.go @@ -19,6 +19,7 @@ import ( "fmt" "runtime" "sync" + "sync/atomic" "time" "go.opencensus.io/stats" @@ -28,7 +29,6 @@ import ( "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/ptrace" "go.opentelemetry.io/collector/processor" - "go.uber.org/atomic" "go.uber.org/zap" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/timeutils" @@ -108,7 +108,7 @@ func newTracesProcessor(logger *zap.Logger, nextConsumer consumer.Traces, cfg Co decisionBatcher: inBatcher, policies: policies, tickerFrequency: time.Second, - numTracesOnMap: atomic.NewUint64(0), + numTracesOnMap: &atomic.Uint64{}, } tsp.policyTicker = &timeutils.PolicyTicker{OnTickFunc: tsp.samplingPolicyOnTick} @@ -334,10 +334,12 @@ func (tsp *tailSamplingSpanProcessor) processTraces(resourceSpans ptrace.Resourc } d, loaded := tsp.idToTrace.Load(id) if !loaded { + spanCount := &atomic.Int64{} + spanCount.Store(lenSpans) d, loaded = tsp.idToTrace.LoadOrStore(id, &sampling.TraceData{ Decisions: initialDecisions, ArrivalTime: time.Now(), - SpanCount: atomic.NewInt64(lenSpans), + SpanCount: spanCount, ReceivedBatches: ptrace.NewTraces(), }) } diff --git a/processor/tailsamplingprocessor/processor_test.go b/processor/tailsamplingprocessor/processor_test.go index cb753de9426a5..d8136638c57ab 100644 --- a/processor/tailsamplingprocessor/processor_test.go +++ b/processor/tailsamplingprocessor/processor_test.go @@ -20,6 +20,7 @@ import ( "errors" "sort" "sync" + "sync/atomic" "testing" "time" @@ -28,7 +29,6 @@ import ( "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/atomic" "go.uber.org/zap" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/timeutils" @@ -197,7 +197,7 @@ func TestSamplingPolicyTypicalPath(t *testing.T) { deleteChan: make(chan pcommon.TraceID, maxSize), policyTicker: mtt, tickerFrequency: 100 * time.Millisecond, - numTracesOnMap: atomic.NewUint64(0), + numTracesOnMap: &atomic.Uint64{}, } require.NoError(t, tsp.Start(context.Background(), componenttest.NewNopHost())) defer func() { @@ -258,7 +258,7 @@ func TestSamplingPolicyInvertSampled(t *testing.T) { deleteChan: make(chan pcommon.TraceID, maxSize), policyTicker: mtt, tickerFrequency: 100 * time.Millisecond, - numTracesOnMap: atomic.NewUint64(0), + numTracesOnMap: &atomic.Uint64{}, } require.NoError(t, tsp.Start(context.Background(), componenttest.NewNopHost())) defer func() { @@ -326,7 +326,7 @@ func TestSamplingMultiplePolicies(t *testing.T) { deleteChan: make(chan pcommon.TraceID, maxSize), policyTicker: mtt, tickerFrequency: 100 * time.Millisecond, - numTracesOnMap: atomic.NewUint64(0), + numTracesOnMap: &atomic.Uint64{}, } require.NoError(t, tsp.Start(context.Background(), componenttest.NewNopHost())) defer func() { @@ -389,7 +389,7 @@ func TestSamplingPolicyDecisionNotSampled(t *testing.T) { deleteChan: make(chan pcommon.TraceID, maxSize), policyTicker: mtt, tickerFrequency: 100 * time.Millisecond, - numTracesOnMap: atomic.NewUint64(0), + numTracesOnMap: &atomic.Uint64{}, } require.NoError(t, tsp.Start(context.Background(), componenttest.NewNopHost())) defer func() { @@ -452,7 +452,7 @@ func TestSamplingPolicyDecisionInvertNotSampled(t *testing.T) { deleteChan: make(chan pcommon.TraceID, maxSize), policyTicker: mtt, tickerFrequency: 100 * time.Millisecond, - numTracesOnMap: atomic.NewUint64(0), + numTracesOnMap: &atomic.Uint64{}, } require.NoError(t, tsp.Start(context.Background(), componenttest.NewNopHost())) defer func() { @@ -515,7 +515,7 @@ func TestLateArrivingSpansAssignedOriginalDecision(t *testing.T) { deleteChan: make(chan pcommon.TraceID, maxSize), policyTicker: &manualTTicker{}, tickerFrequency: 100 * time.Millisecond, - numTracesOnMap: atomic.NewUint64(0), + numTracesOnMap: &atomic.Uint64{}, } require.NoError(t, tsp.Start(context.Background(), componenttest.NewNopHost())) defer func() { @@ -582,7 +582,7 @@ func TestMultipleBatchesAreCombinedIntoOne(t *testing.T) { deleteChan: make(chan pcommon.TraceID, maxSize), policyTicker: mtt, tickerFrequency: 100 * time.Millisecond, - numTracesOnMap: atomic.NewUint64(0), + numTracesOnMap: &atomic.Uint64{}, } require.NoError(t, tsp.Start(context.Background(), componenttest.NewNopHost())) defer func() { diff --git a/receiver/googlecloudpubsubreceiver/go.mod b/receiver/googlecloudpubsubreceiver/go.mod index 31a8fa56fcc16..0a7c410c38cdb 100644 --- a/receiver/googlecloudpubsubreceiver/go.mod +++ b/receiver/googlecloudpubsubreceiver/go.mod @@ -12,7 +12,6 @@ require ( go.opentelemetry.io/collector/exporter v0.73.0 go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/receiver v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/zap v1.24.0 google.golang.org/api v0.111.0 google.golang.org/grpc v1.53.0 @@ -48,6 +47,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.6.0 // indirect diff --git a/receiver/googlecloudpubsubreceiver/internal/handler.go b/receiver/googlecloudpubsubreceiver/internal/handler.go index 421567e89906e..ec1e73ffafb07 100644 --- a/receiver/googlecloudpubsubreceiver/internal/handler.go +++ b/receiver/googlecloudpubsubreceiver/internal/handler.go @@ -20,11 +20,11 @@ import ( "fmt" "io" "sync" + "sync/atomic" "time" pubsub "cloud.google.com/go/pubsub/apiv1" "cloud.google.com/go/pubsub/apiv1/pubsubpb" - "go.uber.org/atomic" "go.uber.org/zap" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" diff --git a/receiver/jmxreceiver/go.mod b/receiver/jmxreceiver/go.mod index dccceea8dfc6f..a329285a99815 100644 --- a/receiver/jmxreceiver/go.mod +++ b/receiver/jmxreceiver/go.mod @@ -15,7 +15,6 @@ require ( go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/receiver v0.73.0 go.opentelemetry.io/collector/receiver/otlpreceiver v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/zap v1.24.0 ) @@ -70,6 +69,7 @@ require ( go.opentelemetry.io/otel v1.14.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/goleak v1.2.1 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/net v0.8.0 // indirect diff --git a/receiver/jmxreceiver/internal/subprocess/subprocess.go b/receiver/jmxreceiver/internal/subprocess/subprocess.go index 23b08badffa57..4bb63c0212542 100644 --- a/receiver/jmxreceiver/internal/subprocess/subprocess.go +++ b/receiver/jmxreceiver/internal/subprocess/subprocess.go @@ -22,10 +22,10 @@ import ( "os" "os/exec" "sync" + "sync/atomic" "syscall" "time" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -163,9 +163,11 @@ type processReturned struct { } func newProcessReturned() *processReturned { + isOpen := &atomic.Bool{} + isOpen.Store(true) pr := processReturned{ ReturnedChan: make(chan error), - isOpen: atomic.NewBool(true), + isOpen: isOpen, lock: &sync.Mutex{}, } return &pr diff --git a/receiver/k8sclusterreceiver/go.mod b/receiver/k8sclusterreceiver/go.mod index a3a402eb82d90..e345f3e6560c1 100644 --- a/receiver/k8sclusterreceiver/go.mod +++ b/receiver/k8sclusterreceiver/go.mod @@ -19,7 +19,6 @@ require ( go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/receiver v0.73.0 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/zap v1.24.0 k8s.io/api v0.26.2 k8s.io/apimachinery v0.26.2 @@ -78,6 +77,7 @@ require ( go.opentelemetry.io/otel/sdk v1.14.0 // indirect go.opentelemetry.io/otel/sdk/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/oauth2 v0.6.0 // indirect diff --git a/receiver/k8sclusterreceiver/receiver_test.go b/receiver/k8sclusterreceiver/receiver_test.go index be549de6d5fae..4c2be1c30b8f1 100644 --- a/receiver/k8sclusterreceiver/receiver_test.go +++ b/receiver/k8sclusterreceiver/receiver_test.go @@ -16,6 +16,7 @@ package k8sclusterreceiver import ( "context" + "sync/atomic" "testing" "time" @@ -27,7 +28,6 @@ import ( "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/obsreport/obsreporttest" - "go.uber.org/atomic" corev1 "k8s.io/api/core/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" @@ -143,7 +143,7 @@ func TestReceiverWithManyResources(t *testing.T) { var numCalls *atomic.Int32 var consumeMetadataInvocation = func() { if numCalls != nil { - numCalls.Inc() + numCalls.Add(1) } } @@ -156,7 +156,7 @@ func TestReceiverWithMetadata(t *testing.T) { client := newFakeClientWithAllResources() next := &mockExporterWithK8sMetadata{MetricsSink: new(consumertest.MetricsSink)} - numCalls = atomic.NewInt32(0) + numCalls = &atomic.Int32{} r := setupReceiver(client, nil, next, 10*time.Second, tt) r.config.MetadataExporters = []string{"nop/withmetadata"} diff --git a/receiver/k8sclusterreceiver/watcher.go b/receiver/k8sclusterreceiver/watcher.go index 4569c8556ce03..e1d9542eea6a2 100644 --- a/receiver/k8sclusterreceiver/watcher.go +++ b/receiver/k8sclusterreceiver/watcher.go @@ -18,12 +18,12 @@ import ( "context" "fmt" "reflect" + "sync/atomic" "time" quotaclientset "github.com/openshift/client-go/quota/clientset/versioned" quotainformersv1 "github.com/openshift/client-go/quota/informers/externalversions" "go.opentelemetry.io/collector/component" - "go.uber.org/atomic" "go.uber.org/zap" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime/schema" @@ -68,8 +68,8 @@ func newResourceWatcher(logger *zap.Logger, cfg *Config) *resourceWatcher { return &resourceWatcher{ logger: logger, dataCollector: collection.NewDataCollector(logger, cfg.NodeConditionTypesToReport, cfg.AllocatableTypesToReport), - initialSyncDone: atomic.NewBool(false), - initialSyncTimedOut: atomic.NewBool(false), + initialSyncDone: &atomic.Bool{}, + initialSyncTimedOut: &atomic.Bool{}, initialTimeout: defaultInitialSyncTimeout, config: cfg, makeClient: k8sconfig.MakeClient, diff --git a/receiver/prometheusreceiver/go.mod b/receiver/prometheusreceiver/go.mod index 074bda9ae456c..ef7cb6037fed1 100644 --- a/receiver/prometheusreceiver/go.mod +++ b/receiver/prometheusreceiver/go.mod @@ -23,7 +23,6 @@ require ( go.opentelemetry.io/collector/processor/batchprocessor v0.73.0 go.opentelemetry.io/collector/receiver v0.73.0 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/zap v1.24.0 google.golang.org/protobuf v1.28.1 gopkg.in/yaml.v2 v2.4.0 @@ -161,6 +160,7 @@ require ( go.opentelemetry.io/otel/sdk v1.14.0 // indirect go.opentelemetry.io/otel/sdk/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/goleak v1.2.1 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/crypto v0.7.0 // indirect diff --git a/receiver/prometheusreceiver/internal/staleness_end_to_end_test.go b/receiver/prometheusreceiver/internal/staleness_end_to_end_test.go index 6c671f20225ae..9a59b20dea661 100644 --- a/receiver/prometheusreceiver/internal/staleness_end_to_end_test.go +++ b/receiver/prometheusreceiver/internal/staleness_end_to_end_test.go @@ -23,6 +23,7 @@ import ( "net/url" "os" "strings" + "sync/atomic" "testing" "time" @@ -40,7 +41,6 @@ import ( "go.opentelemetry.io/collector/processor" "go.opentelemetry.io/collector/processor/batchprocessor" "go.opentelemetry.io/collector/receiver" - "go.uber.org/atomic" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -60,7 +60,7 @@ func TestStalenessMarkersEndToEnd(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) // 1. Setup the server that sends series that intermittently appear and disappear. - n := atomic.NewUint64(0) + n := &atomic.Uint64{} scrapeServer := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { // Increment the scrape count atomically per scrape. i := n.Add(1) diff --git a/receiver/prometheusreceiver/metrics_receiver_helper_test.go b/receiver/prometheusreceiver/metrics_receiver_helper_test.go index 58677c0da372d..86c90ba342206 100644 --- a/receiver/prometheusreceiver/metrics_receiver_helper_test.go +++ b/receiver/prometheusreceiver/metrics_receiver_helper_test.go @@ -23,6 +23,7 @@ import ( "net/http/httptest" "net/url" "sync" + "sync/atomic" "testing" "time" @@ -39,7 +40,6 @@ import ( "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/receiver/receivertest" - "go.uber.org/atomic" "gopkg.in/yaml.v2" "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver/internal" @@ -64,7 +64,7 @@ func newMockPrometheus(endpoints map[string][]mockPrometheusResponse) *mockProme wg := &sync.WaitGroup{} wg.Add(len(endpoints)) for k := range endpoints { - accessIndex[k] = atomic.NewInt32(0) + accessIndex[k] = &atomic.Int32{} } mp := &mockPrometheus{ wg: wg, diff --git a/receiver/prometheusreceiver/metrics_receiver_target_allocator_test.go b/receiver/prometheusreceiver/metrics_receiver_target_allocator_test.go index 32a0caecb6bd0..5cc7a7717cded 100644 --- a/receiver/prometheusreceiver/metrics_receiver_target_allocator_test.go +++ b/receiver/prometheusreceiver/metrics_receiver_target_allocator_test.go @@ -23,6 +23,7 @@ import ( "net/http/httptest" "strings" "sync" + "sync/atomic" "testing" "time" @@ -35,7 +36,6 @@ import ( "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/featuregate" "go.opentelemetry.io/collector/receiver/receivertest" - "go.uber.org/atomic" ) type MockTargetAllocator struct { @@ -124,7 +124,7 @@ func transformTAResponseMap(rawResponses map[string][]mockTargetAllocatorRespons } responsesMap[path] = responses - v := atomic.NewInt32(0) + v := &atomic.Int32{} responsesIndexMap[path] = v } return responsesMap, responsesIndexMap, nil diff --git a/receiver/solacereceiver/go.mod b/receiver/solacereceiver/go.mod index 09f5cdf2751d0..1c43167f140ec 100644 --- a/receiver/solacereceiver/go.mod +++ b/receiver/solacereceiver/go.mod @@ -27,7 +27,6 @@ require ( go.opentelemetry.io/collector/pdata v1.0.0-rc7 go.opentelemetry.io/collector/receiver v0.73.0 go.opentelemetry.io/otel v1.14.0 - go.uber.org/atomic v1.10.0 go.uber.org/zap v1.24.0 google.golang.org/protobuf v1.28.1 ) @@ -49,6 +48,7 @@ require ( go.opentelemetry.io/collector/featuregate v0.73.0 // indirect go.opentelemetry.io/otel/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.9.0 // indirect golang.org/x/net v0.8.0 // indirect golang.org/x/sys v0.6.0 // indirect diff --git a/receiver/solacereceiver/receiver.go b/receiver/solacereceiver/receiver.go index 9eb680ecde0d6..5a32aa865392c 100644 --- a/receiver/solacereceiver/receiver.go +++ b/receiver/solacereceiver/receiver.go @@ -19,13 +19,13 @@ import ( "errors" "fmt" "sync" + "sync/atomic" "time" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/consumer/consumererror" "go.opentelemetry.io/collector/receiver" - "go.uber.org/atomic" "go.uber.org/zap" ) @@ -79,7 +79,7 @@ func newTracesReceiver(config *Config, set receiver.CreateSettings, nextConsumer shutdownWaitGroup: &sync.WaitGroup{}, factory: factory, retryTimeout: 1 * time.Second, - terminating: atomic.NewBool(false), + terminating: &atomic.Bool{}, }, nil } diff --git a/receiver/solacereceiver/receiver_test.go b/receiver/solacereceiver/receiver_test.go index 1baec75fbf1f4..9561fa30920d0 100644 --- a/receiver/solacereceiver/receiver_test.go +++ b/receiver/solacereceiver/receiver_test.go @@ -20,6 +20,7 @@ import ( "fmt" "runtime" "sync" + "sync/atomic" "testing" "time" @@ -30,7 +31,6 @@ import ( "go.opentelemetry.io/collector/consumer/consumertest" "go.opentelemetry.io/collector/pdata/ptrace" "go.opentelemetry.io/collector/receiver/receivertest" - "go.uber.org/atomic" ) // connectAndReceive with connect failure @@ -543,7 +543,7 @@ func newReceiver(t *testing.T) (*solaceTracesReceiver, *mockMessagingService, *m factory: messagingServiceFactory, shutdownWaitGroup: &sync.WaitGroup{}, retryTimeout: 1 * time.Millisecond, - terminating: atomic.NewBool(false), + terminating: &atomic.Bool{}, } return receiver, service, unmarshaller } diff --git a/testbed/go.mod b/testbed/go.mod index 17563f1bae162..75bdd46832c24 100644 --- a/testbed/go.mod +++ b/testbed/go.mod @@ -45,7 +45,6 @@ require ( go.opentelemetry.io/collector/receiver v0.73.0 go.opentelemetry.io/collector/receiver/otlpreceiver v0.73.0 go.opentelemetry.io/collector/semconv v0.73.0 - go.uber.org/atomic v1.10.0 go.uber.org/multierr v1.9.0 go.uber.org/zap v1.24.0 golang.org/x/text v0.8.0 @@ -213,6 +212,7 @@ require ( go.opentelemetry.io/otel/sdk v1.14.0 // indirect go.opentelemetry.io/otel/sdk/metric v0.37.0 // indirect go.opentelemetry.io/otel/trace v1.14.0 // indirect + go.uber.org/atomic v1.10.0 // indirect go.uber.org/goleak v1.2.1 // indirect golang.org/x/crypto v0.7.0 // indirect golang.org/x/exp v0.0.0-20230124195608-d38c7dcee874 // indirect diff --git a/testbed/testbed/child_process_collector.go b/testbed/testbed/child_process_collector.go index cc31fd9c6aae6..ef1f89cc39f05 100644 --- a/testbed/testbed/child_process_collector.go +++ b/testbed/testbed/child_process_collector.go @@ -24,14 +24,15 @@ import ( "path" "path/filepath" "runtime" + "strconv" "sync" + "sync/atomic" "syscall" "text/template" "time" "github.com/shirou/gopsutil/v3/cpu" "github.com/shirou/gopsutil/v3/process" - "go.uber.org/atomic" ) // childProcessCollector implements the OtelcolRunner interface as a child process on the same machine executing @@ -411,8 +412,9 @@ func (cp *childProcessCollector) checkAllowedResourceUsage() error { // Check if current RAM usage exceeds expected. if cp.resourceSpec.ExpectedMaxRAM != 0 && cp.ramMiBCur.Load() > cp.resourceSpec.ExpectedMaxRAM { + formattedCurRAM := strconv.FormatUint(uint64(cp.ramMiBCur.Load()), 10) errMsg = fmt.Sprintf("RAM consumption is %s MiB, max expected is %d MiB", - cp.ramMiBCur.String(), cp.resourceSpec.ExpectedMaxRAM) + formattedCurRAM, cp.resourceSpec.ExpectedMaxRAM) } if errMsg == "" { diff --git a/testbed/testbed/data_providers.go b/testbed/testbed/data_providers.go index 119ea5732ff5f..2d25972a100b3 100644 --- a/testbed/testbed/data_providers.go +++ b/testbed/testbed/data_providers.go @@ -19,6 +19,7 @@ import ( "os" "path/filepath" "strconv" + "sync/atomic" "time" "go.opentelemetry.io/collector/component" @@ -26,7 +27,6 @@ import ( "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/atomic" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/goldendataset" "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/idutils" @@ -70,13 +70,13 @@ func (dp *perfTestDataProvider) GenerateTraces() (ptrace.Traces, bool) { spans := traceData.ResourceSpans().AppendEmpty().ScopeSpans().AppendEmpty().Spans() spans.EnsureCapacity(dp.options.ItemsPerBatch) - traceID := dp.traceIDSequence.Inc() + traceID := dp.traceIDSequence.Add(1) for i := 0; i < dp.options.ItemsPerBatch; i++ { startTime := time.Now() endTime := startTime.Add(time.Millisecond) - spanID := dp.dataItemsGenerated.Inc() + spanID := dp.dataItemsGenerated.Add(1) span := spans.AppendEmpty() @@ -119,13 +119,13 @@ func (dp *perfTestDataProvider) GenerateMetrics() (pmetric.Metrics, bool) { metric.SetDescription("Load Generator Counter #" + strconv.Itoa(i)) metric.SetUnit("1") dps := metric.SetEmptyGauge().DataPoints() - batchIndex := dp.traceIDSequence.Inc() + batchIndex := dp.traceIDSequence.Add(1) // Generate data points for the metric. dps.EnsureCapacity(dataPointsPerMetric) for j := 0; j < dataPointsPerMetric; j++ { dataPoint := dps.AppendEmpty() dataPoint.SetStartTimestamp(pcommon.NewTimestampFromTime(time.Now())) - value := dp.dataItemsGenerated.Inc() + value := dp.dataItemsGenerated.Add(1) dataPoint.SetIntValue(int64(value)) dataPoint.Attributes().PutStr("item_index", "item_"+strconv.Itoa(j)) dataPoint.Attributes().PutStr("batch_index", "batch_"+strconv.Itoa(int(batchIndex))) @@ -149,10 +149,10 @@ func (dp *perfTestDataProvider) GenerateLogs() (plog.Logs, bool) { now := pcommon.NewTimestampFromTime(time.Now()) - batchIndex := dp.traceIDSequence.Inc() + batchIndex := dp.traceIDSequence.Add(1) for i := 0; i < dp.options.ItemsPerBatch; i++ { - itemIndex := dp.dataItemsGenerated.Inc() + itemIndex := dp.dataItemsGenerated.Add(1) record := logRecords.AppendEmpty() record.SetSeverityNumber(plog.SeverityNumberInfo3) record.SetSeverityText("INFO3") diff --git a/testbed/testbed/data_providers_test.go b/testbed/testbed/data_providers_test.go index 9d7cd394a587a..c5cec02d2cdb8 100644 --- a/testbed/testbed/data_providers_test.go +++ b/testbed/testbed/data_providers_test.go @@ -15,18 +15,18 @@ package testbed import ( + "sync/atomic" "testing" "github.com/stretchr/testify/require" "go.opentelemetry.io/collector/pdata/pmetric" - "go.uber.org/atomic" ) const metricsPictPairsFile = "../../internal/goldendataset/testdata/generated_pict_pairs_metrics.txt" func TestGoldenDataProvider(t *testing.T) { dp := NewGoldenDataProvider("", "", metricsPictPairsFile) - dp.SetLoadGeneratorCounters(atomic.NewUint64(0)) + dp.SetLoadGeneratorCounters(&atomic.Uint64{}) var ms []pmetric.Metrics for { m, done := dp.GenerateMetrics() diff --git a/testbed/testbed/load_generator.go b/testbed/testbed/load_generator.go index 470c3542a1182..1027e7af20088 100644 --- a/testbed/testbed/load_generator.go +++ b/testbed/testbed/load_generator.go @@ -19,9 +19,9 @@ import ( "fmt" "log" "sync" + "sync/atomic" "time" - "go.uber.org/atomic" "golang.org/x/text/message" ) @@ -127,7 +127,7 @@ func (lg *LoadGenerator) DataItemsSent() uint64 { // reports to use their own counter and load generator and other sending sources // to contribute to this counter. This could be done as a future improvement. func (lg *LoadGenerator) IncDataItemsSent() { - lg.dataItemsSent.Inc() + lg.dataItemsSent.Add(1) } func (lg *LoadGenerator) generate() { diff --git a/testbed/testbed/mock_backend.go b/testbed/testbed/mock_backend.go index ab77c2e63e868..9037ddea76c7f 100644 --- a/testbed/testbed/mock_backend.go +++ b/testbed/testbed/mock_backend.go @@ -19,13 +19,13 @@ import ( "log" "os" "sync" + "sync/atomic" "time" "go.opentelemetry.io/collector/consumer" "go.opentelemetry.io/collector/pdata/plog" "go.opentelemetry.io/collector/pdata/pmetric" "go.opentelemetry.io/collector/pdata/ptrace" - "go.uber.org/atomic" ) // MockBackend is a backend that allows receiving the data locally.