diff options
| author | 2023-05-12 14:55:18 +0200 | |
|---|---|---|
| committer | 2023-05-12 14:55:18 +0200 | |
| commit | b47661f0330f9f6902e19a3bf6fb664dcfa85907 (patch) | |
| tree | 831e75f76943094bcb2852ac29bc02ba511c70a0 /vendor | |
| parent | [chore] Update a bunch of database dependencies (#1772) (diff) | |
| download | gotosocial-b47661f0330f9f6902e19a3bf6fb664dcfa85907.tar.xz | |
[bugfix] Downstep otel to fix freebsd compile issue (#1773)
https://github.com/open-telemetry/opentelemetry-go/issues/4076
Diffstat (limited to 'vendor')
68 files changed, 1067 insertions, 3108 deletions
diff --git a/vendor/github.com/uptrace/bun/extra/bunotel/otel.go b/vendor/github.com/uptrace/bun/extra/bunotel/otel.go index 95ca2a2b1..25000307d 100644 --- a/vendor/github.com/uptrace/bun/extra/bunotel/otel.go +++ b/vendor/github.com/uptrace/bun/extra/bunotel/otel.go @@ -10,7 +10,6 @@ import (  	"go.opentelemetry.io/otel"  	"go.opentelemetry.io/otel/attribute"  	"go.opentelemetry.io/otel/codes" -	"go.opentelemetry.io/otel/metric"  	"go.opentelemetry.io/otel/metric/global"  	"go.opentelemetry.io/otel/metric/instrument"  	semconv "go.opentelemetry.io/otel/semconv/v1.12.0" @@ -76,8 +75,7 @@ func (h *QueryHook) AfterQuery(ctx context.Context, event *bun.QueryEvent) {  		}  	} -	dur := time.Since(event.StartTime) -	queryHistogram.Record(ctx, dur.Milliseconds(), metric.WithAttributes(labels...)) +	queryHistogram.Record(ctx, time.Since(event.StartTime).Milliseconds(), labels...)  	span := trace.SpanFromContext(ctx)  	if !span.IsRecording() { diff --git a/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/otel.go b/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/otel.go index 5a011ae5d..0932e2759 100644 --- a/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/otel.go +++ b/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/otel.go @@ -12,6 +12,7 @@ import (  	"go.opentelemetry.io/otel/codes"  	"go.opentelemetry.io/otel/metric"  	"go.opentelemetry.io/otel/metric/global" +	"go.opentelemetry.io/otel/metric/instrument"  	semconv "go.opentelemetry.io/otel/semconv/v1.10.0"  	"go.opentelemetry.io/otel/trace"  ) @@ -53,7 +54,7 @@ func (c *config) formatQuery(query string) string {  type dbInstrum struct {  	*config -	queryHistogram metric.Int64Histogram +	queryHistogram instrument.Int64Histogram  }  func newDBInstrum(opts []Option) *dbInstrum { @@ -71,8 +72,8 @@ func newDBInstrum(opts []Option) *dbInstrum {  	var err error  	t.queryHistogram, err = t.meter.Int64Histogram(  		"go.sql.query_timing", -		metric.WithDescription("Timing of processed queries"), -		metric.WithUnit("milliseconds"), +		instrument.WithDescription("Timing of processed queries"), +		instrument.WithUnit("milliseconds"),  	)  	if err != nil {  		panic(err) @@ -105,7 +106,7 @@ func (t *dbInstrum) withSpan(  	span.End()  	if query != "" { -		t.queryHistogram.Record(ctx, time.Since(startTime).Milliseconds(), metric.WithAttributes(t.attrs...)) +		t.queryHistogram.Record(ctx, time.Since(startTime).Milliseconds(), t.attrs...)  	}  	if !span.IsRecording() { @@ -184,57 +185,57 @@ func ReportDBStatsMetrics(db *sql.DB, opts ...Option) {  	maxOpenConns, _ := meter.Int64ObservableGauge(  		"go.sql.connections_max_open", -		metric.WithDescription("Maximum number of open connections to the database"), +		instrument.WithDescription("Maximum number of open connections to the database"),  	)  	openConns, _ := meter.Int64ObservableGauge(  		"go.sql.connections_open", -		metric.WithDescription("The number of established connections both in use and idle"), +		instrument.WithDescription("The number of established connections both in use and idle"),  	)  	inUseConns, _ := meter.Int64ObservableGauge(  		"go.sql.connections_in_use", -		metric.WithDescription("The number of connections currently in use"), +		instrument.WithDescription("The number of connections currently in use"),  	)  	idleConns, _ := meter.Int64ObservableGauge(  		"go.sql.connections_idle", -		metric.WithDescription("The number of idle connections"), +		instrument.WithDescription("The number of idle connections"),  	)  	connsWaitCount, _ := meter.Int64ObservableCounter(  		"go.sql.connections_wait_count", -		metric.WithDescription("The total number of connections waited for"), +		instrument.WithDescription("The total number of connections waited for"),  	)  	connsWaitDuration, _ := meter.Int64ObservableCounter(  		"go.sql.connections_wait_duration", -		metric.WithDescription("The total time blocked waiting for a new connection"), -		metric.WithUnit("nanoseconds"), +		instrument.WithDescription("The total time blocked waiting for a new connection"), +		instrument.WithUnit("nanoseconds"),  	)  	connsClosedMaxIdle, _ := meter.Int64ObservableCounter(  		"go.sql.connections_closed_max_idle", -		metric.WithDescription("The total number of connections closed due to SetMaxIdleConns"), +		instrument.WithDescription("The total number of connections closed due to SetMaxIdleConns"),  	)  	connsClosedMaxIdleTime, _ := meter.Int64ObservableCounter(  		"go.sql.connections_closed_max_idle_time", -		metric.WithDescription("The total number of connections closed due to SetConnMaxIdleTime"), +		instrument.WithDescription("The total number of connections closed due to SetConnMaxIdleTime"),  	)  	connsClosedMaxLifetime, _ := meter.Int64ObservableCounter(  		"go.sql.connections_closed_max_lifetime", -		metric.WithDescription("The total number of connections closed due to SetConnMaxLifetime"), +		instrument.WithDescription("The total number of connections closed due to SetConnMaxLifetime"),  	)  	if _, err := meter.RegisterCallback(  		func(ctx context.Context, o metric.Observer) error {  			stats := db.Stats() -			o.ObserveInt64(maxOpenConns, int64(stats.MaxOpenConnections), metric.WithAttributes(labels...)) +			o.ObserveInt64(maxOpenConns, int64(stats.MaxOpenConnections), labels...) -			o.ObserveInt64(openConns, int64(stats.OpenConnections), metric.WithAttributes(labels...)) -			o.ObserveInt64(inUseConns, int64(stats.InUse), metric.WithAttributes(labels...)) -			o.ObserveInt64(idleConns, int64(stats.Idle), metric.WithAttributes(labels...)) +			o.ObserveInt64(openConns, int64(stats.OpenConnections), labels...) +			o.ObserveInt64(inUseConns, int64(stats.InUse), labels...) +			o.ObserveInt64(idleConns, int64(stats.Idle), labels...) -			o.ObserveInt64(connsWaitCount, stats.WaitCount, metric.WithAttributes(labels...)) -			o.ObserveInt64(connsWaitDuration, int64(stats.WaitDuration), metric.WithAttributes(labels...)) -			o.ObserveInt64(connsClosedMaxIdle, stats.MaxIdleClosed, metric.WithAttributes(labels...)) -			o.ObserveInt64(connsClosedMaxIdleTime, stats.MaxIdleTimeClosed, metric.WithAttributes(labels...)) -			o.ObserveInt64(connsClosedMaxLifetime, stats.MaxLifetimeClosed, metric.WithAttributes(labels...)) +			o.ObserveInt64(connsWaitCount, stats.WaitCount, labels...) +			o.ObserveInt64(connsWaitDuration, int64(stats.WaitDuration), labels...) +			o.ObserveInt64(connsClosedMaxIdle, stats.MaxIdleClosed, labels...) +			o.ObserveInt64(connsClosedMaxIdleTime, stats.MaxIdleTimeClosed, labels...) +			o.ObserveInt64(connsClosedMaxLifetime, stats.MaxLifetimeClosed, labels...)  			return nil  		}, diff --git a/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/version.go b/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/version.go index 1c2291bc5..97134301d 100644 --- a/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/version.go +++ b/vendor/github.com/uptrace/opentelemetry-go-extra/otelsql/version.go @@ -2,5 +2,5 @@ package otelsql  // Version is the current release version.  func Version() string { -	return "0.2.0" +	return "0.1.21"  } diff --git a/vendor/go.opentelemetry.io/otel/.gitignore b/vendor/go.opentelemetry.io/otel/.gitignore index cf29d10a7..0b605b3d6 100644 --- a/vendor/go.opentelemetry.io/otel/.gitignore +++ b/vendor/go.opentelemetry.io/otel/.gitignore @@ -7,8 +7,6 @@ Thumbs.db  *.iml  *.so  coverage.* -go.work -go.work.sum  gen/ diff --git a/vendor/go.opentelemetry.io/otel/.golangci.yml b/vendor/go.opentelemetry.io/otel/.golangci.yml index e28904f6a..0f099f575 100644 --- a/vendor/go.opentelemetry.io/otel/.golangci.yml +++ b/vendor/go.opentelemetry.io/otel/.golangci.yml @@ -85,8 +85,6 @@ linters-settings:            - "**/internal/matchers/*.go"    godot:      exclude: -      # Exclude links. -      - '^ *\[[^]]+\]:'        # Exclude sentence fragments for lists.        - '^[ ]*[-•]'        # Exclude sentences prefixing a list. diff --git a/vendor/go.opentelemetry.io/otel/CHANGELOG.md b/vendor/go.opentelemetry.io/otel/CHANGELOG.md index 7630a4f33..1d9726f60 100644 --- a/vendor/go.opentelemetry.io/otel/CHANGELOG.md +++ b/vendor/go.opentelemetry.io/otel/CHANGELOG.md @@ -8,147 +8,6 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm  ## [Unreleased] -## [1.15.1/0.38.1] 2023-05-02 - -### Fixed - -- Remove unused imports from `sdk/resource/host_id_bsd.go` which caused build failures. (#4040, #4041) - -## [1.15.0/0.38.0] 2023-04-27 - -### Added - -- The `go.opentelemetry.io/otel/metric/embedded` package. (#3916) -- The `Version` function to `go.opentelemetry.io/otel/sdk` to return the SDK version. (#3949) -- Add a `WithNamespace` option to `go.opentelemetry.io/otel/exporters/prometheus` to allow users to prefix metrics with a namespace. (#3970) -- The following configuration types were added to `go.opentelemetry.io/otel/metric/instrument` to be used in the configuration of measurement methods. (#3971) -  - The `AddConfig` used to hold configuration for addition measurements -    - `NewAddConfig` used to create a new `AddConfig` -    - `AddOption` used to configure an `AddConfig` -  - The `RecordConfig` used to hold configuration for recorded measurements -    - `NewRecordConfig` used to create a new `RecordConfig` -    - `RecordOption` used to configure a `RecordConfig` -  - The `ObserveConfig` used to hold configuration for observed measurements -    - `NewObserveConfig` used to create a new `ObserveConfig` -    - `ObserveOption` used to configure an `ObserveConfig` -- `WithAttributeSet` and `WithAttributes` are added to `go.opentelemetry.io/otel/metric/instrument`. -  They return an option used during a measurement that defines the attribute Set associated with the measurement. (#3971) -- The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` to return the OTLP metrics client version. (#3956) -- The `Version` function to `go.opentelemetry.io/otel/exporters/otlp/otlptrace` to return the OTLP trace client version. (#3956) - -### Changed - -- The `Extrema` in `go.opentelemetry.io/otel/sdk/metric/metricdata` is redefined with a generic argument of `[N int64 | float64]`. (#3870) -- Update all exported interfaces from `go.opentelemetry.io/otel/metric` to embed their corresponding interface from `go.opentelemetry.io/otel/metric/embedded`. -  This adds an implementation requirement to set the interface default behavior for unimplemented methods. (#3916) -- Move No-Op implementation from `go.opentelemetry.io/otel/metric` into its own package `go.opentelemetry.io/otel/metric/noop`. (#3941) -  - `metric.NewNoopMeterProvider` is replaced with `noop.NewMeterProvider` -- Add all the methods from `"go.opentelemetry.io/otel/trace".SpanContext` to `bridgeSpanContext` by embedding `otel.SpanContext` in `bridgeSpanContext`. (#3966) -- Wrap `UploadMetrics` error in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/` to improve error message when encountering generic grpc errors. (#3974) -- The measurement methods for all instruments in `go.opentelemetry.io/otel/metric/instrument` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. (#3971) -  - The `Int64Counter.Add` method now accepts `...AddOption` -  - The `Float64Counter.Add` method now accepts `...AddOption` -  - The `Int64UpDownCounter.Add` method now accepts `...AddOption` -  - The `Float64UpDownCounter.Add` method now accepts `...AddOption` -  - The `Int64Histogram.Record` method now accepts `...RecordOption` -  - The `Float64Histogram.Record` method now accepts `...RecordOption` -  - The `Int64Observer.Observe` method now accepts `...ObserveOption` -  - The `Float64Observer.Observe` method now accepts `...ObserveOption` -- The `Observer` methods in `go.opentelemetry.io/otel/metric` accept an option instead of the variadic `"go.opentelemetry.io/otel/attribute".KeyValue`. (#3971) -  - The `Observer.ObserveInt64` method now accepts `...ObserveOption` -  - The `Observer.ObserveFloat64` method now accepts `...ObserveOption` -- Move global metric back to `go.opentelemetry.io/otel/metric/global` from `go.opentelemetry.io/otel`. (#3986) - -### Fixed - -- `TracerProvider` allows calling `Tracer()` while it's shutting down. -  It used to deadlock. (#3924) -- Use the SDK version for the Telemetry SDK resource detector in `go.opentelemetry.io/otel/sdk/resource`. (#3949) -- Fix a data race in `SpanProcessor` returned by `NewSimpleSpanProcessor` in `go.opentelemetry.io/otel/sdk/trace`. (#3951) -- Automatically figure out the default aggregation with `aggregation.Default`. (#3967) - -### Deprecated - -- The `go.opentelemetry.io/otel/metric/instrument` package is deprecated. -  Use the equivalent types added to `go.opentelemetry.io/otel/metric` instead. (#4018) - -## [1.15.0-rc.2/0.38.0-rc.2] 2023-03-23 - -This is a release candidate for the v1.15.0/v0.38.0 release. -That release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. -See our [versioning policy](VERSIONING.md) for more information about these stability guarantees. - -### Added - -- The `WithHostID` option to `go.opentelemetry.io/otel/sdk/resource`. (#3812) -- The `WithoutTimestamps` option to `go.opentelemetry.io/otel/exporters/stdout/stdoutmetric` to sets all timestamps to zero. (#3828) -- The new `Exemplar` type is added to `go.opentelemetry.io/otel/sdk/metric/metricdata`. -  Both the `DataPoint` and `HistogramDataPoint` types from that package have a new field of `Exemplars` containing the sampled exemplars for their timeseries. (#3849) -- Configuration for each metric instrument in `go.opentelemetry.io/otel/sdk/metric/instrument`. (#3895) -- The internal logging introduces a warning level verbosity equal to `V(1)`. (#3900) -- Added a log message warning about usage of `SimpleSpanProcessor` in production environments. (#3854) - -### Changed - -- Optimize memory allocation when creation a new `Set` using `NewSet` or `NewSetWithFiltered` in `go.opentelemetry.io/otel/attribute`. (#3832) -- Optimize memory allocation when creation new metric instruments in `go.opentelemetry.io/otel/sdk/metric`. (#3832) -- Avoid creating new objects on all calls to `WithDeferredSetup` and `SkipContextSetup` in OpenTracing bridge. (#3833) -- The `New` and `Detect` functions from `go.opentelemetry.io/otel/sdk/resource` return errors that wrap underlying errors instead of just containing the underlying error strings. (#3844) -- Both the `Histogram` and `HistogramDataPoint` are redefined with a generic argument of `[N int64 | float64]` in `go.opentelemetry.io/otel/sdk/metric/metricdata`. (#3849) -- The metric `Export` interface from `go.opentelemetry.io/otel/sdk/metric` accepts a `*ResourceMetrics` instead of `ResourceMetrics`. (#3853) -- Rename `Asynchronous` to `Observable` in `go.opentelemetry.io/otel/metric/instrument`. (#3892) -- Rename `Int64ObserverOption` to `Int64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895) -- Rename `Float64ObserverOption` to `Float64ObservableOption` in `go.opentelemetry.io/otel/metric/instrument`. (#3895) -- The internal logging changes the verbosity level of info to `V(4)`, the verbosity level of debug to `V(8)`. (#3900) - -### Fixed - -- `TracerProvider` consistently doesn't allow to register a `SpanProcessor` after shutdown. (#3845) - -### Removed - -- The deprecated `go.opentelemetry.io/otel/metric/global` package is removed. (#3829) -- The unneeded `Synchronous` interface in `go.opentelemetry.io/otel/metric/instrument` was removed. (#3892) -- The `Float64ObserverConfig` and `NewFloat64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`. -  Use the added `float64` instrument configuration instead. (#3895) -- The `Int64ObserverConfig` and `NewInt64ObserverConfig` in `go.opentelemetry.io/otel/sdk/metric/instrument`. -  Use the added `int64` instrument configuration instead. (#3895) -- The `NewNoopMeter` function in `go.opentelemetry.io/otel/metric`, use `NewMeterProvider().Meter("")` instead. (#3893) - -## [1.15.0-rc.1/0.38.0-rc.1] 2023-03-01 - -This is a release candidate for the v1.15.0/v0.38.0 release. -That release will include the `v1` release of the OpenTelemetry Go metric API and will provide stability guarantees of that API. -See our [versioning policy](VERSIONING.md) for more information about these stability guarantees. - -This release drops the compatibility guarantee of [Go 1.18]. - -### Added - -- Support global `MeterProvider` in `go.opentelemetry.io/otel`. (#3818) -  - Use `Meter` for a `metric.Meter` from the global `metric.MeterProvider`. -  - Use `GetMeterProivder` for a global `metric.MeterProvider`. -  - Use `SetMeterProivder` to set the global `metric.MeterProvider`. - -### Changed - -- Dropped compatibility testing for [Go 1.18]. -  The project no longer guarantees support for this version of Go. (#3813) - -### Fixed - -- Handle empty environment variable as it they were not set. (#3764) -- Clarify the `httpconv` and `netconv` packages in `go.opentelemetry.io/otel/semconv/*` provide tracing semantic conventions. (#3823) - -### Deprecated - -- The `go.opentelemetry.io/otel/metric/global` package is deprecated. -  Use `go.opentelemetry.io/otel` instead. (#3818) - -### Removed - -- The deprecated `go.opentelemetry.io/otel/metric/unit` package is removed. (#3814) -  ## [1.14.0/0.37.0/0.0.4] 2023-02-27  This release is the last to support [Go 1.18]. @@ -262,7 +121,7 @@ The next release will require at least [Go 1.19].  - The `go.opentelemetry.io/otel/semconv/v1.16.0` package.    The package contains semantic conventions from the `v1.16.0` version of the OpenTelemetry specification. (#3579)  - Metric instruments to `go.opentelemetry.io/otel/metric/instrument`. -  These instruments are use as replacements of the deprecated `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.(#3575, #3586) +  These instruments are use as replacements of the depreacted `go.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}` packages.(#3575, #3586)    - `Float64ObservableCounter` replaces the `asyncfloat64.Counter`    - `Float64ObservableUpDownCounter` replaces the `asyncfloat64.UpDownCounter`    - `Float64ObservableGauge` replaces the `asyncfloat64.Gauge` @@ -285,7 +144,7 @@ The next release will require at least [Go 1.19].  ### Changed  - Jaeger and Zipkin exporter use `github.com/go-logr/logr` as the logging interface, and add the `WithLogr` option. (#3497, #3500) -- Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and configuration based on the instrument type. (#3507) +- Instrument configuration in `go.opentelemetry.io/otel/metric/instrument` is split into specific options and confguration based on the instrument type. (#3507)    - Use the added `Int64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncint64`.    - Use the added `Float64Option` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/syncfloat64`.    - Use the added `Int64ObserverOption` type to configure instruments from `go.opentelemetry.io/otel/metric/instrument/asyncint64`. @@ -298,7 +157,7 @@ The next release will require at least [Go 1.19].  - The `Shutdown` method of the `"go.opentelemetry.io/otel/sdk/trace".TracerProvider` releases all computational resources when called the first time. (#3551)  - The `Sampler` returned from `TraceIDRatioBased` `go.opentelemetry.io/otel/sdk/trace` now uses the rightmost bits for sampling decisions.    This fixes random sampling when using ID generators like `xray.IDGenerator` and increasing parity with other language implementations. (#3557) -- Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in errors identifying their signal name. +- Errors from `go.opentelemetry.io/otel/exporters/otlp/otlptrace` exporters are wrapped in erros identifying their signal name.    Existing users of the exporters attempting to identify specific errors will need to use `errors.Unwrap()` to get the underlying error. (#3516)  - Exporters from `go.opentelemetry.io/otel/exporters/otlp` will print the final retryable error message when attempts to retry time out. (#3514)  - The instrument kind names in `go.opentelemetry.io/otel/sdk/metric` are updated to match the API. (#3562) @@ -407,7 +266,7 @@ The next release will require at least [Go 1.19].  - Asynchronous counters (`Counter` and `UpDownCounter`) from the metric SDK now produce delta sums when configured with delta temporality. (#3398)  - Exported `Status` codes in the `go.opentelemetry.io/otel/exporters/zipkin` exporter are now exported as all upper case values. (#3340)  - `Aggregation`s from `go.opentelemetry.io/otel/sdk/metric` with no data are not exported. (#3394, #3436) -- Re-enabled Attribute Filters in the Metric SDK. (#3396) +- Reenabled Attribute Filters in the Metric SDK. (#3396)  - Asynchronous callbacks are only called if they are registered with at least one instrument that does not use drop aggragation. (#3408)  - Do not report empty partial-success responses in the `go.opentelemetry.io/otel/exporters/otlp` exporters. (#3438, #3432)  - Handle partial success responses in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric` exporters. (#3162, #3440) @@ -988,7 +847,7 @@ This release includes an API and SDK for the tracing signal that will comply wit  - Setting the global `ErrorHandler` with `"go.opentelemetry.io/otel".SetErrorHandler` multiple times is now supported. (#2160, #2140)  - The `"go.opentelemetry.io/otel/attribute".Any` function now supports `int32` values. (#2169)  - Multiple calls to `"go.opentelemetry.io/otel/sdk/metric/controller/basic".WithResource()` are handled correctly, and when no resources are provided `"go.opentelemetry.io/otel/sdk/resource".Default()` is used. (#2120) -- The `WithoutTimestamps` option for the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter causes the exporter to correctly omit timestamps. (#2195) +- The `WithoutTimestamps` option for the `go.opentelemetry.io/otel/exporters/stdout/stdouttrace` exporter causes the exporter to correctly ommit timestamps. (#2195)  - Fixed typos in resources.go. (#2201)  ## [1.0.0-RC2] - 2021-07-26 @@ -1434,7 +1293,7 @@ with major version 0.  - `NewGRPCDriver` function returns a `ProtocolDriver` that maintains a single gRPC connection to the collector. (#1369)  - Added documentation about the project's versioning policy. (#1388)  - Added `NewSplitDriver` for OTLP exporter that allows sending traces and metrics to different endpoints. (#1418) -- Added codeql workflow to GitHub Actions (#1428) +- Added codeql worfklow to GitHub Actions (#1428)  - Added Gosec workflow to GitHub Actions (#1429)  - Add new HTTP driver for OTLP exporter in `exporters/otlp/otlphttp`. Currently it only supports the binary protobuf payloads. (#1420)  - Add an OpenCensus exporter bridge. (#1444) @@ -2277,7 +2136,7 @@ There is still a possibility of breaking changes.  ### Fixed -- Use stateful batcher on Prometheus exporter fixing regression introduced in #395. (#428) +- Use stateful batcher on Prometheus exporter fixing regresion introduced in #395. (#428)  ## [0.2.1] - 2020-01-08 @@ -2443,11 +2302,7 @@ It contains api and sdk for trace and meter.  - CircleCI build CI manifest files.  - CODEOWNERS file to track owners of this project. -[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.15.1...HEAD -[1.15.1/0.38.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.1 -[1.15.0/0.38.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0 -[1.15.0-rc.2/0.38.0-rc.2]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.2 -[1.15.0-rc.1/0.38.0-rc.1]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.15.0-rc.1 +[Unreleased]: https://github.com/open-telemetry/opentelemetry-go/compare/v1.14.0...HEAD  [1.14.0/0.37.0/0.0.4]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.14.0  [1.13.0/0.36.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.13.0  [1.12.0/0.35.0]: https://github.com/open-telemetry/opentelemetry-go/releases/tag/v1.12.0 diff --git a/vendor/go.opentelemetry.io/otel/CODEOWNERS b/vendor/go.opentelemetry.io/otel/CODEOWNERS index f6f6a313b..c4012ed6c 100644 --- a/vendor/go.opentelemetry.io/otel/CODEOWNERS +++ b/vendor/go.opentelemetry.io/otel/CODEOWNERS @@ -12,6 +12,6 @@  #  https://help.github.com/en/articles/about-code-owners  # -* @MrAlias @Aneurysm9 @evantorrie @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu +* @jmacd @MrAlias @Aneurysm9 @evantorrie @XSAM @dashpole @MadVikingGod @pellared @hanyuancheung @dmathieu  CODEOWNERS @MrAlias @Aneurysm9 @MadVikingGod diff --git a/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md b/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md index f521d6543..a6928bfdf 100644 --- a/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md +++ b/vendor/go.opentelemetry.io/otel/CONTRIBUTING.md @@ -6,7 +6,7 @@ OpenTelemetry  repo for information on this and other language SIGs.  See the [public meeting -notes](https://docs.google.com/document/d/1E5e7Ld0NuU1iVvf-42tOBpu2VBBLYnh73GJuITGJTTU/edit) +notes](https://docs.google.com/document/d/1A63zSWX0x2CyCK_LoNhmQC4rqhLpYXJzXbEPDUQ2n6w/edit#heading=h.9tngw7jdwd6b)  for a summary description of past meetings. To request edit access,  join the meeting or get in touch on  [Slack](https://cloud-native.slack.com/archives/C01NPAXACKT). @@ -94,58 +94,30 @@ request ID to the entry you added to `CHANGELOG.md`.  ### How to Get PRs Merged -A PR is considered **ready to merge** when: - -* It has received two qualified approvals[^1]. - -  This is not enforced through automation, but needs to be validated by the -  maintainer merging. -  * The qualified approvals need to be from [Approver]s/[Maintainer]s -    affiliated with different companies. Two qualified approvals from -    [Approver]s or [Maintainer]s affiliated with the same company counts as a -    single qualified approval. -  * PRs introducing changes that have already been discussed and consensus -    reached only need one qualified approval. The discussion and resolution -    needs to be linked to the PR. -  * Trivial changes[^2] only need one qualified approval. - -* All feedback has been addressed. -  * All PR comments and suggestions are resolved. -  * All GitHub Pull Request reviews with a status of "Request changes" have -    been addressed. Another review by the objecting reviewer with a different -    status can be submitted to clear the original review, or the review can be -    dismissed by a [Maintainer] when the issues from the original review have -    been addressed. -  * Any comments or reviews that cannot be resolved between the PR author and -    reviewers can be submitted to the community [Approver]s and [Maintainer]s -    during the weekly SIG meeting. If consensus is reached among the -    [Approver]s and [Maintainer]s during the SIG meeting the objections to the -    PR may be dismissed or resolved or the PR closed by a [Maintainer]. -  * Any substantive changes to the PR require existing Approval reviews be -    cleared unless the approver explicitly states that their approval persists -    across changes. This includes changes resulting from other feedback. -    [Approver]s and [Maintainer]s can help in clearing reviews and they should -    be consulted if there are any questions. - -* The PR branch is up to date with the base branch it is merging into. -  * To ensure this does not block the PR, it should be configured to allow -    maintainers to update it. - -* It has been open for review for at least one working day. This gives people -  reasonable time to review. -  * Trivial changes[^2] do not have to wait for one day and may be merged with -    a single [Maintainer]'s approval. - -* All required GitHub workflows have succeeded. -* Urgent fix can take exception as long as it has been actively communicated -  among [Maintainer]s. - -Any [Maintainer] can merge the PR once the above criteria have been met. - -[^1]: A qualified approval is a GitHub Pull Request review with "Approve" -  status from an OpenTelemetry Go [Approver] or [Maintainer]. -[^2]: Trivial changes include: typo corrections, cosmetic non-substantive -  changes, documentation corrections or updates, dependency updates, etc. +A PR is considered to be **ready to merge** when: + +* It has received two approvals from Collaborators/Maintainers (at +  different companies). This is not enforced through technical means +  and a PR may be **ready to merge** with a single approval if the change +  and its approach have been discussed and consensus reached. +* Feedback has been addressed. +* Any substantive changes to your PR will require that you clear any prior +  Approval reviews, this includes changes resulting from other feedback. Unless +  the approver explicitly stated that their approval will persist across +  changes it should be assumed that the PR needs their review again. Other +  project members (e.g. approvers, maintainers) can help with this if there are +  any questions or if you forget to clear reviews. +* It has been open for review for at least one working day. This gives +  people reasonable time to review. +* Trivial changes (typo, cosmetic, doc, etc.) do not have to wait for +  one day and may be merged with a single Maintainer's approval. +* `CHANGELOG.md` has been updated to reflect what has been +  added, changed, removed, or fixed. +* `README.md` has been updated if necessary. +* Urgent fix can take exception as long as it has been actively +  communicated. + +Any Maintainer can merge the PR once it is **ready to merge**.  ## Design Choices @@ -244,7 +216,7 @@ Meaning a `config` from one package should not be directly used by another. The  one exception is the API packages.  The configs from the base API, eg.  `go.opentelemetry.io/otel/trace.TracerConfig` and  `go.opentelemetry.io/otel/metric.InstrumentConfig`, are intended to be consumed -by the SDK therefore it is expected that these are exported. +by the SDK therefor it is expected that these are exported.  When a config is exported we want to maintain forward and backward  compatibility, to achieve this no fields should be exported but should @@ -262,12 +234,12 @@ func newConfig(options ...Option) config {  	for _, option := range options {  		config = option.apply(config)  	} -	// Perform any validation here. +	// Preform any validation here.  	return config  }  ``` -If validation of the `config` options is also performed this can return an +If validation of the `config` options is also preformed this can return an  error as well that is expected to be handled by the instantiation function  or propagated to the user. @@ -466,7 +438,7 @@ their parameters appropriately named.  #### Interface Stability  All exported stable interfaces that include the following warning in their -documentation are allowed to be extended with additional methods. +doumentation are allowed to be extended with additional methods.  > Warning: methods may be added to this interface in minor releases. @@ -528,30 +500,27 @@ interface that defines the specific functionality should be preferred.  ## Approvers and Maintainers -### Approvers +Approvers:  - [Evan Torrie](https://github.com/evantorrie), Verizon Media +- [Josh MacDonald](https://github.com/jmacd), LightStep  - [Sam Xie](https://github.com/XSAM), Cisco/AppDynamics  - [David Ashpole](https://github.com/dashpole), Google  - [Robert Pająk](https://github.com/pellared), Splunk  - [Chester Cheung](https://github.com/hanyuancheung), Tencent  - [Damien Mathieu](https://github.com/dmathieu), Elastic -### Maintainers +Maintainers:  - [Aaron Clawson](https://github.com/MadVikingGod), LightStep  - [Anthony Mirabella](https://github.com/Aneurysm9), AWS  - [Tyler Yahn](https://github.com/MrAlias), Splunk -### Emeritus +Emeritus:  - [Gustavo Silva Paiva](https://github.com/paivagustavo), LightStep -- [Josh MacDonald](https://github.com/jmacd), LightStep  ### Become an Approver or a Maintainer  See the [community membership document in OpenTelemetry community  repo](https://github.com/open-telemetry/community/blob/main/community-membership.md). - -[Approver]: #approvers -[Maintainer]: #maintainers diff --git a/vendor/go.opentelemetry.io/otel/Makefile b/vendor/go.opentelemetry.io/otel/Makefile index 91ead91b4..0e6ffa284 100644 --- a/vendor/go.opentelemetry.io/otel/Makefile +++ b/vendor/go.opentelemetry.io/otel/Makefile @@ -156,7 +156,7 @@ go-mod-tidy/%: DIR=$*  go-mod-tidy/%: | crosslink  	@echo "$(GO) mod tidy in $(DIR)" \  		&& cd $(DIR) \ -		&& $(GO) mod tidy -compat=1.19 +		&& $(GO) mod tidy -compat=1.18  .PHONY: lint-modules  lint-modules: go-mod-tidy diff --git a/vendor/go.opentelemetry.io/otel/README.md b/vendor/go.opentelemetry.io/otel/README.md index e138a8a07..878d87e58 100644 --- a/vendor/go.opentelemetry.io/otel/README.md +++ b/vendor/go.opentelemetry.io/otel/README.md @@ -14,7 +14,7 @@ It provides a set of APIs to directly measure performance and behavior of your s  | Signal  | Status     | Project |  | ------- | ---------- | ------- |  | Traces  | Stable     | N/A     | -| Metrics | Beta       | N/A     | +| Metrics | Alpha      | N/A     |  | Logs    | Frozen [1] | N/A     |  - [1]: The Logs signal development is halted for this project while we develop both Traces and Metrics. @@ -52,14 +52,19 @@ Currently, this project supports the following environments.  | ------- | ---------- | ------------ |  | Ubuntu  | 1.20       | amd64        |  | Ubuntu  | 1.19       | amd64        | +| Ubuntu  | 1.18       | amd64        |  | Ubuntu  | 1.20       | 386          |  | Ubuntu  | 1.19       | 386          | +| Ubuntu  | 1.18       | 386          |  | MacOS   | 1.20       | amd64        |  | MacOS   | 1.19       | amd64        | +| MacOS   | 1.18       | amd64        |  | Windows | 1.20       | amd64        |  | Windows | 1.19       | amd64        | +| Windows | 1.18       | amd64        |  | Windows | 1.20       | 386          |  | Windows | 1.19       | 386          | +| Windows | 1.18       | 386          |  While this project should work for other systems, no compatibility guarantees  are made for those systems currently. diff --git a/vendor/go.opentelemetry.io/otel/attribute/set.go b/vendor/go.opentelemetry.io/otel/attribute/set.go index b976367e4..26be59832 100644 --- a/vendor/go.opentelemetry.io/otel/attribute/set.go +++ b/vendor/go.opentelemetry.io/otel/attribute/set.go @@ -18,7 +18,6 @@ import (  	"encoding/json"  	"reflect"  	"sort" -	"sync"  )  type ( @@ -63,12 +62,6 @@ var (  			iface: [0]KeyValue{},  		},  	} - -	// sortables is a pool of Sortables used to create Sets with a user does -	// not provide one. -	sortables = sync.Pool{ -		New: func() interface{} { return new(Sortable) }, -	}  )  // EmptySet returns a reference to a Set with no elements. @@ -98,7 +91,7 @@ func (l *Set) Len() int {  // Get returns the KeyValue at ordered position idx in this set.  func (l *Set) Get(idx int) (KeyValue, bool) { -	if l == nil || !l.equivalent.Valid() { +	if l == nil {  		return KeyValue{}, false  	}  	value := l.equivalent.reflectValue() @@ -114,7 +107,7 @@ func (l *Set) Get(idx int) (KeyValue, bool) {  // Value returns the value of a specified key in this set.  func (l *Set) Value(k Key) (Value, bool) { -	if l == nil || !l.equivalent.Valid() { +	if l == nil {  		return Value{}, false  	}  	rValue := l.equivalent.reflectValue() @@ -198,9 +191,7 @@ func NewSet(kvs ...KeyValue) Set {  	if len(kvs) == 0 {  		return empty()  	} -	srt := sortables.Get().(*Sortable) -	s, _ := NewSetWithSortableFiltered(kvs, srt, nil) -	sortables.Put(srt) +	s, _ := NewSetWithSortableFiltered(kvs, new(Sortable), nil)  	return s  } @@ -227,10 +218,7 @@ func NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) {  	if len(kvs) == 0 {  		return empty(), nil  	} -	srt := sortables.Get().(*Sortable) -	s, filtered := NewSetWithSortableFiltered(kvs, srt, filter) -	sortables.Put(srt) -	return s, filtered +	return NewSetWithSortableFiltered(kvs, new(Sortable), filter)  }  // NewSetWithSortableFiltered returns a new Set. diff --git a/vendor/go.opentelemetry.io/otel/exporters/jaeger/README.md b/vendor/go.opentelemetry.io/otel/exporters/jaeger/README.md index 9b9d370dd..598c569a5 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/jaeger/README.md +++ b/vendor/go.opentelemetry.io/otel/exporters/jaeger/README.md @@ -47,4 +47,4 @@ When re-generating Thrift code in the future, please adapt import paths as neces  - [Jaeger](https://www.jaegertracing.io/)  - [OpenTelemetry to Jaeger Transformation](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/sdk_exporters/jaeger.md) -- [OpenTelemetry Environment Variable Specification](https://opentelemetry.io/docs/reference/specification/sdk-environment-variables/#general-sdk-configuration) +- [OpenTelemetry Environment Variable Specification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md) diff --git a/vendor/go.opentelemetry.io/otel/exporters/jaeger/env.go b/vendor/go.opentelemetry.io/otel/exporters/jaeger/env.go index 460fb5e13..a7253e483 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/jaeger/env.go +++ b/vendor/go.opentelemetry.io/otel/exporters/jaeger/env.go @@ -37,7 +37,7 @@ const (  // envOr returns an env variable's value if it is exists or the default if not.  func envOr(key, defaultValue string) string { -	if v := os.Getenv(key); v != "" { +	if v, ok := os.LookupEnv(key); ok && v != "" {  		return v  	}  	return defaultValue diff --git a/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/exception.go b/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/exception.go index 630b938f0..53bf862ea 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/exception.go +++ b/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/exception.go @@ -77,7 +77,7 @@ const (  // WrapTException wraps an error into TException.  //  // If err is nil or already TException, it's returned as-is. -// Otherwise it will be wrapped into TException with TExceptionType() returning +// Otherwise it will be wraped into TException with TExceptionType() returning  // TExceptionTypeUnknown, and Unwrap() returning the original error.  func WrapTException(err error) TException {  	if err == nil { diff --git a/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/transport.go b/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/transport.go index d68d0b317..ba2738a8d 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/transport.go +++ b/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/transport.go @@ -56,7 +56,7 @@ type stringWriter interface {  	WriteString(s string) (n int, err error)  } -// This is "enhanced" transport with extra capabilities. You need to use one of these +// This is "enchanced" transport with extra capabilities. You need to use one of these  // to construct protocol.  // Notably, TSocket does not implement this interface, and it is always a mistake to use  // TSocket directly in protocol. diff --git a/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/type.go b/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/type.go index b24f1b05c..4292ffcad 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/type.go +++ b/vendor/go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift/type.go @@ -40,7 +40,7 @@ const (  	LIST   = 15  	UTF8   = 16  	UTF16  = 17 -	//BINARY = 18   wrong and unused +	//BINARY = 18   wrong and unusued  )  var typeNames = map[int]string{ diff --git a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/header.go b/vendor/go.opentelemetry.io/otel/exporters/otlp/internal/header.go index 7fcd89a40..9aa62ed9e 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/header.go +++ b/vendor/go.opentelemetry.io/otel/exporters/otlp/internal/header.go @@ -12,14 +12,13 @@  // See the License for the specific language governing permissions and  // limitations under the License. -package internal // import "go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal" +// Package internal contains common functionality for all OTLP exporters. +package internal // import "go.opentelemetry.io/otel/exporters/otlp/internal" -import ( -	"go.opentelemetry.io/otel/exporters/otlp/otlptrace" -) +import "go.opentelemetry.io/otel" -// GetUserAgentHeader returns an OTLP header value form "OTel OTLP Exporter Go/{{ .Version }}" +// GetUserAgentHeader return an OTLP header value form "OTel OTLP Exporter Go/{{ .Version }}"  // https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#user-agent  func GetUserAgentHeader() string { -	return "OTel OTLP Exporter Go/" + otlptrace.Version() +	return "OTel OTLP Exporter Go/" + otel.Version()  } diff --git a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig/options.go b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig/options.go index 1a6bb423b..c48ffd530 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig/options.go +++ b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig/options.go @@ -27,7 +27,6 @@ import (  	"go.opentelemetry.io/otel/exporters/otlp/internal"  	"go.opentelemetry.io/otel/exporters/otlp/internal/retry" -	otinternal "go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal"  )  const ( @@ -98,7 +97,7 @@ func NewGRPCConfig(opts ...GRPCOption) Config {  			Timeout:     DefaultTimeout,  		},  		RetryConfig: retry.DefaultConfig, -		DialOptions: []grpc.DialOption{grpc.WithUserAgent(otinternal.GetUserAgentHeader())}, +		DialOptions: []grpc.DialOption{grpc.WithUserAgent(internal.GetUserAgentHeader())},  	}  	cfg = ApplyGRPCEnvConfigs(cfg)  	for _, opt := range opts { diff --git a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go index 2ab2a6e14..fe23f8e37 100644 --- a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go +++ b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc/client.go @@ -130,16 +130,13 @@ var errAlreadyStopped = errors.New("the client is already stopped")  // If the client has already stopped, an error will be returned describing  // this.  func (c *client) Stop(ctx context.Context) error { -	// Make sure to return context error if the context is done when calling this method. -	err := ctx.Err() -  	// Acquire the c.tscMu lock within the ctx lifetime.  	acquired := make(chan struct{})  	go func() {  		c.tscMu.Lock()  		close(acquired)  	}() - +	var err error  	select {  	case <-ctx.Done():  		// The Stop timeout is reached. Kill any remaining exports to force diff --git a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.go b/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.go deleted file mode 100644 index 851e8d1b0..000000000 --- a/vendor/go.opentelemetry.io/otel/exporters/otlp/otlptrace/version.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package otlptrace // import "go.opentelemetry.io/otel/exporters/otlp/otlptrace" - -// Version is the current release version of the OpenTelemetry OTLP trace exporter in use. -func Version() string { -	return "1.15.1" -} diff --git a/vendor/go.opentelemetry.io/otel/handler.go b/vendor/go.opentelemetry.io/otel/handler.go index 4115fe3bb..ecd363ab5 100644 --- a/vendor/go.opentelemetry.io/otel/handler.go +++ b/vendor/go.opentelemetry.io/otel/handler.go @@ -15,16 +15,58 @@  package otel // import "go.opentelemetry.io/otel"  import ( -	"go.opentelemetry.io/otel/internal/global" +	"log" +	"os" +	"sync/atomic" +	"unsafe"  )  var ( -	// Compile-time check global.ErrDelegator implements ErrorHandler. -	_ ErrorHandler = (*global.ErrDelegator)(nil) -	// Compile-time check global.ErrLogger implements ErrorHandler. -	_ ErrorHandler = (*global.ErrLogger)(nil) +	// globalErrorHandler provides an ErrorHandler that can be used +	// throughout an OpenTelemetry instrumented project. When a user +	// specified ErrorHandler is registered (`SetErrorHandler`) all calls to +	// `Handle` and will be delegated to the registered ErrorHandler. +	globalErrorHandler = defaultErrorHandler() + +	// Compile-time check that delegator implements ErrorHandler. +	_ ErrorHandler = (*delegator)(nil) +	// Compile-time check that errLogger implements ErrorHandler. +	_ ErrorHandler = (*errLogger)(nil)  ) +type delegator struct { +	delegate unsafe.Pointer +} + +func (d *delegator) Handle(err error) { +	d.getDelegate().Handle(err) +} + +func (d *delegator) getDelegate() ErrorHandler { +	return *(*ErrorHandler)(atomic.LoadPointer(&d.delegate)) +} + +// setDelegate sets the ErrorHandler delegate. +func (d *delegator) setDelegate(eh ErrorHandler) { +	atomic.StorePointer(&d.delegate, unsafe.Pointer(&eh)) +} + +func defaultErrorHandler() *delegator { +	d := &delegator{} +	d.setDelegate(&errLogger{l: log.New(os.Stderr, "", log.LstdFlags)}) +	return d +} + +// errLogger logs errors if no delegate is set, otherwise they are delegated. +type errLogger struct { +	l *log.Logger +} + +// Handle logs err if no delegate is set, otherwise it is delegated. +func (h *errLogger) Handle(err error) { +	h.l.Print(err) +} +  // GetErrorHandler returns the global ErrorHandler instance.  //  // The default ErrorHandler instance returned will log all errors to STDERR @@ -34,7 +76,9 @@ var (  //  // Subsequent calls to SetErrorHandler after the first will not forward errors  // to the new ErrorHandler for prior returned instances. -func GetErrorHandler() ErrorHandler { return global.GetErrorHandler() } +func GetErrorHandler() ErrorHandler { +	return globalErrorHandler +}  // SetErrorHandler sets the global ErrorHandler to h.  // @@ -42,7 +86,11 @@ func GetErrorHandler() ErrorHandler { return global.GetErrorHandler() }  // GetErrorHandler will send errors to h instead of the default logging  // ErrorHandler. Subsequent calls will set the global ErrorHandler, but not  // delegate errors to h. -func SetErrorHandler(h ErrorHandler) { global.SetErrorHandler(h) } +func SetErrorHandler(h ErrorHandler) { +	globalErrorHandler.setDelegate(h) +}  // Handle is a convenience function for ErrorHandler().Handle(err). -func Handle(err error) { global.Handle(err) } +func Handle(err error) { +	GetErrorHandler().Handle(err) +} diff --git a/vendor/go.opentelemetry.io/otel/internal/global/handler.go b/vendor/go.opentelemetry.io/otel/internal/global/handler.go deleted file mode 100644 index 3dcd1caae..000000000 --- a/vendor/go.opentelemetry.io/otel/internal/global/handler.go +++ /dev/null @@ -1,103 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package global // import "go.opentelemetry.io/otel/internal/global" - -import ( -	"log" -	"os" -	"sync/atomic" -	"unsafe" -) - -var ( -	// GlobalErrorHandler provides an ErrorHandler that can be used -	// throughout an OpenTelemetry instrumented project. When a user -	// specified ErrorHandler is registered (`SetErrorHandler`) all calls to -	// `Handle` and will be delegated to the registered ErrorHandler. -	GlobalErrorHandler = defaultErrorHandler() - -	// Compile-time check that delegator implements ErrorHandler. -	_ ErrorHandler = (*ErrDelegator)(nil) -	// Compile-time check that errLogger implements ErrorHandler. -	_ ErrorHandler = (*ErrLogger)(nil) -) - -// ErrorHandler handles irremediable events. -type ErrorHandler interface { -	// Handle handles any error deemed irremediable by an OpenTelemetry -	// component. -	Handle(error) -} - -type ErrDelegator struct { -	delegate unsafe.Pointer -} - -func (d *ErrDelegator) Handle(err error) { -	d.getDelegate().Handle(err) -} - -func (d *ErrDelegator) getDelegate() ErrorHandler { -	return *(*ErrorHandler)(atomic.LoadPointer(&d.delegate)) -} - -// setDelegate sets the ErrorHandler delegate. -func (d *ErrDelegator) setDelegate(eh ErrorHandler) { -	atomic.StorePointer(&d.delegate, unsafe.Pointer(&eh)) -} - -func defaultErrorHandler() *ErrDelegator { -	d := &ErrDelegator{} -	d.setDelegate(&ErrLogger{l: log.New(os.Stderr, "", log.LstdFlags)}) -	return d -} - -// ErrLogger logs errors if no delegate is set, otherwise they are delegated. -type ErrLogger struct { -	l *log.Logger -} - -// Handle logs err if no delegate is set, otherwise it is delegated. -func (h *ErrLogger) Handle(err error) { -	h.l.Print(err) -} - -// GetErrorHandler returns the global ErrorHandler instance. -// -// The default ErrorHandler instance returned will log all errors to STDERR -// until an override ErrorHandler is set with SetErrorHandler. All -// ErrorHandler returned prior to this will automatically forward errors to -// the set instance instead of logging. -// -// Subsequent calls to SetErrorHandler after the first will not forward errors -// to the new ErrorHandler for prior returned instances. -func GetErrorHandler() ErrorHandler { -	return GlobalErrorHandler -} - -// SetErrorHandler sets the global ErrorHandler to h. -// -// The first time this is called all ErrorHandler previously returned from -// GetErrorHandler will send errors to h instead of the default logging -// ErrorHandler. Subsequent calls will set the global ErrorHandler, but not -// delegate errors to h. -func SetErrorHandler(h ErrorHandler) { -	GlobalErrorHandler.setDelegate(h) -} - -// Handle is a convenience function for ErrorHandler().Handle(err). -func Handle(err error) { -	GetErrorHandler().Handle(err) -} diff --git a/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go b/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go index 5951fd06d..293c08961 100644 --- a/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go +++ b/vendor/go.opentelemetry.io/otel/internal/global/internal_logging.go @@ -24,7 +24,7 @@ import (  	"github.com/go-logr/stdr"  ) -// globalLogger is the logging interface used within the otel api and sdk provide details of the internals. +// globalLogger is the logging interface used within the otel api and sdk provide deatails of the internals.  //  // The default logger uses stdr which is backed by the standard `log.Logger`  // interface. This logger will only show messages at the Error Level. @@ -36,9 +36,8 @@ func init() {  // SetLogger overrides the globalLogger with l.  // -// To see Warn messages use a logger with `l.V(1).Enabled() == true` -// To see Info messages use a logger with `l.V(4).Enabled() == true` -// To see Debug messages use a logger with `l.V(8).Enabled() == true`. +// To see Info messages use a logger with `l.V(1).Enabled() == true` +// To see Debug messages use a logger with `l.V(5).Enabled() == true`.  func SetLogger(l logr.Logger) {  	atomic.StorePointer(&globalLogger, unsafe.Pointer(&l))  } @@ -48,9 +47,9 @@ func getLogger() logr.Logger {  }  // Info prints messages about the general state of the API or SDK. -// This should usually be less than 5 messages a minute. +// This should usually be less then 5 messages a minute.  func Info(msg string, keysAndValues ...interface{}) { -	getLogger().V(4).Info(msg, keysAndValues...) +	getLogger().V(1).Info(msg, keysAndValues...)  }  // Error prints messages about exceptional states of the API or SDK. @@ -60,11 +59,5 @@ func Error(err error, msg string, keysAndValues ...interface{}) {  // Debug prints messages about all internal changes in the API or SDK.  func Debug(msg string, keysAndValues ...interface{}) { -	getLogger().V(8).Info(msg, keysAndValues...) -} - -// Warn prints messages about warnings in the API or SDK. -// Not an error but is likely more important than an informational event. -func Warn(msg string, keysAndValues ...interface{}) { -	getLogger().V(1).Info(msg, keysAndValues...) +	getLogger().V(5).Info(msg, keysAndValues...)  } diff --git a/vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go b/vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go deleted file mode 100644 index e2ffb6738..000000000 --- a/vendor/go.opentelemetry.io/otel/metric/asyncfloat64.go +++ /dev/null @@ -1,258 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metric // import "go.opentelemetry.io/otel/metric" - -import ( -	"context" - -	"go.opentelemetry.io/otel/metric/embedded" -) - -// Float64Observable describes a set of instruments used asynchronously to -// record float64 measurements once per collection cycle. Observations of -// these instruments are only made within a callback. -// -// Warning: Methods may be added to this interface in minor releases. -type Float64Observable interface { -	Observable - -	float64Observable() -} - -// Float64ObservableCounter is an instrument used to asynchronously record -// increasing float64 measurements once per collection cycle. Observations are -// only made within a callback for this instrument. The value observed is -// assumed the to be the cumulative sum of the count. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Float64ObservableCounter interface { -	embedded.Float64ObservableCounter - -	Float64Observable -} - -// Float64ObservableCounterConfig contains options for asynchronous counter -// instruments that record int64 values. -type Float64ObservableCounterConfig struct { -	description string -	unit        string -	callbacks   []Float64Callback -} - -// NewFloat64ObservableCounterConfig returns a new -// [Float64ObservableCounterConfig] with all opts applied. -func NewFloat64ObservableCounterConfig(opts ...Float64ObservableCounterOption) Float64ObservableCounterConfig { -	var config Float64ObservableCounterConfig -	for _, o := range opts { -		config = o.applyFloat64ObservableCounter(config) -	} -	return config -} - -// Description returns the configured description. -func (c Float64ObservableCounterConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Float64ObservableCounterConfig) Unit() string { -	return c.unit -} - -// Callbacks returns the configured callbacks. -func (c Float64ObservableCounterConfig) Callbacks() []Float64Callback { -	return c.callbacks -} - -// Float64ObservableCounterOption applies options to a -// [Float64ObservableCounterConfig]. See [Float64ObservableOption] and [Option] -// for other options that can be used as a Float64ObservableCounterOption. -type Float64ObservableCounterOption interface { -	applyFloat64ObservableCounter(Float64ObservableCounterConfig) Float64ObservableCounterConfig -} - -// Float64ObservableUpDownCounter is an instrument used to asynchronously -// record float64 measurements once per collection cycle. Observations are only -// made within a callback for this instrument. The value observed is assumed -// the to be the cumulative sum of the count. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Float64ObservableUpDownCounter interface { -	embedded.Float64ObservableUpDownCounter - -	Float64Observable -} - -// Float64ObservableUpDownCounterConfig contains options for asynchronous -// counter instruments that record int64 values. -type Float64ObservableUpDownCounterConfig struct { -	description string -	unit        string -	callbacks   []Float64Callback -} - -// NewFloat64ObservableUpDownCounterConfig returns a new -// [Float64ObservableUpDownCounterConfig] with all opts applied. -func NewFloat64ObservableUpDownCounterConfig(opts ...Float64ObservableUpDownCounterOption) Float64ObservableUpDownCounterConfig { -	var config Float64ObservableUpDownCounterConfig -	for _, o := range opts { -		config = o.applyFloat64ObservableUpDownCounter(config) -	} -	return config -} - -// Description returns the configured description. -func (c Float64ObservableUpDownCounterConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Float64ObservableUpDownCounterConfig) Unit() string { -	return c.unit -} - -// Callbacks returns the configured callbacks. -func (c Float64ObservableUpDownCounterConfig) Callbacks() []Float64Callback { -	return c.callbacks -} - -// Float64ObservableUpDownCounterOption applies options to a -// [Float64ObservableUpDownCounterConfig]. See [Float64ObservableOption] and -// [Option] for other options that can be used as a -// Float64ObservableUpDownCounterOption. -type Float64ObservableUpDownCounterOption interface { -	applyFloat64ObservableUpDownCounter(Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig -} - -// Float64ObservableGauge is an instrument used to asynchronously record -// instantaneous float64 measurements once per collection cycle. Observations -// are only made within a callback for this instrument. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Float64ObservableGauge interface { -	embedded.Float64ObservableGauge - -	Float64Observable -} - -// Float64ObservableGaugeConfig contains options for asynchronous counter -// instruments that record int64 values. -type Float64ObservableGaugeConfig struct { -	description string -	unit        string -	callbacks   []Float64Callback -} - -// NewFloat64ObservableGaugeConfig returns a new [Float64ObservableGaugeConfig] -// with all opts applied. -func NewFloat64ObservableGaugeConfig(opts ...Float64ObservableGaugeOption) Float64ObservableGaugeConfig { -	var config Float64ObservableGaugeConfig -	for _, o := range opts { -		config = o.applyFloat64ObservableGauge(config) -	} -	return config -} - -// Description returns the configured description. -func (c Float64ObservableGaugeConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Float64ObservableGaugeConfig) Unit() string { -	return c.unit -} - -// Callbacks returns the configured callbacks. -func (c Float64ObservableGaugeConfig) Callbacks() []Float64Callback { -	return c.callbacks -} - -// Float64ObservableGaugeOption applies options to a -// [Float64ObservableGaugeConfig]. See [Float64ObservableOption] and -// [Option] for other options that can be used as a -// Float64ObservableGaugeOption. -type Float64ObservableGaugeOption interface { -	applyFloat64ObservableGauge(Float64ObservableGaugeConfig) Float64ObservableGaugeConfig -} - -// Float64Observer is a recorder of float64 measurements. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Float64Observer interface { -	embedded.Float64Observer - -	// Observe records the float64 value. -	Observe(value float64, opts ...ObserveOption) -} - -// Float64Callback is a function registered with a Meter that makes -// observations for a Float64Observerable instrument it is registered with. -// Calls to the Float64Observer record measurement values for the -// Float64Observable. -// -// The function needs to complete in a finite amount of time and the deadline -// of the passed context is expected to be honored. -// -// The function needs to make unique observations across all registered -// Float64Callbacks. Meaning, it should not report measurements with the same -// attributes as another Float64Callbacks also registered for the same -// instrument. -// -// The function needs to be concurrent safe. -type Float64Callback func(context.Context, Float64Observer) error - -// Float64ObservableOption applies options to float64 Observer instruments. -type Float64ObservableOption interface { -	Float64ObservableCounterOption -	Float64ObservableUpDownCounterOption -	Float64ObservableGaugeOption -} - -type float64CallbackOpt struct { -	cback Float64Callback -} - -func (o float64CallbackOpt) applyFloat64ObservableCounter(cfg Float64ObservableCounterConfig) Float64ObservableCounterConfig { -	cfg.callbacks = append(cfg.callbacks, o.cback) -	return cfg -} - -func (o float64CallbackOpt) applyFloat64ObservableUpDownCounter(cfg Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { -	cfg.callbacks = append(cfg.callbacks, o.cback) -	return cfg -} - -func (o float64CallbackOpt) applyFloat64ObservableGauge(cfg Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { -	cfg.callbacks = append(cfg.callbacks, o.cback) -	return cfg -} - -// WithFloat64Callback adds callback to be called for an instrument. -func WithFloat64Callback(callback Float64Callback) Float64ObservableOption { -	return float64CallbackOpt{callback} -} diff --git a/vendor/go.opentelemetry.io/otel/metric/asyncint64.go b/vendor/go.opentelemetry.io/otel/metric/asyncint64.go deleted file mode 100644 index a56b3d7a6..000000000 --- a/vendor/go.opentelemetry.io/otel/metric/asyncint64.go +++ /dev/null @@ -1,256 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metric // import "go.opentelemetry.io/otel/metric" - -import ( -	"context" - -	"go.opentelemetry.io/otel/metric/embedded" -) - -// Int64Observable describes a set of instruments used asynchronously to record -// int64 measurements once per collection cycle. Observations of these -// instruments are only made within a callback. -// -// Warning: Methods may be added to this interface in minor releases. -type Int64Observable interface { -	Observable - -	int64Observable() -} - -// Int64ObservableCounter is an instrument used to asynchronously record -// increasing int64 measurements once per collection cycle. Observations are -// only made within a callback for this instrument. The value observed is -// assumed the to be the cumulative sum of the count. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Int64ObservableCounter interface { -	embedded.Int64ObservableCounter - -	Int64Observable -} - -// Int64ObservableCounterConfig contains options for asynchronous counter -// instruments that record int64 values. -type Int64ObservableCounterConfig struct { -	description string -	unit        string -	callbacks   []Int64Callback -} - -// NewInt64ObservableCounterConfig returns a new [Int64ObservableCounterConfig] -// with all opts applied. -func NewInt64ObservableCounterConfig(opts ...Int64ObservableCounterOption) Int64ObservableCounterConfig { -	var config Int64ObservableCounterConfig -	for _, o := range opts { -		config = o.applyInt64ObservableCounter(config) -	} -	return config -} - -// Description returns the configured description. -func (c Int64ObservableCounterConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Int64ObservableCounterConfig) Unit() string { -	return c.unit -} - -// Callbacks returns the configured callbacks. -func (c Int64ObservableCounterConfig) Callbacks() []Int64Callback { -	return c.callbacks -} - -// Int64ObservableCounterOption applies options to a -// [Int64ObservableCounterConfig]. See [Int64ObservableOption] and [Option] for -// other options that can be used as an Int64ObservableCounterOption. -type Int64ObservableCounterOption interface { -	applyInt64ObservableCounter(Int64ObservableCounterConfig) Int64ObservableCounterConfig -} - -// Int64ObservableUpDownCounter is an instrument used to asynchronously record -// int64 measurements once per collection cycle. Observations are only made -// within a callback for this instrument. The value observed is assumed the to -// be the cumulative sum of the count. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Int64ObservableUpDownCounter interface { -	embedded.Int64ObservableUpDownCounter - -	Int64Observable -} - -// Int64ObservableUpDownCounterConfig contains options for asynchronous counter -// instruments that record int64 values. -type Int64ObservableUpDownCounterConfig struct { -	description string -	unit        string -	callbacks   []Int64Callback -} - -// NewInt64ObservableUpDownCounterConfig returns a new -// [Int64ObservableUpDownCounterConfig] with all opts applied. -func NewInt64ObservableUpDownCounterConfig(opts ...Int64ObservableUpDownCounterOption) Int64ObservableUpDownCounterConfig { -	var config Int64ObservableUpDownCounterConfig -	for _, o := range opts { -		config = o.applyInt64ObservableUpDownCounter(config) -	} -	return config -} - -// Description returns the configured description. -func (c Int64ObservableUpDownCounterConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Int64ObservableUpDownCounterConfig) Unit() string { -	return c.unit -} - -// Callbacks returns the configured callbacks. -func (c Int64ObservableUpDownCounterConfig) Callbacks() []Int64Callback { -	return c.callbacks -} - -// Int64ObservableUpDownCounterOption applies options to a -// [Int64ObservableUpDownCounterConfig]. See [Int64ObservableOption] and -// [Option] for other options that can be used as an -// Int64ObservableUpDownCounterOption. -type Int64ObservableUpDownCounterOption interface { -	applyInt64ObservableUpDownCounter(Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig -} - -// Int64ObservableGauge is an instrument used to asynchronously record -// instantaneous int64 measurements once per collection cycle. Observations are -// only made within a callback for this instrument. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Int64ObservableGauge interface { -	embedded.Int64ObservableGauge - -	Int64Observable -} - -// Int64ObservableGaugeConfig contains options for asynchronous counter -// instruments that record int64 values. -type Int64ObservableGaugeConfig struct { -	description string -	unit        string -	callbacks   []Int64Callback -} - -// NewInt64ObservableGaugeConfig returns a new [Int64ObservableGaugeConfig] -// with all opts applied. -func NewInt64ObservableGaugeConfig(opts ...Int64ObservableGaugeOption) Int64ObservableGaugeConfig { -	var config Int64ObservableGaugeConfig -	for _, o := range opts { -		config = o.applyInt64ObservableGauge(config) -	} -	return config -} - -// Description returns the configured description. -func (c Int64ObservableGaugeConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Int64ObservableGaugeConfig) Unit() string { -	return c.unit -} - -// Callbacks returns the configured callbacks. -func (c Int64ObservableGaugeConfig) Callbacks() []Int64Callback { -	return c.callbacks -} - -// Int64ObservableGaugeOption applies options to a -// [Int64ObservableGaugeConfig]. See [Int64ObservableOption] and [Option] for -// other options that can be used as an Int64ObservableGaugeOption. -type Int64ObservableGaugeOption interface { -	applyInt64ObservableGauge(Int64ObservableGaugeConfig) Int64ObservableGaugeConfig -} - -// Int64Observer is a recorder of int64 measurements. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Int64Observer interface { -	embedded.Int64Observer - -	// Observe records the int64 value. -	Observe(value int64, opts ...ObserveOption) -} - -// Int64Callback is a function registered with a Meter that makes observations -// for an Int64Observerable instrument it is registered with. Calls to the -// Int64Observer record measurement values for the Int64Observable. -// -// The function needs to complete in a finite amount of time and the deadline -// of the passed context is expected to be honored. -// -// The function needs to make unique observations across all registered -// Int64Callbacks. Meaning, it should not report measurements with the same -// attributes as another Int64Callbacks also registered for the same -// instrument. -// -// The function needs to be concurrent safe. -type Int64Callback func(context.Context, Int64Observer) error - -// Int64ObservableOption applies options to int64 Observer instruments. -type Int64ObservableOption interface { -	Int64ObservableCounterOption -	Int64ObservableUpDownCounterOption -	Int64ObservableGaugeOption -} - -type int64CallbackOpt struct { -	cback Int64Callback -} - -func (o int64CallbackOpt) applyInt64ObservableCounter(cfg Int64ObservableCounterConfig) Int64ObservableCounterConfig { -	cfg.callbacks = append(cfg.callbacks, o.cback) -	return cfg -} - -func (o int64CallbackOpt) applyInt64ObservableUpDownCounter(cfg Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { -	cfg.callbacks = append(cfg.callbacks, o.cback) -	return cfg -} - -func (o int64CallbackOpt) applyInt64ObservableGauge(cfg Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { -	cfg.callbacks = append(cfg.callbacks, o.cback) -	return cfg -} - -// WithInt64Callback adds callback to be called for an instrument. -func WithInt64Callback(callback Int64Callback) Int64ObservableOption { -	return int64CallbackOpt{callback} -} diff --git a/vendor/go.opentelemetry.io/otel/metric/doc.go b/vendor/go.opentelemetry.io/otel/metric/doc.go index bda14e10a..bd6f43437 100644 --- a/vendor/go.opentelemetry.io/otel/metric/doc.go +++ b/vendor/go.opentelemetry.io/otel/metric/doc.go @@ -13,125 +13,11 @@  // limitations under the License.  /* -Package metric provides the OpenTelemetry API used to measure metrics about -source code operation. +Package metric provides an implementation of the metrics part of the +OpenTelemetry API. -This API is separate from its implementation so the instrumentation built from -it is reusable. See [go.opentelemetry.io/otel/sdk/metric] for the official -OpenTelemetry implementation of this API. - -All measurements made with this package are made via instruments. These -instruments are created by a [Meter] which itself is created by a -[MeterProvider]. Applications need to accept a [MeterProvider] implementation -as a starting point when instrumenting. This can be done directly, or by using -the OpenTelemetry global MeterProvider via [GetMeterProvider]. Using an -appropriately named [Meter] from the accepted [MeterProvider], instrumentation -can then be built from the [Meter]'s instruments. - -# Instruments - -Each instrument is designed to make measurements of a particular type. Broadly, -all instruments fall into two overlapping logical categories: asynchronous or -synchronous, and int64 or float64. - -All synchronous instruments ([Int64Counter], [Int64UpDownCounter], -[Int64Histogram], [Float64Counter], [Float64UpDownCounter], [Float64Histogram]) -are used to measure the operation and performance of source code during the -source code execution. These instruments only make measurements when the source -code they instrument is run. - -All asynchronous instruments ([Int64ObservableCounter], -[Int64ObservableUpDownCounter], [Int64ObservableGauge], -[Float64ObservableCounter], [Float64ObservableUpDownCounter], -[Float64ObservableGauge]) are used to measure metrics outside of the execution -of source code. They are said to make "observations" via a callback function -called once every measurement collection cycle. - -Each instrument is also grouped by the value type it measures. Either int64 or -float64. The value being measured will dictate which instrument in these -categories to use. - -Outside of these two broad categories, instruments are described by the -function they are designed to serve. All Counters ([Int64Counter], -[Float64Counter], [Int64ObservableCounter], [Float64ObservableCounter]) are -designed to measure values that never decrease in value, but instead only -incrementally increase in value. UpDownCounters ([Int64UpDownCounter], -[Float64UpDownCounter], [Int64ObservableUpDownCounter], -[Float64ObservableUpDownCounter]) on the other hand, are designed to measure -values that can increase and decrease. When more information -needs to be conveyed about all the synchronous measurements made during a -collection cycle, a Histogram ([Int64Histogram], [Float64Histogram]) should be -used. Finally, when just the most recent measurement needs to be conveyed about an -asynchronous measurement, a Gauge ([Int64ObservableGauge], -[Float64ObservableGauge]) should be used. - -See the [OpenTelemetry documentation] for more information about instruments -and their intended use. - -# API Implementations - -This package does not conform to the standard Go versioning policy, all of its -interfaces may have methods added to them without a package major version bump. -This non-standard API evolution could surprise an uninformed implementation -author. They could unknowingly build their implementation in a way that would -result in a runtime panic for their users that update to the new API. - -The API is designed to help inform an instrumentation author about this -non-standard API evolution. It requires them to choose a default behavior for -unimplemented interface methods. There are three behavior choices they can -make: - -  - Compilation failure -  - Panic -  - Default to another implementation - -All interfaces in this API embed a corresponding interface from -[go.opentelemetry.io/otel/metric/embedded]. If an author wants the default -behavior of their implementations to be a compilation failure, signaling to -their users they need to update to the latest version of that implementation, -they need to embed the corresponding interface from -[go.opentelemetry.io/otel/metric/embedded] in their implementation. For -example, - -	import "go.opentelemetry.io/otel/metric/embedded" - -	type MeterProvider struct { -		embedded.MeterProvider -		// ... -	} - -If an author wants the default behavior of their implementations to a panic, -they need to embed the API interface directly. - -	import "go.opentelemetry.io/otel/metric" - -	type MeterProvider struct { -		metric.MeterProvider -		// ... -	} - -This is not a recommended behavior as it could lead to publishing packages that -contain runtime panics when users update other package that use newer versions -of [go.opentelemetry.io/otel/metric]. - -Finally, an author can embed another implementation in theirs. The embedded -implementation will be used for methods not defined by the author. For example, -an author who want to default to silently dropping the call can use -[go.opentelemetry.io/otel/metric/noop]: - -	import "go.opentelemetry.io/otel/metric/noop" - -	type MeterProvider struct { -		noop.MeterProvider -		// ... -	} - -It is strongly recommended that authors only embed -[go.opentelemetry.io/otel/metric/noop] if they choose this default behavior. -That implementation is the only one OpenTelemetry authors can guarantee will -fully implement all the API interfaces when a user updates their API. - -[OpenTelemetry documentation]: https://opentelemetry.io/docs/concepts/signals/metrics/ -[GetMeterProvider]: https://pkg.go.dev/go.opentelemetry.io/otel#GetMeterProvider +This package is currently in a pre-GA phase. Backwards incompatible changes +may be introduced in subsequent minor version releases as we work to track the +evolving OpenTelemetry specification and user feedback.  */  package metric // import "go.opentelemetry.io/otel/metric" diff --git a/vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go b/vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go deleted file mode 100644 index ae0bdbd2e..000000000 --- a/vendor/go.opentelemetry.io/otel/metric/embedded/embedded.go +++ /dev/null @@ -1,234 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package embedded provides interfaces embedded within the [OpenTelemetry -// metric API]. -// -// Implementers of the [OpenTelemetry metric API] can embed the relevant type -// from this package into their implementation directly. Doing so will result -// in a compilation error for users when the [OpenTelemetry metric API] is -// extended (which is something that can happen without a major version bump of -// the API package). -// -// [OpenTelemetry metric API]: https://pkg.go.dev/go.opentelemetry.io/otel/metric -package embedded // import "go.opentelemetry.io/otel/metric/embedded" - -// MeterProvider is embedded in -// [go.opentelemetry.io/otel/metric.MeterProvider]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.MeterProvider] if you want users to -// experience a compilation error, signaling they need to update to your latest -// implementation, when the [go.opentelemetry.io/otel/metric.MeterProvider] -// interface is extended (which is something that can happen without a major -// version bump of the API package). -type MeterProvider interface{ meterProvider() } - -// Meter is embedded in [go.opentelemetry.io/otel/metric.Meter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Meter] if you want users to experience a -// compilation error, signaling they need to update to your latest -// implementation, when the [go.opentelemetry.io/otel/metric.Meter] interface -// is extended (which is something that can happen without a major version bump -// of the API package). -type Meter interface{ meter() } - -// Float64Observer is embedded in -// [go.opentelemetry.io/otel/metric.Float64Observer]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Float64Observer] if you want -// users to experience a compilation error, signaling they need to update to -// your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Float64Observer] interface is -// extended (which is something that can happen without a major version bump of -// the API package). -type Float64Observer interface{ float64Observer() } - -// Int64Observer is embedded in -// [go.opentelemetry.io/otel/metric.Int64Observer]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Int64Observer] if you want users -// to experience a compilation error, signaling they need to update to your -// latest implementation, when the -// [go.opentelemetry.io/otel/metric.Int64Observer] interface is -// extended (which is something that can happen without a major version bump of -// the API package). -type Int64Observer interface{ int64Observer() } - -// Observer is embedded in [go.opentelemetry.io/otel/metric.Observer]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Observer] if you want users to experience a -// compilation error, signaling they need to update to your latest -// implementation, when the [go.opentelemetry.io/otel/metric.Observer] -// interface is extended (which is something that can happen without a major -// version bump of the API package). -type Observer interface{ observer() } - -// Registration is embedded in [go.opentelemetry.io/otel/metric.Registration]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Registration] if you want users to -// experience a compilation error, signaling they need to update to your latest -// implementation, when the [go.opentelemetry.io/otel/metric.Registration] -// interface is extended (which is something that can happen without a major -// version bump of the API package). -type Registration interface{ registration() } - -// Float64Counter is embedded in -// [go.opentelemetry.io/otel/metric.Float64Counter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Float64Counter] if you want -// users to experience a compilation error, signaling they need to update to -// your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Float64Counter] interface is -// extended (which is something that can happen without a major version bump of -// the API package). -type Float64Counter interface{ float64Counter() } - -// Float64Histogram is embedded in -// [go.opentelemetry.io/otel/metric.Float64Histogram]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Float64Histogram] if you want -// users to experience a compilation error, signaling they need to update to -// your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Float64Histogram] interface is -// extended (which is something that can happen without a major version bump of -// the API package). -type Float64Histogram interface{ float64Histogram() } - -// Float64ObservableCounter is embedded in -// [go.opentelemetry.io/otel/metric.Float64ObservableCounter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Float64ObservableCounter] if you -// want users to experience a compilation error, signaling they need to update -// to your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Float64ObservableCounter] -// interface is extended (which is something that can happen without a major -// version bump of the API package). -type Float64ObservableCounter interface{ float64ObservableCounter() } - -// Float64ObservableGauge is embedded in -// [go.opentelemetry.io/otel/metric.Float64ObservableGauge]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Float64ObservableGauge] if you -// want users to experience a compilation error, signaling they need to update -// to your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Float64ObservableGauge] -// interface is extended (which is something that can happen without a major -// version bump of the API package). -type Float64ObservableGauge interface{ float64ObservableGauge() } - -// Float64ObservableUpDownCounter is embedded in -// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter] -// if you want users to experience a compilation error, signaling they need to -// update to your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter] -// interface is extended (which is something that can happen without a major -// version bump of the API package). -type Float64ObservableUpDownCounter interface{ float64ObservableUpDownCounter() } - -// Float64UpDownCounter is embedded in -// [go.opentelemetry.io/otel/metric.Float64UpDownCounter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Float64UpDownCounter] if you -// want users to experience a compilation error, signaling they need to update -// to your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Float64UpDownCounter] interface -// is extended (which is something that can happen without a major version bump -// of the API package). -type Float64UpDownCounter interface{ float64UpDownCounter() } - -// Int64Counter is embedded in -// [go.opentelemetry.io/otel/metric.Int64Counter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Int64Counter] if you want users -// to experience a compilation error, signaling they need to update to your -// latest implementation, when the -// [go.opentelemetry.io/otel/metric.Int64Counter] interface is -// extended (which is something that can happen without a major version bump of -// the API package). -type Int64Counter interface{ int64Counter() } - -// Int64Histogram is embedded in -// [go.opentelemetry.io/otel/metric.Int64Histogram]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Int64Histogram] if you want -// users to experience a compilation error, signaling they need to update to -// your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Int64Histogram] interface is -// extended (which is something that can happen without a major version bump of -// the API package). -type Int64Histogram interface{ int64Histogram() } - -// Int64ObservableCounter is embedded in -// [go.opentelemetry.io/otel/metric.Int64ObservableCounter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Int64ObservableCounter] if you -// want users to experience a compilation error, signaling they need to update -// to your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Int64ObservableCounter] -// interface is extended (which is something that can happen without a major -// version bump of the API package). -type Int64ObservableCounter interface{ int64ObservableCounter() } - -// Int64ObservableGauge is embedded in -// [go.opentelemetry.io/otel/metric.Int64ObservableGauge]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Int64ObservableGauge] if you -// want users to experience a compilation error, signaling they need to update -// to your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Int64ObservableGauge] interface -// is extended (which is something that can happen without a major version bump -// of the API package). -type Int64ObservableGauge interface{ int64ObservableGauge() } - -// Int64ObservableUpDownCounter is embedded in -// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter] if -// you want users to experience a compilation error, signaling they need to -// update to your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter] -// interface is extended (which is something that can happen without a major -// version bump of the API package). -type Int64ObservableUpDownCounter interface{ int64ObservableUpDownCounter() } - -// Int64UpDownCounter is embedded in -// [go.opentelemetry.io/otel/metric.Int64UpDownCounter]. -// -// Embed this interface in your implementation of the -// [go.opentelemetry.io/otel/metric.Int64UpDownCounter] if you want -// users to experience a compilation error, signaling they need to update to -// your latest implementation, when the -// [go.opentelemetry.io/otel/metric.Int64UpDownCounter] interface is -// extended (which is something that can happen without a major version bump of -// the API package). -type Int64UpDownCounter interface{ int64UpDownCounter() } diff --git a/vendor/go.opentelemetry.io/otel/metric/global/metric.go b/vendor/go.opentelemetry.io/otel/metric/global/global.go index 2723df292..cb0896d38 100644 --- a/vendor/go.opentelemetry.io/otel/metric/global/metric.go +++ b/vendor/go.opentelemetry.io/otel/metric/global/global.go @@ -19,31 +19,24 @@ import (  	"go.opentelemetry.io/otel/metric/internal/global"  ) -// Meter returns a Meter from the global MeterProvider. The name must be the -// name of the library providing instrumentation. This name may be the same as -// the instrumented code only if that code provides built-in instrumentation. -// If the name is empty, then a implementation defined default name will be -// used instead. +// Meter returns a Meter from the global MeterProvider. The +// instrumentationName must be the name of the library providing +// instrumentation. This name may be the same as the instrumented code only if +// that code provides built-in instrumentation. If the instrumentationName is +// empty, then a implementation defined default name will be used instead.  // -// If this is called before a global MeterProvider is registered the returned -// Meter will be a No-op implementation of a Meter. When a global MeterProvider -// is registered for the first time, the returned Meter, and all the -// instruments it has created or will create, are recreated automatically from -// the new MeterProvider. -// -// This is short for GetMeterProvider().Meter(name). +// This is short for MeterProvider().Meter(name).  func Meter(instrumentationName string, opts ...metric.MeterOption) metric.Meter {  	return MeterProvider().Meter(instrumentationName, opts...)  }  // MeterProvider returns the registered global meter provider. -// -// If no global MeterProvider has been registered, a No-op MeterProvider implementation is returned. When a global MeterProvider is registered for the first time, the returned MeterProvider, and all the Meters it has created or will create, are recreated automatically from the new MeterProvider. +// If none is registered then a No-op MeterProvider is returned.  func MeterProvider() metric.MeterProvider {  	return global.MeterProvider()  } -// SetMeterProvider registers mp as the global MeterProvider. +// SetMeterProvider registers `mp` as the global meter provider.  func SetMeterProvider(mp metric.MeterProvider) {  	global.SetMeterProvider(mp)  } diff --git a/vendor/go.opentelemetry.io/otel/metric/instrument.go b/vendor/go.opentelemetry.io/otel/metric/instrument.go deleted file mode 100644 index 268b2f155..000000000 --- a/vendor/go.opentelemetry.io/otel/metric/instrument.go +++ /dev/null @@ -1,332 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metric // import "go.opentelemetry.io/otel/metric" - -import "go.opentelemetry.io/otel/attribute" - -// Observable is used as a grouping mechanism for all instruments that are -// updated within a Callback. -type Observable interface { -	observable() -} - -// InstrumentOption applies options to all instruments. -type InstrumentOption interface { -	Int64CounterOption -	Int64UpDownCounterOption -	Int64HistogramOption -	Int64ObservableCounterOption -	Int64ObservableUpDownCounterOption -	Int64ObservableGaugeOption - -	Float64CounterOption -	Float64UpDownCounterOption -	Float64HistogramOption -	Float64ObservableCounterOption -	Float64ObservableUpDownCounterOption -	Float64ObservableGaugeOption -} - -type descOpt string - -func (o descOpt) applyFloat64Counter(c Float64CounterConfig) Float64CounterConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyFloat64UpDownCounter(c Float64UpDownCounterConfig) Float64UpDownCounterConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyFloat64ObservableCounter(c Float64ObservableCounterConfig) Float64ObservableCounterConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyFloat64ObservableUpDownCounter(c Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyFloat64ObservableGauge(c Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyInt64Counter(c Int64CounterConfig) Int64CounterConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyInt64UpDownCounter(c Int64UpDownCounterConfig) Int64UpDownCounterConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyInt64ObservableCounter(c Int64ObservableCounterConfig) Int64ObservableCounterConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyInt64ObservableUpDownCounter(c Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { -	c.description = string(o) -	return c -} - -func (o descOpt) applyInt64ObservableGauge(c Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { -	c.description = string(o) -	return c -} - -// WithDescription sets the instrument description. -func WithDescription(desc string) InstrumentOption { return descOpt(desc) } - -type unitOpt string - -func (o unitOpt) applyFloat64Counter(c Float64CounterConfig) Float64CounterConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyFloat64UpDownCounter(c Float64UpDownCounterConfig) Float64UpDownCounterConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyFloat64Histogram(c Float64HistogramConfig) Float64HistogramConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyFloat64ObservableCounter(c Float64ObservableCounterConfig) Float64ObservableCounterConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyFloat64ObservableUpDownCounter(c Float64ObservableUpDownCounterConfig) Float64ObservableUpDownCounterConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyFloat64ObservableGauge(c Float64ObservableGaugeConfig) Float64ObservableGaugeConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyInt64Counter(c Int64CounterConfig) Int64CounterConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyInt64UpDownCounter(c Int64UpDownCounterConfig) Int64UpDownCounterConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyInt64Histogram(c Int64HistogramConfig) Int64HistogramConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyInt64ObservableCounter(c Int64ObservableCounterConfig) Int64ObservableCounterConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyInt64ObservableUpDownCounter(c Int64ObservableUpDownCounterConfig) Int64ObservableUpDownCounterConfig { -	c.unit = string(o) -	return c -} - -func (o unitOpt) applyInt64ObservableGauge(c Int64ObservableGaugeConfig) Int64ObservableGaugeConfig { -	c.unit = string(o) -	return c -} - -// WithUnit sets the instrument unit. -func WithUnit(u string) InstrumentOption { return unitOpt(u) } - -// AddOption applies options to an addition measurement. See -// [MeasurementOption] for other options that can be used as a AddOption. -type AddOption interface { -	applyAdd(AddConfig) AddConfig -} - -// AddConfig contains options for an addition measurement. -type AddConfig struct { -	attrs attribute.Set -} - -// NewAddConfig returns a new [AddConfig] with all opts applied. -func NewAddConfig(opts []AddOption) AddConfig { -	config := AddConfig{attrs: *attribute.EmptySet()} -	for _, o := range opts { -		config = o.applyAdd(config) -	} -	return config -} - -// Attributes returns the configured attribute set. -func (c AddConfig) Attributes() attribute.Set { -	return c.attrs -} - -// RecordOption applies options to an addition measurement. See -// [MeasurementOption] for other options that can be used as a RecordOption. -type RecordOption interface { -	applyRecord(RecordConfig) RecordConfig -} - -// RecordConfig contains options for a recorded measurement. -type RecordConfig struct { -	attrs attribute.Set -} - -// NewRecordConfig returns a new [RecordConfig] with all opts applied. -func NewRecordConfig(opts []RecordOption) RecordConfig { -	config := RecordConfig{attrs: *attribute.EmptySet()} -	for _, o := range opts { -		config = o.applyRecord(config) -	} -	return config -} - -// Attributes returns the configured attribute set. -func (c RecordConfig) Attributes() attribute.Set { -	return c.attrs -} - -// ObserveOption applies options to an addition measurement. See -// [MeasurementOption] for other options that can be used as a ObserveOption. -type ObserveOption interface { -	applyObserve(ObserveConfig) ObserveConfig -} - -// ObserveConfig contains options for an observed measurement. -type ObserveConfig struct { -	attrs attribute.Set -} - -// NewObserveConfig returns a new [ObserveConfig] with all opts applied. -func NewObserveConfig(opts []ObserveOption) ObserveConfig { -	config := ObserveConfig{attrs: *attribute.EmptySet()} -	for _, o := range opts { -		config = o.applyObserve(config) -	} -	return config -} - -// Attributes returns the configured attribute set. -func (c ObserveConfig) Attributes() attribute.Set { -	return c.attrs -} - -// MeasurementOption applies options to all instrument measurement. -type MeasurementOption interface { -	AddOption -	RecordOption -	ObserveOption -} - -type attrOpt struct { -	set attribute.Set -} - -// mergeSets returns the union of keys between a and b. Any duplicate keys will -// use the value associated with b. -func mergeSets(a, b attribute.Set) attribute.Set { -	// NewMergeIterator uses the first value for any duplicates. -	iter := attribute.NewMergeIterator(&b, &a) -	merged := make([]attribute.KeyValue, 0, a.Len()+b.Len()) -	for iter.Next() { -		merged = append(merged, iter.Attribute()) -	} -	return attribute.NewSet(merged...) -} - -func (o attrOpt) applyAdd(c AddConfig) AddConfig { -	switch { -	case o.set.Len() == 0: -	case c.attrs.Len() == 0: -		c.attrs = o.set -	default: -		c.attrs = mergeSets(c.attrs, o.set) -	} -	return c -} - -func (o attrOpt) applyRecord(c RecordConfig) RecordConfig { -	switch { -	case o.set.Len() == 0: -	case c.attrs.Len() == 0: -		c.attrs = o.set -	default: -		c.attrs = mergeSets(c.attrs, o.set) -	} -	return c -} - -func (o attrOpt) applyObserve(c ObserveConfig) ObserveConfig { -	switch { -	case o.set.Len() == 0: -	case c.attrs.Len() == 0: -		c.attrs = o.set -	default: -		c.attrs = mergeSets(c.attrs, o.set) -	} -	return c -} - -// WithAttributeSet sets the attribute Set associated with a measurement is -// made with. -// -// If multiple WithAttributeSet or WithAttributes options are passed the -// attributes will be merged together in the order they are passed. Attributes -// with duplicate keys will use the last value passed. -func WithAttributeSet(attributes attribute.Set) MeasurementOption { -	return attrOpt{set: attributes} -} - -// WithAttributes converts attributes into an attribute Set and sets the Set to -// be associated with a measurement. This is shorthand for: -// -//	cp := make([]attribute.KeyValue, len(attributes)) -//	copy(cp, attributes) -//	WithAttributes(attribute.NewSet(cp...)) -// -// [attribute.NewSet] may modify the passed attributes so this will make a copy -// of attributes before creating a set in order to ensure this function is -// concurrent safe. This makes this option function less optimized in -// comparison to [WithAttributeSet]. Therefore, [WithAttributeSet] should be -// preferred for performance sensitive code. -// -// See [WithAttributeSet] for information about how multiple WithAttributes are -// merged. -func WithAttributes(attributes ...attribute.KeyValue) MeasurementOption { -	cp := make([]attribute.KeyValue, len(attributes)) -	copy(cp, attributes) -	return attrOpt{set: attribute.NewSet(cp...)} -} diff --git a/vendor/go.opentelemetry.io/otel/metric/instrument/asyncfloat64.go b/vendor/go.opentelemetry.io/otel/metric/instrument/asyncfloat64.go new file mode 100644 index 000000000..0b5d5a99c --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/instrument/asyncfloat64.go @@ -0,0 +1,130 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package instrument // import "go.opentelemetry.io/otel/metric/instrument" + +import ( +	"context" + +	"go.opentelemetry.io/otel/attribute" +) + +// Float64Observable describes a set of instruments used asynchronously to +// record float64 measurements once per collection cycle. Observations of +// these instruments are only made within a callback. +// +// Warning: methods may be added to this interface in minor releases. +type Float64Observable interface { +	Asynchronous + +	float64Observable() +} + +// Float64ObservableCounter is an instrument used to asynchronously record +// increasing float64 measurements once per collection cycle. Observations are +// only made within a callback for this instrument. The value observed is +// assumed the to be the cumulative sum of the count. +// +// Warning: methods may be added to this interface in minor releases. +type Float64ObservableCounter interface{ Float64Observable } + +// Float64ObservableUpDownCounter is an instrument used to asynchronously +// record float64 measurements once per collection cycle. Observations are only +// made within a callback for this instrument. The value observed is assumed +// the to be the cumulative sum of the count. +// +// Warning: methods may be added to this interface in minor releases. +type Float64ObservableUpDownCounter interface{ Float64Observable } + +// Float64ObservableGauge is an instrument used to asynchronously record +// instantaneous float64 measurements once per collection cycle. Observations +// are only made within a callback for this instrument. +// +// Warning: methods may be added to this interface in minor releases. +type Float64ObservableGauge interface{ Float64Observable } + +// Float64Observer is a recorder of float64 measurements. +// +// Warning: methods may be added to this interface in minor releases. +type Float64Observer interface { +	Observe(value float64, attributes ...attribute.KeyValue) +} + +// Float64Callback is a function registered with a Meter that makes +// observations for a Float64Observerable instrument it is registered with. +// Calls to the Float64Observer record measurement values for the +// Float64Observable. +// +// The function needs to complete in a finite amount of time and the deadline +// of the passed context is expected to be honored. +// +// The function needs to make unique observations across all registered +// Float64Callbacks. Meaning, it should not report measurements with the same +// attributes as another Float64Callbacks also registered for the same +// instrument. +// +// The function needs to be concurrent safe. +type Float64Callback func(context.Context, Float64Observer) error + +// Float64ObserverConfig contains options for Asynchronous instruments that +// observe float64 values. +type Float64ObserverConfig struct { +	description string +	unit        string +	callbacks   []Float64Callback +} + +// NewFloat64ObserverConfig returns a new Float64ObserverConfig with all opts +// applied. +func NewFloat64ObserverConfig(opts ...Float64ObserverOption) Float64ObserverConfig { +	var config Float64ObserverConfig +	for _, o := range opts { +		config = o.applyFloat64Observer(config) +	} +	return config +} + +// Description returns the Config description. +func (c Float64ObserverConfig) Description() string { +	return c.description +} + +// Unit returns the Config unit. +func (c Float64ObserverConfig) Unit() string { +	return c.unit +} + +// Callbacks returns the Config callbacks. +func (c Float64ObserverConfig) Callbacks() []Float64Callback { +	return c.callbacks +} + +// Float64ObserverOption applies options to float64 Observer instruments. +type Float64ObserverOption interface { +	applyFloat64Observer(Float64ObserverConfig) Float64ObserverConfig +} + +type float64ObserverOptionFunc func(Float64ObserverConfig) Float64ObserverConfig + +func (fn float64ObserverOptionFunc) applyFloat64Observer(cfg Float64ObserverConfig) Float64ObserverConfig { +	return fn(cfg) +} + +// WithFloat64Callback adds callback to be called for an instrument. +func WithFloat64Callback(callback Float64Callback) Float64ObserverOption { +	return float64ObserverOptionFunc(func(cfg Float64ObserverConfig) Float64ObserverConfig { +		cfg.callbacks = append(cfg.callbacks, callback) +		return cfg +	}) +} diff --git a/vendor/go.opentelemetry.io/otel/metric/instrument/asyncint64.go b/vendor/go.opentelemetry.io/otel/metric/instrument/asyncint64.go new file mode 100644 index 000000000..05feeacb0 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/instrument/asyncint64.go @@ -0,0 +1,130 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package instrument // import "go.opentelemetry.io/otel/metric/instrument" + +import ( +	"context" + +	"go.opentelemetry.io/otel/attribute" +) + +// Int64Observable describes a set of instruments used asynchronously to record +// int64 measurements once per collection cycle. Observations of these +// instruments are only made within a callback. +// +// Warning: methods may be added to this interface in minor releases. +type Int64Observable interface { +	Asynchronous + +	int64Observable() +} + +// Int64ObservableCounter is an instrument used to asynchronously record +// increasing int64 measurements once per collection cycle. Observations are +// only made within a callback for this instrument. The value observed is +// assumed the to be the cumulative sum of the count. +// +// Warning: methods may be added to this interface in minor releases. +type Int64ObservableCounter interface{ Int64Observable } + +// Int64ObservableUpDownCounter is an instrument used to asynchronously record +// int64 measurements once per collection cycle. Observations are only made +// within a callback for this instrument. The value observed is assumed the to +// be the cumulative sum of the count. +// +// Warning: methods may be added to this interface in minor releases. +type Int64ObservableUpDownCounter interface{ Int64Observable } + +// Int64ObservableGauge is an instrument used to asynchronously record +// instantaneous int64 measurements once per collection cycle. Observations are +// only made within a callback for this instrument. +// +// Warning: methods may be added to this interface in minor releases. +type Int64ObservableGauge interface{ Int64Observable } + +// Int64Observer is a recorder of int64 measurements. +// +// Warning: methods may be added to this interface in minor releases. +type Int64Observer interface { +	Observe(value int64, attributes ...attribute.KeyValue) +} + +// Int64Callback is a function registered with a Meter that makes +// observations for a Int64Observerable instrument it is registered with. +// Calls to the Int64Observer record measurement values for the +// Int64Observable. +// +// The function needs to complete in a finite amount of time and the deadline +// of the passed context is expected to be honored. +// +// The function needs to make unique observations across all registered +// Int64Callback. Meaning, it should not report measurements with the same +// attributes as another Int64Callbacks also registered for the same +// instrument. +// +// The function needs to be concurrent safe. +type Int64Callback func(context.Context, Int64Observer) error + +// Int64ObserverConfig contains options for Asynchronous instruments that +// observe int64 values. +type Int64ObserverConfig struct { +	description string +	unit        string +	callbacks   []Int64Callback +} + +// NewInt64ObserverConfig returns a new Int64ObserverConfig with all opts +// applied. +func NewInt64ObserverConfig(opts ...Int64ObserverOption) Int64ObserverConfig { +	var config Int64ObserverConfig +	for _, o := range opts { +		config = o.applyInt64Observer(config) +	} +	return config +} + +// Description returns the Config description. +func (c Int64ObserverConfig) Description() string { +	return c.description +} + +// Unit returns the Config unit. +func (c Int64ObserverConfig) Unit() string { +	return c.unit +} + +// Callbacks returns the Config callbacks. +func (c Int64ObserverConfig) Callbacks() []Int64Callback { +	return c.callbacks +} + +// Int64ObserverOption applies options to int64 Observer instruments. +type Int64ObserverOption interface { +	applyInt64Observer(Int64ObserverConfig) Int64ObserverConfig +} + +type int64ObserverOptionFunc func(Int64ObserverConfig) Int64ObserverConfig + +func (fn int64ObserverOptionFunc) applyInt64Observer(cfg Int64ObserverConfig) Int64ObserverConfig { +	return fn(cfg) +} + +// WithInt64Callback adds callback to be called for an instrument. +func WithInt64Callback(callback Int64Callback) Int64ObserverOption { +	return int64ObserverOptionFunc(func(cfg Int64ObserverConfig) Int64ObserverConfig { +		cfg.callbacks = append(cfg.callbacks, callback) +		return cfg +	}) +} diff --git a/vendor/go.opentelemetry.io/otel/metric/instrument/deprecation.go b/vendor/go.opentelemetry.io/otel/metric/instrument/deprecation.go deleted file mode 100644 index a2e4b31e1..000000000 --- a/vendor/go.opentelemetry.io/otel/metric/instrument/deprecation.go +++ /dev/null @@ -1,452 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package instrument provides the OpenTelemetry API instruments used to make -// measurements. -// -// Deprecated: Use go.opentelemetry.io/otel/metric instead. -package instrument // import "go.opentelemetry.io/otel/metric/instrument" - -import ( -	"go.opentelemetry.io/otel/metric" -) - -// Float64Observable is an alias for [metric.Float64Observable]. -// -// Deprecated: Use [metric.Float64Observable] instead. -type Float64Observable metric.Float64Observable - -// Float64ObservableCounter is an alias for [metric.Float64ObservableCounter]. -// -// Deprecated: Use [metric.Float64ObservableCounter] instead. -type Float64ObservableCounter metric.Float64ObservableCounter - -// Float64ObservableCounterConfig is an alias for -// [metric.Float64ObservableCounterConfig]. -// -// Deprecated: Use [metric.Float64ObservableCounterConfig] instead. -type Float64ObservableCounterConfig metric.Float64ObservableCounterConfig - -// NewFloat64ObservableCounterConfig wraps -// [metric.NewFloat64ObservableCounterConfig]. -// -// Deprecated: Use [metric.NewFloat64ObservableCounterConfig] instead. -func NewFloat64ObservableCounterConfig(opts ...Float64ObservableCounterOption) Float64ObservableCounterConfig { -	o := make([]metric.Float64ObservableCounterOption, len(opts)) -	for i := range opts { -		o[i] = metric.Float64ObservableCounterOption(opts[i]) -	} -	c := metric.NewFloat64ObservableCounterConfig(o...) -	return Float64ObservableCounterConfig(c) -} - -// Float64ObservableCounterOption is an alias for -// [metric.Float64ObservableCounterOption]. -// -// Deprecated: Use [metric.Float64ObservableCounterOption] instead. -type Float64ObservableCounterOption metric.Float64ObservableCounterOption - -// Float64ObservableUpDownCounter is an alias for -// [metric.Float64ObservableUpDownCounter]. -// -// Deprecated: Use [metric.Float64ObservableUpDownCounter] instead. -type Float64ObservableUpDownCounter metric.Float64ObservableUpDownCounter - -// Float64ObservableUpDownCounterConfig is an alias for -// [metric.Float64ObservableUpDownCounterConfig]. -// -// Deprecated: Use [metric.Float64ObservableUpDownCounterConfig] instead. -type Float64ObservableUpDownCounterConfig metric.Float64ObservableUpDownCounterConfig - -// NewFloat64ObservableUpDownCounterConfig wraps -// [metric.NewFloat64ObservableUpDownCounterConfig]. -// -// Deprecated: Use [metric.NewFloat64ObservableUpDownCounterConfig] instead. -func NewFloat64ObservableUpDownCounterConfig(opts ...Float64ObservableUpDownCounterOption) Float64ObservableUpDownCounterConfig { -	o := make([]metric.Float64ObservableUpDownCounterOption, len(opts)) -	for i := range opts { -		o[i] = metric.Float64ObservableUpDownCounterOption(opts[i]) -	} -	c := metric.NewFloat64ObservableUpDownCounterConfig(o...) -	return Float64ObservableUpDownCounterConfig(c) -} - -// Float64ObservableUpDownCounterOption is an alias for -// [metric.Float64ObservableUpDownCounterOption]. -// -// Deprecated: Use [metric.Float64ObservableUpDownCounterOption] instead. -type Float64ObservableUpDownCounterOption metric.Float64ObservableUpDownCounterOption - -// Float64ObservableGauge is an alias for [metric.Float64ObservableGauge]. -// -// Deprecated: Use [metric.Float64ObservableGauge] instead. -type Float64ObservableGauge metric.Float64ObservableGauge - -// Float64ObservableGaugeConfig is an alias for -// [metric.Float64ObservableGaugeConfig]. -// -// Deprecated: Use [metric.Float64ObservableGaugeConfig] instead. -type Float64ObservableGaugeConfig metric.Float64ObservableGaugeConfig - -// NewFloat64ObservableGaugeConfig wraps -// [metric.NewFloat64ObservableGaugeConfig]. -// -// Deprecated: Use [metric.NewFloat64ObservableGaugeConfig] instead. -func NewFloat64ObservableGaugeConfig(opts ...Float64ObservableGaugeOption) Float64ObservableGaugeConfig { -	o := make([]metric.Float64ObservableGaugeOption, len(opts)) -	for i := range opts { -		o[i] = metric.Float64ObservableGaugeOption(opts[i]) -	} -	c := metric.NewFloat64ObservableGaugeConfig(o...) -	return Float64ObservableGaugeConfig(c) -} - -// Float64ObservableGaugeOption is an alias for -// [metric.Float64ObservableGaugeOption]. -// -// Deprecated: Use [metric.Float64ObservableGaugeOption] instead. -type Float64ObservableGaugeOption metric.Float64ObservableGaugeOption - -// Float64Observer is an alias for [metric.Float64Observer]. -// -// Deprecated: Use [metric.Float64Observer] instead. -type Float64Observer metric.Float64Observer - -// Float64Callback is an alias for [metric.Float64Callback]. -// -// Deprecated: Use [metric.Float64Callback] instead. -type Float64Callback metric.Float64Callback - -// Float64ObservableOption is an alias for [metric.Float64ObservableOption]. -// -// Deprecated: Use [metric.Float64ObservableOption] instead. -type Float64ObservableOption metric.Float64ObservableOption - -// WithFloat64Callback wraps [metric.WithFloat64Callback]. -// -// Deprecated: Use [metric.WithFloat64Callback] instead. -func WithFloat64Callback(callback Float64Callback) Float64ObservableOption { -	cback := metric.Float64Callback(callback) -	opt := metric.WithFloat64Callback(cback) -	return Float64ObservableOption(opt) -} - -// Int64Observable is an alias for [metric.Int64Observable]. -// -// Deprecated: Use [metric.Int64Observable] instead. -type Int64Observable metric.Int64Observable - -// Int64ObservableCounter is an alias for [metric.Int64ObservableCounter]. -// -// Deprecated: Use [metric.Int64ObservableCounter] instead. -type Int64ObservableCounter metric.Int64ObservableCounter - -// Int64ObservableCounterConfig is an alias for -// [metric.Int64ObservableCounterConfig]. -// -// Deprecated: Use [metric.Int64ObservableCounterConfig] instead. -type Int64ObservableCounterConfig metric.Int64ObservableCounterConfig - -// NewInt64ObservableCounterConfig wraps -// [metric.NewInt64ObservableCounterConfig]. -// -// Deprecated: Use [metric.NewInt64ObservableCounterConfig] instead. -func NewInt64ObservableCounterConfig(opts ...Int64ObservableCounterOption) Int64ObservableCounterConfig { -	o := make([]metric.Int64ObservableCounterOption, len(opts)) -	for i := range opts { -		o[i] = metric.Int64ObservableCounterOption(opts[i]) -	} -	c := metric.NewInt64ObservableCounterConfig(o...) -	return Int64ObservableCounterConfig(c) -} - -// Int64ObservableCounterOption is an alias for -// [metric.Int64ObservableCounterOption]. -// -// Deprecated: Use [metric.Int64ObservableCounterOption] instead. -type Int64ObservableCounterOption metric.Int64ObservableCounterOption - -// Int64ObservableUpDownCounter is an alias for -// [metric.Int64ObservableUpDownCounter]. -// -// Deprecated: Use [metric.Int64ObservableUpDownCounter] instead. -type Int64ObservableUpDownCounter metric.Int64ObservableUpDownCounter - -// Int64ObservableUpDownCounterConfig is an alias for -// [metric.Int64ObservableUpDownCounterConfig]. -// -// Deprecated: Use [metric.Int64ObservableUpDownCounterConfig] instead. -type Int64ObservableUpDownCounterConfig metric.Int64ObservableUpDownCounterConfig - -// NewInt64ObservableUpDownCounterConfig wraps -// [metric.NewInt64ObservableUpDownCounterConfig]. -// -// Deprecated: Use [metric.NewInt64ObservableUpDownCounterConfig] instead. -func NewInt64ObservableUpDownCounterConfig(opts ...Int64ObservableUpDownCounterOption) Int64ObservableUpDownCounterConfig { -	o := make([]metric.Int64ObservableUpDownCounterOption, len(opts)) -	for i := range opts { -		o[i] = metric.Int64ObservableUpDownCounterOption(opts[i]) -	} -	c := metric.NewInt64ObservableUpDownCounterConfig(o...) -	return Int64ObservableUpDownCounterConfig(c) -} - -// Int64ObservableUpDownCounterOption is an alias for -// [metric.Int64ObservableUpDownCounterOption]. -// -// Deprecated: Use [metric.Int64ObservableUpDownCounterOption] instead. -type Int64ObservableUpDownCounterOption metric.Int64ObservableUpDownCounterOption - -// Int64ObservableGauge is an alias for [metric.Int64ObservableGauge]. -// -// Deprecated: Use [metric.Int64ObservableGauge] instead. -type Int64ObservableGauge metric.Int64ObservableGauge - -// Int64ObservableGaugeConfig is an alias for -// [metric.Int64ObservableGaugeConfig]. -// -// Deprecated: Use [metric.Int64ObservableGaugeConfig] instead. -type Int64ObservableGaugeConfig metric.Int64ObservableGaugeConfig - -// NewInt64ObservableGaugeConfig wraps [metric.NewInt64ObservableGaugeConfig]. -// -// Deprecated: Use [metric.NewInt64ObservableGaugeConfig] instead. -func NewInt64ObservableGaugeConfig(opts ...Int64ObservableGaugeOption) Int64ObservableGaugeConfig { -	o := make([]metric.Int64ObservableGaugeOption, len(opts)) -	for i := range opts { -		o[i] = metric.Int64ObservableGaugeOption(opts[i]) -	} -	c := metric.NewInt64ObservableGaugeConfig(o...) -	return Int64ObservableGaugeConfig(c) -} - -// Int64ObservableGaugeOption is an alias for -// [metric.Int64ObservableGaugeOption]. -// -// Deprecated: Use [metric.Int64ObservableGaugeOption] instead. -type Int64ObservableGaugeOption metric.Int64ObservableGaugeOption - -// Int64Observer is an alias for [metric.Int64Observer]. -// -// Deprecated: Use [metric.Int64Observer] instead. -type Int64Observer metric.Int64Observer - -// Int64Callback is an alias for [metric.Int64Callback]. -// -// Deprecated: Use [metric.Int64Callback] instead. -type Int64Callback metric.Int64Callback - -// Int64ObservableOption is an alias for [metric.Int64ObservableOption]. -// -// Deprecated: Use [metric.Int64ObservableOption] instead. -type Int64ObservableOption metric.Int64ObservableOption - -// WithInt64Callback wraps [metric.WithInt64Callback]. -// -// Deprecated: Use [metric.WithInt64Callback] instead. -func WithInt64Callback(callback Int64Callback) Int64ObservableOption { -	cback := metric.Int64Callback(callback) -	opt := metric.WithInt64Callback(cback) -	return Int64ObservableOption(opt) -} - -// Float64Counter is an alias for [metric.Float64Counter]. -// -// Deprecated: Use [metric.Float64Counter] instead. -type Float64Counter metric.Float64Counter - -// Float64CounterConfig is an alias for [metric.Float64CounterConfig]. -// -// Deprecated: Use [metric.Float64CounterConfig] instead. -type Float64CounterConfig metric.Float64CounterConfig - -// NewFloat64CounterConfig wraps [metric.NewFloat64CounterConfig]. -// -// Deprecated: Use [metric.NewFloat64CounterConfig] instead. -func NewFloat64CounterConfig(opts ...Float64CounterOption) Float64CounterConfig { -	o := make([]metric.Float64CounterOption, len(opts)) -	for i := range opts { -		o[i] = metric.Float64CounterOption(opts[i]) -	} -	c := metric.NewFloat64CounterConfig(o...) -	return Float64CounterConfig(c) -} - -// Float64CounterOption is an alias for [metric.Float64CounterOption]. -// -// Deprecated: Use [metric.Float64CounterOption] instead. -type Float64CounterOption metric.Float64CounterOption - -// Float64UpDownCounter is an alias for [metric.Float64UpDownCounter]. -// -// Deprecated: Use [metric.Float64UpDownCounter] instead. -type Float64UpDownCounter metric.Float64UpDownCounter - -// Float64UpDownCounterConfig is an alias for -// [metric.Float64UpDownCounterConfig]. -// -// Deprecated: Use [metric.Float64UpDownCounterConfig] instead. -type Float64UpDownCounterConfig metric.Float64UpDownCounterConfig - -// NewFloat64UpDownCounterConfig wraps [metric.NewFloat64UpDownCounterConfig]. -// -// Deprecated: Use [metric.NewFloat64UpDownCounterConfig] instead. -func NewFloat64UpDownCounterConfig(opts ...Float64UpDownCounterOption) Float64UpDownCounterConfig { -	o := make([]metric.Float64UpDownCounterOption, len(opts)) -	for i := range opts { -		o[i] = metric.Float64UpDownCounterOption(opts[i]) -	} -	c := metric.NewFloat64UpDownCounterConfig(o...) -	return Float64UpDownCounterConfig(c) -} - -// Float64UpDownCounterOption is an alias for -// [metric.Float64UpDownCounterOption]. -// -// Deprecated: Use [metric.Float64UpDownCounterOption] instead. -type Float64UpDownCounterOption metric.Float64UpDownCounterOption - -// Float64Histogram is an alias for [metric.Float64Histogram]. -// -// Deprecated: Use [metric.Float64Histogram] instead. -type Float64Histogram metric.Float64Histogram - -// Float64HistogramConfig is an alias for [metric.Float64HistogramConfig]. -// -// Deprecated: Use [metric.Float64HistogramConfig] instead. -type Float64HistogramConfig metric.Float64HistogramConfig - -// NewFloat64HistogramConfig wraps [metric.NewFloat64HistogramConfig]. -// -// Deprecated: Use [metric.NewFloat64HistogramConfig] instead. -func NewFloat64HistogramConfig(opts ...Float64HistogramOption) Float64HistogramConfig { -	o := make([]metric.Float64HistogramOption, len(opts)) -	for i := range opts { -		o[i] = metric.Float64HistogramOption(opts[i]) -	} -	c := metric.NewFloat64HistogramConfig(o...) -	return Float64HistogramConfig(c) -} - -// Float64HistogramOption is an alias for [metric.Float64HistogramOption]. -// -// Deprecated: Use [metric.Float64HistogramOption] instead. -type Float64HistogramOption metric.Float64HistogramOption - -// Int64Counter is an alias for [metric.Int64Counter]. -// -// Deprecated: Use [metric.Int64Counter] instead. -type Int64Counter metric.Int64Counter - -// Int64CounterConfig is an alias for [metric.Int64CounterConfig]. -// -// Deprecated: Use [metric.Int64CounterConfig] instead. -type Int64CounterConfig metric.Int64CounterConfig - -// NewInt64CounterConfig wraps [metric.NewInt64CounterConfig]. -// -// Deprecated: Use [metric.NewInt64CounterConfig] instead. -func NewInt64CounterConfig(opts ...Int64CounterOption) Int64CounterConfig { -	o := make([]metric.Int64CounterOption, len(opts)) -	for i := range opts { -		o[i] = metric.Int64CounterOption(opts[i]) -	} -	c := metric.NewInt64CounterConfig(o...) -	return Int64CounterConfig(c) -} - -// Int64CounterOption is an alias for [metric.Int64CounterOption]. -// -// Deprecated: Use [metric.Int64CounterOption] instead. -type Int64CounterOption metric.Int64CounterOption - -// Int64UpDownCounter is an alias for [metric.Int64UpDownCounter]. -// -// Deprecated: Use [metric.Int64UpDownCounter] instead. -type Int64UpDownCounter metric.Int64UpDownCounter - -// Int64UpDownCounterConfig is an alias for [metric.Int64UpDownCounterConfig]. -// -// Deprecated: Use [metric.Int64UpDownCounterConfig] instead. -type Int64UpDownCounterConfig metric.Int64UpDownCounterConfig - -// NewInt64UpDownCounterConfig wraps [metric.NewInt64UpDownCounterConfig]. -// -// Deprecated: Use [metric.NewInt64UpDownCounterConfig] instead. -func NewInt64UpDownCounterConfig(opts ...Int64UpDownCounterOption) Int64UpDownCounterConfig { -	o := make([]metric.Int64UpDownCounterOption, len(opts)) -	for i := range opts { -		o[i] = metric.Int64UpDownCounterOption(opts[i]) -	} -	c := metric.NewInt64UpDownCounterConfig(o...) -	return Int64UpDownCounterConfig(c) -} - -// Int64UpDownCounterOption is an alias for [metric.Int64UpDownCounterOption]. -// -// Deprecated: Use [metric.Int64UpDownCounterOption] instead. -type Int64UpDownCounterOption metric.Int64UpDownCounterOption - -// Int64Histogram is an alias for [metric.Int64Histogram]. -// -// Deprecated: Use [metric.Int64Histogram] instead. -type Int64Histogram metric.Int64Histogram - -// Int64HistogramConfig is an alias for [metric.Int64HistogramConfig]. -// -// Deprecated: Use [metric.Int64HistogramConfig] instead. -type Int64HistogramConfig metric.Int64HistogramConfig - -// NewInt64HistogramConfig wraps [metric.NewInt64HistogramConfig]. -// -// Deprecated: Use [metric.NewInt64HistogramConfig] instead. -func NewInt64HistogramConfig(opts ...Int64HistogramOption) Int64HistogramConfig { -	o := make([]metric.Int64HistogramOption, len(opts)) -	for i := range opts { -		o[i] = metric.Int64HistogramOption(opts[i]) -	} -	c := metric.NewInt64HistogramConfig(o...) -	return Int64HistogramConfig(c) -} - -// Int64HistogramOption is an alias for [metric.Int64HistogramOption]. -// -// Deprecated: Use [metric.Int64HistogramOption] instead. -type Int64HistogramOption metric.Int64HistogramOption - -// Observable is an alias for [metric.Observable]. -// -// Deprecated: Use [metric.Observable] instead. -type Observable metric.Observable - -// Option is an alias for [metric.InstrumentOption]. -// -// Deprecated: Use [metric.InstrumentOption] instead. -type Option metric.InstrumentOption - -// WithDescription is an alias for [metric.WithDescription]. -// -// Deprecated: Use [metric.WithDescription] instead. -func WithDescription(desc string) Option { -	o := metric.WithDescription(desc) -	return Option(o) -} - -// WithUnit is an alias for [metric.WithUnit]. -// -// Deprecated: Use [metric.WithUnit] instead. -func WithUnit(u string) Option { -	o := metric.WithUnit(u) -	return Option(o) -} diff --git a/vendor/go.opentelemetry.io/otel/metric/instrument/instrument.go b/vendor/go.opentelemetry.io/otel/metric/instrument/instrument.go new file mode 100644 index 000000000..f6dd9e890 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/instrument/instrument.go @@ -0,0 +1,88 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package instrument // import "go.opentelemetry.io/otel/metric/instrument" + +// Asynchronous instruments are instruments that are updated within a Callback. +// If an instrument is observed outside of it's callback it should be an error. +// +// This interface is used as a grouping mechanism. +type Asynchronous interface { +	asynchronous() +} + +// Synchronous instruments are updated in line with application code. +// +// This interface is used as a grouping mechanism. +type Synchronous interface { +	synchronous() +} + +// Option applies options to all instruments. +type Option interface { +	Float64ObserverOption +	Int64ObserverOption +	Float64Option +	Int64Option +} + +type descOpt string + +func (o descOpt) applyFloat64(c Float64Config) Float64Config { +	c.description = string(o) +	return c +} + +func (o descOpt) applyInt64(c Int64Config) Int64Config { +	c.description = string(o) +	return c +} + +func (o descOpt) applyFloat64Observer(c Float64ObserverConfig) Float64ObserverConfig { +	c.description = string(o) +	return c +} + +func (o descOpt) applyInt64Observer(c Int64ObserverConfig) Int64ObserverConfig { +	c.description = string(o) +	return c +} + +// WithDescription sets the instrument description. +func WithDescription(desc string) Option { return descOpt(desc) } + +type unitOpt string + +func (o unitOpt) applyFloat64(c Float64Config) Float64Config { +	c.unit = string(o) +	return c +} + +func (o unitOpt) applyInt64(c Int64Config) Int64Config { +	c.unit = string(o) +	return c +} + +func (o unitOpt) applyFloat64Observer(c Float64ObserverConfig) Float64ObserverConfig { +	c.unit = string(o) +	return c +} + +func (o unitOpt) applyInt64Observer(c Int64ObserverConfig) Int64ObserverConfig { +	c.unit = string(o) +	return c +} + +// WithUnit sets the instrument unit. +func WithUnit(u string) Option { return unitOpt(u) } diff --git a/vendor/go.opentelemetry.io/otel/metric/instrument/syncfloat64.go b/vendor/go.opentelemetry.io/otel/metric/instrument/syncfloat64.go new file mode 100644 index 000000000..2cdfeb269 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/instrument/syncfloat64.go @@ -0,0 +1,85 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package instrument // import "go.opentelemetry.io/otel/metric/instrument" + +import ( +	"context" + +	"go.opentelemetry.io/otel/attribute" +) + +// Float64Counter is an instrument that records increasing float64 values. +// +// Warning: methods may be added to this interface in minor releases. +type Float64Counter interface { +	// Add records a change to the counter. +	Add(ctx context.Context, incr float64, attrs ...attribute.KeyValue) + +	Synchronous +} + +// Float64UpDownCounter is an instrument that records increasing or decreasing +// float64 values. +// +// Warning: methods may be added to this interface in minor releases. +type Float64UpDownCounter interface { +	// Add records a change to the counter. +	Add(ctx context.Context, incr float64, attrs ...attribute.KeyValue) + +	Synchronous +} + +// Float64Histogram is an instrument that records a distribution of float64 +// values. +// +// Warning: methods may be added to this interface in minor releases. +type Float64Histogram interface { +	// Record adds an additional value to the distribution. +	Record(ctx context.Context, incr float64, attrs ...attribute.KeyValue) + +	Synchronous +} + +// Float64Config contains options for Asynchronous instruments that +// observe float64 values. +type Float64Config struct { +	description string +	unit        string +} + +// Float64Config contains options for Synchronous instruments that record +// float64 values. +func NewFloat64Config(opts ...Float64Option) Float64Config { +	var config Float64Config +	for _, o := range opts { +		config = o.applyFloat64(config) +	} +	return config +} + +// Description returns the Config description. +func (c Float64Config) Description() string { +	return c.description +} + +// Unit returns the Config unit. +func (c Float64Config) Unit() string { +	return c.unit +} + +// Float64Option applies options to synchronous float64 instruments. +type Float64Option interface { +	applyFloat64(Float64Config) Float64Config +} diff --git a/vendor/go.opentelemetry.io/otel/metric/instrument/syncint64.go b/vendor/go.opentelemetry.io/otel/metric/instrument/syncint64.go new file mode 100644 index 000000000..e212c6d69 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/instrument/syncint64.go @@ -0,0 +1,85 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package instrument // import "go.opentelemetry.io/otel/metric/instrument" + +import ( +	"context" + +	"go.opentelemetry.io/otel/attribute" +) + +// Int64Counter is an instrument that records increasing int64 values. +// +// Warning: methods may be added to this interface in minor releases. +type Int64Counter interface { +	// Add records a change to the counter. +	Add(ctx context.Context, incr int64, attrs ...attribute.KeyValue) + +	Synchronous +} + +// Int64UpDownCounter is an instrument that records increasing or decreasing +// int64 values. +// +// Warning: methods may be added to this interface in minor releases. +type Int64UpDownCounter interface { +	// Add records a change to the counter. +	Add(ctx context.Context, incr int64, attrs ...attribute.KeyValue) + +	Synchronous +} + +// Int64Histogram is an instrument that records a distribution of int64 +// values. +// +// Warning: methods may be added to this interface in minor releases. +type Int64Histogram interface { +	// Record adds an additional value to the distribution. +	Record(ctx context.Context, incr int64, attrs ...attribute.KeyValue) + +	Synchronous +} + +// Int64Config contains options for Synchronous instruments that record int64 +// values. +type Int64Config struct { +	description string +	unit        string +} + +// NewInt64Config returns a new Int64Config with all opts +// applied. +func NewInt64Config(opts ...Int64Option) Int64Config { +	var config Int64Config +	for _, o := range opts { +		config = o.applyInt64(config) +	} +	return config +} + +// Description returns the Config description. +func (c Int64Config) Description() string { +	return c.description +} + +// Unit returns the Config unit. +func (c Int64Config) Unit() string { +	return c.unit +} + +// Int64Option applies options to synchronous int64 instruments. +type Int64Option interface { +	applyInt64(Int64Config) Int64Config +} diff --git a/vendor/go.opentelemetry.io/otel/metric/internal/global/instruments.go b/vendor/go.opentelemetry.io/otel/metric/internal/global/instruments.go index a3b898bfd..d1480fa5f 100644 --- a/vendor/go.opentelemetry.io/otel/metric/internal/global/instruments.go +++ b/vendor/go.opentelemetry.io/otel/metric/internal/global/instruments.go @@ -19,27 +19,27 @@ import (  	"sync/atomic"  	"go.opentelemetry.io/otel" +	"go.opentelemetry.io/otel/attribute"  	"go.opentelemetry.io/otel/metric" -	"go.opentelemetry.io/otel/metric/embedded" +	"go.opentelemetry.io/otel/metric/instrument"  )  // unwrapper unwraps to return the underlying instrument implementation.  type unwrapper interface { -	Unwrap() metric.Observable +	Unwrap() instrument.Asynchronous  }  type afCounter struct { -	embedded.Float64ObservableCounter -	metric.Float64Observable +	instrument.Float64Observable  	name string -	opts []metric.Float64ObservableCounterOption +	opts []instrument.Float64ObserverOption -	delegate atomic.Value //metric.Float64ObservableCounter +	delegate atomic.Value //instrument.Float64ObservableCounter  }  var _ unwrapper = (*afCounter)(nil) -var _ metric.Float64ObservableCounter = (*afCounter)(nil) +var _ instrument.Float64ObservableCounter = (*afCounter)(nil)  func (i *afCounter) setDelegate(m metric.Meter) {  	ctr, err := m.Float64ObservableCounter(i.name, i.opts...) @@ -50,25 +50,24 @@ func (i *afCounter) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *afCounter) Unwrap() metric.Observable { +func (i *afCounter) Unwrap() instrument.Asynchronous {  	if ctr := i.delegate.Load(); ctr != nil { -		return ctr.(metric.Float64ObservableCounter) +		return ctr.(instrument.Float64ObservableCounter)  	}  	return nil  }  type afUpDownCounter struct { -	embedded.Float64ObservableUpDownCounter -	metric.Float64Observable +	instrument.Float64Observable  	name string -	opts []metric.Float64ObservableUpDownCounterOption +	opts []instrument.Float64ObserverOption -	delegate atomic.Value //metric.Float64ObservableUpDownCounter +	delegate atomic.Value //instrument.Float64ObservableUpDownCounter  }  var _ unwrapper = (*afUpDownCounter)(nil) -var _ metric.Float64ObservableUpDownCounter = (*afUpDownCounter)(nil) +var _ instrument.Float64ObservableUpDownCounter = (*afUpDownCounter)(nil)  func (i *afUpDownCounter) setDelegate(m metric.Meter) {  	ctr, err := m.Float64ObservableUpDownCounter(i.name, i.opts...) @@ -79,25 +78,24 @@ func (i *afUpDownCounter) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *afUpDownCounter) Unwrap() metric.Observable { +func (i *afUpDownCounter) Unwrap() instrument.Asynchronous {  	if ctr := i.delegate.Load(); ctr != nil { -		return ctr.(metric.Float64ObservableUpDownCounter) +		return ctr.(instrument.Float64ObservableUpDownCounter)  	}  	return nil  }  type afGauge struct { -	embedded.Float64ObservableGauge -	metric.Float64Observable +	instrument.Float64Observable  	name string -	opts []metric.Float64ObservableGaugeOption +	opts []instrument.Float64ObserverOption -	delegate atomic.Value //metric.Float64ObservableGauge +	delegate atomic.Value //instrument.Float64ObservableGauge  }  var _ unwrapper = (*afGauge)(nil) -var _ metric.Float64ObservableGauge = (*afGauge)(nil) +var _ instrument.Float64ObservableGauge = (*afGauge)(nil)  func (i *afGauge) setDelegate(m metric.Meter) {  	ctr, err := m.Float64ObservableGauge(i.name, i.opts...) @@ -108,25 +106,24 @@ func (i *afGauge) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *afGauge) Unwrap() metric.Observable { +func (i *afGauge) Unwrap() instrument.Asynchronous {  	if ctr := i.delegate.Load(); ctr != nil { -		return ctr.(metric.Float64ObservableGauge) +		return ctr.(instrument.Float64ObservableGauge)  	}  	return nil  }  type aiCounter struct { -	embedded.Int64ObservableCounter -	metric.Int64Observable +	instrument.Int64Observable  	name string -	opts []metric.Int64ObservableCounterOption +	opts []instrument.Int64ObserverOption -	delegate atomic.Value //metric.Int64ObservableCounter +	delegate atomic.Value //instrument.Int64ObservableCounter  }  var _ unwrapper = (*aiCounter)(nil) -var _ metric.Int64ObservableCounter = (*aiCounter)(nil) +var _ instrument.Int64ObservableCounter = (*aiCounter)(nil)  func (i *aiCounter) setDelegate(m metric.Meter) {  	ctr, err := m.Int64ObservableCounter(i.name, i.opts...) @@ -137,25 +134,24 @@ func (i *aiCounter) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *aiCounter) Unwrap() metric.Observable { +func (i *aiCounter) Unwrap() instrument.Asynchronous {  	if ctr := i.delegate.Load(); ctr != nil { -		return ctr.(metric.Int64ObservableCounter) +		return ctr.(instrument.Int64ObservableCounter)  	}  	return nil  }  type aiUpDownCounter struct { -	embedded.Int64ObservableUpDownCounter -	metric.Int64Observable +	instrument.Int64Observable  	name string -	opts []metric.Int64ObservableUpDownCounterOption +	opts []instrument.Int64ObserverOption -	delegate atomic.Value //metric.Int64ObservableUpDownCounter +	delegate atomic.Value //instrument.Int64ObservableUpDownCounter  }  var _ unwrapper = (*aiUpDownCounter)(nil) -var _ metric.Int64ObservableUpDownCounter = (*aiUpDownCounter)(nil) +var _ instrument.Int64ObservableUpDownCounter = (*aiUpDownCounter)(nil)  func (i *aiUpDownCounter) setDelegate(m metric.Meter) {  	ctr, err := m.Int64ObservableUpDownCounter(i.name, i.opts...) @@ -166,25 +162,24 @@ func (i *aiUpDownCounter) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *aiUpDownCounter) Unwrap() metric.Observable { +func (i *aiUpDownCounter) Unwrap() instrument.Asynchronous {  	if ctr := i.delegate.Load(); ctr != nil { -		return ctr.(metric.Int64ObservableUpDownCounter) +		return ctr.(instrument.Int64ObservableUpDownCounter)  	}  	return nil  }  type aiGauge struct { -	embedded.Int64ObservableGauge -	metric.Int64Observable +	instrument.Int64Observable  	name string -	opts []metric.Int64ObservableGaugeOption +	opts []instrument.Int64ObserverOption -	delegate atomic.Value //metric.Int64ObservableGauge +	delegate atomic.Value //instrument.Int64ObservableGauge  }  var _ unwrapper = (*aiGauge)(nil) -var _ metric.Int64ObservableGauge = (*aiGauge)(nil) +var _ instrument.Int64ObservableGauge = (*aiGauge)(nil)  func (i *aiGauge) setDelegate(m metric.Meter) {  	ctr, err := m.Int64ObservableGauge(i.name, i.opts...) @@ -195,24 +190,24 @@ func (i *aiGauge) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *aiGauge) Unwrap() metric.Observable { +func (i *aiGauge) Unwrap() instrument.Asynchronous {  	if ctr := i.delegate.Load(); ctr != nil { -		return ctr.(metric.Int64ObservableGauge) +		return ctr.(instrument.Int64ObservableGauge)  	}  	return nil  }  // Sync Instruments.  type sfCounter struct { -	embedded.Float64Counter -  	name string -	opts []metric.Float64CounterOption +	opts []instrument.Float64Option + +	delegate atomic.Value //instrument.Float64Counter -	delegate atomic.Value //metric.Float64Counter +	instrument.Synchronous  } -var _ metric.Float64Counter = (*sfCounter)(nil) +var _ instrument.Float64Counter = (*sfCounter)(nil)  func (i *sfCounter) setDelegate(m metric.Meter) {  	ctr, err := m.Float64Counter(i.name, i.opts...) @@ -223,22 +218,22 @@ func (i *sfCounter) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *sfCounter) Add(ctx context.Context, incr float64, opts ...metric.AddOption) { +func (i *sfCounter) Add(ctx context.Context, incr float64, attrs ...attribute.KeyValue) {  	if ctr := i.delegate.Load(); ctr != nil { -		ctr.(metric.Float64Counter).Add(ctx, incr, opts...) +		ctr.(instrument.Float64Counter).Add(ctx, incr, attrs...)  	}  }  type sfUpDownCounter struct { -	embedded.Float64UpDownCounter -  	name string -	opts []metric.Float64UpDownCounterOption +	opts []instrument.Float64Option -	delegate atomic.Value //metric.Float64UpDownCounter +	delegate atomic.Value //instrument.Float64UpDownCounter + +	instrument.Synchronous  } -var _ metric.Float64UpDownCounter = (*sfUpDownCounter)(nil) +var _ instrument.Float64UpDownCounter = (*sfUpDownCounter)(nil)  func (i *sfUpDownCounter) setDelegate(m metric.Meter) {  	ctr, err := m.Float64UpDownCounter(i.name, i.opts...) @@ -249,22 +244,22 @@ func (i *sfUpDownCounter) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *sfUpDownCounter) Add(ctx context.Context, incr float64, opts ...metric.AddOption) { +func (i *sfUpDownCounter) Add(ctx context.Context, incr float64, attrs ...attribute.KeyValue) {  	if ctr := i.delegate.Load(); ctr != nil { -		ctr.(metric.Float64UpDownCounter).Add(ctx, incr, opts...) +		ctr.(instrument.Float64UpDownCounter).Add(ctx, incr, attrs...)  	}  }  type sfHistogram struct { -	embedded.Float64Histogram -  	name string -	opts []metric.Float64HistogramOption +	opts []instrument.Float64Option + +	delegate atomic.Value //instrument.Float64Histogram -	delegate atomic.Value //metric.Float64Histogram +	instrument.Synchronous  } -var _ metric.Float64Histogram = (*sfHistogram)(nil) +var _ instrument.Float64Histogram = (*sfHistogram)(nil)  func (i *sfHistogram) setDelegate(m metric.Meter) {  	ctr, err := m.Float64Histogram(i.name, i.opts...) @@ -275,22 +270,22 @@ func (i *sfHistogram) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *sfHistogram) Record(ctx context.Context, x float64, opts ...metric.RecordOption) { +func (i *sfHistogram) Record(ctx context.Context, x float64, attrs ...attribute.KeyValue) {  	if ctr := i.delegate.Load(); ctr != nil { -		ctr.(metric.Float64Histogram).Record(ctx, x, opts...) +		ctr.(instrument.Float64Histogram).Record(ctx, x, attrs...)  	}  }  type siCounter struct { -	embedded.Int64Counter -  	name string -	opts []metric.Int64CounterOption +	opts []instrument.Int64Option + +	delegate atomic.Value //instrument.Int64Counter -	delegate atomic.Value //metric.Int64Counter +	instrument.Synchronous  } -var _ metric.Int64Counter = (*siCounter)(nil) +var _ instrument.Int64Counter = (*siCounter)(nil)  func (i *siCounter) setDelegate(m metric.Meter) {  	ctr, err := m.Int64Counter(i.name, i.opts...) @@ -301,22 +296,22 @@ func (i *siCounter) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *siCounter) Add(ctx context.Context, x int64, opts ...metric.AddOption) { +func (i *siCounter) Add(ctx context.Context, x int64, attrs ...attribute.KeyValue) {  	if ctr := i.delegate.Load(); ctr != nil { -		ctr.(metric.Int64Counter).Add(ctx, x, opts...) +		ctr.(instrument.Int64Counter).Add(ctx, x, attrs...)  	}  }  type siUpDownCounter struct { -	embedded.Int64UpDownCounter -  	name string -	opts []metric.Int64UpDownCounterOption +	opts []instrument.Int64Option -	delegate atomic.Value //metric.Int64UpDownCounter +	delegate atomic.Value //instrument.Int64UpDownCounter + +	instrument.Synchronous  } -var _ metric.Int64UpDownCounter = (*siUpDownCounter)(nil) +var _ instrument.Int64UpDownCounter = (*siUpDownCounter)(nil)  func (i *siUpDownCounter) setDelegate(m metric.Meter) {  	ctr, err := m.Int64UpDownCounter(i.name, i.opts...) @@ -327,22 +322,22 @@ func (i *siUpDownCounter) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *siUpDownCounter) Add(ctx context.Context, x int64, opts ...metric.AddOption) { +func (i *siUpDownCounter) Add(ctx context.Context, x int64, attrs ...attribute.KeyValue) {  	if ctr := i.delegate.Load(); ctr != nil { -		ctr.(metric.Int64UpDownCounter).Add(ctx, x, opts...) +		ctr.(instrument.Int64UpDownCounter).Add(ctx, x, attrs...)  	}  }  type siHistogram struct { -	embedded.Int64Histogram -  	name string -	opts []metric.Int64HistogramOption +	opts []instrument.Int64Option + +	delegate atomic.Value //instrument.Int64Histogram -	delegate atomic.Value //metric.Int64Histogram +	instrument.Synchronous  } -var _ metric.Int64Histogram = (*siHistogram)(nil) +var _ instrument.Int64Histogram = (*siHistogram)(nil)  func (i *siHistogram) setDelegate(m metric.Meter) {  	ctr, err := m.Int64Histogram(i.name, i.opts...) @@ -353,8 +348,8 @@ func (i *siHistogram) setDelegate(m metric.Meter) {  	i.delegate.Store(ctr)  } -func (i *siHistogram) Record(ctx context.Context, x int64, opts ...metric.RecordOption) { +func (i *siHistogram) Record(ctx context.Context, x int64, attrs ...attribute.KeyValue) {  	if ctr := i.delegate.Load(); ctr != nil { -		ctr.(metric.Int64Histogram).Record(ctx, x, opts...) +		ctr.(instrument.Int64Histogram).Record(ctx, x, attrs...)  	}  } diff --git a/vendor/go.opentelemetry.io/otel/metric/internal/global/meter.go b/vendor/go.opentelemetry.io/otel/metric/internal/global/meter.go index a00b99085..8acf63286 100644 --- a/vendor/go.opentelemetry.io/otel/metric/internal/global/meter.go +++ b/vendor/go.opentelemetry.io/otel/metric/internal/global/meter.go @@ -21,7 +21,7 @@ import (  	"go.opentelemetry.io/otel"  	"go.opentelemetry.io/otel/metric" -	"go.opentelemetry.io/otel/metric/embedded" +	"go.opentelemetry.io/otel/metric/instrument"  )  // meterProvider is a placeholder for a configured SDK MeterProvider. @@ -29,8 +29,6 @@ import (  // All MeterProvider functionality is forwarded to a delegate once  // configured.  type meterProvider struct { -	embedded.MeterProvider -  	mtx    sync.Mutex  	meters map[il]*meter @@ -102,8 +100,6 @@ func (p *meterProvider) Meter(name string, opts ...metric.MeterOption) metric.Me  // All Meter functionality is forwarded to a delegate once configured.  // Otherwise, all functionality is forwarded to a NoopMeter.  type meter struct { -	embedded.Meter -  	name string  	opts []metric.MeterOption @@ -146,7 +142,7 @@ func (m *meter) setDelegate(provider metric.MeterProvider) {  	m.registry.Init()  } -func (m *meter) Int64Counter(name string, options ...metric.Int64CounterOption) (metric.Int64Counter, error) { +func (m *meter) Int64Counter(name string, options ...instrument.Int64Option) (instrument.Int64Counter, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Int64Counter(name, options...)  	} @@ -157,7 +153,7 @@ func (m *meter) Int64Counter(name string, options ...metric.Int64CounterOption)  	return i, nil  } -func (m *meter) Int64UpDownCounter(name string, options ...metric.Int64UpDownCounterOption) (metric.Int64UpDownCounter, error) { +func (m *meter) Int64UpDownCounter(name string, options ...instrument.Int64Option) (instrument.Int64UpDownCounter, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Int64UpDownCounter(name, options...)  	} @@ -168,7 +164,7 @@ func (m *meter) Int64UpDownCounter(name string, options ...metric.Int64UpDownCou  	return i, nil  } -func (m *meter) Int64Histogram(name string, options ...metric.Int64HistogramOption) (metric.Int64Histogram, error) { +func (m *meter) Int64Histogram(name string, options ...instrument.Int64Option) (instrument.Int64Histogram, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Int64Histogram(name, options...)  	} @@ -179,7 +175,7 @@ func (m *meter) Int64Histogram(name string, options ...metric.Int64HistogramOpti  	return i, nil  } -func (m *meter) Int64ObservableCounter(name string, options ...metric.Int64ObservableCounterOption) (metric.Int64ObservableCounter, error) { +func (m *meter) Int64ObservableCounter(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableCounter, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Int64ObservableCounter(name, options...)  	} @@ -190,7 +186,7 @@ func (m *meter) Int64ObservableCounter(name string, options ...metric.Int64Obser  	return i, nil  } -func (m *meter) Int64ObservableUpDownCounter(name string, options ...metric.Int64ObservableUpDownCounterOption) (metric.Int64ObservableUpDownCounter, error) { +func (m *meter) Int64ObservableUpDownCounter(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableUpDownCounter, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Int64ObservableUpDownCounter(name, options...)  	} @@ -201,7 +197,7 @@ func (m *meter) Int64ObservableUpDownCounter(name string, options ...metric.Int6  	return i, nil  } -func (m *meter) Int64ObservableGauge(name string, options ...metric.Int64ObservableGaugeOption) (metric.Int64ObservableGauge, error) { +func (m *meter) Int64ObservableGauge(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableGauge, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Int64ObservableGauge(name, options...)  	} @@ -212,7 +208,7 @@ func (m *meter) Int64ObservableGauge(name string, options ...metric.Int64Observa  	return i, nil  } -func (m *meter) Float64Counter(name string, options ...metric.Float64CounterOption) (metric.Float64Counter, error) { +func (m *meter) Float64Counter(name string, options ...instrument.Float64Option) (instrument.Float64Counter, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Float64Counter(name, options...)  	} @@ -223,7 +219,7 @@ func (m *meter) Float64Counter(name string, options ...metric.Float64CounterOpti  	return i, nil  } -func (m *meter) Float64UpDownCounter(name string, options ...metric.Float64UpDownCounterOption) (metric.Float64UpDownCounter, error) { +func (m *meter) Float64UpDownCounter(name string, options ...instrument.Float64Option) (instrument.Float64UpDownCounter, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Float64UpDownCounter(name, options...)  	} @@ -234,7 +230,7 @@ func (m *meter) Float64UpDownCounter(name string, options ...metric.Float64UpDow  	return i, nil  } -func (m *meter) Float64Histogram(name string, options ...metric.Float64HistogramOption) (metric.Float64Histogram, error) { +func (m *meter) Float64Histogram(name string, options ...instrument.Float64Option) (instrument.Float64Histogram, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Float64Histogram(name, options...)  	} @@ -245,7 +241,7 @@ func (m *meter) Float64Histogram(name string, options ...metric.Float64Histogram  	return i, nil  } -func (m *meter) Float64ObservableCounter(name string, options ...metric.Float64ObservableCounterOption) (metric.Float64ObservableCounter, error) { +func (m *meter) Float64ObservableCounter(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableCounter, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Float64ObservableCounter(name, options...)  	} @@ -256,7 +252,7 @@ func (m *meter) Float64ObservableCounter(name string, options ...metric.Float64O  	return i, nil  } -func (m *meter) Float64ObservableUpDownCounter(name string, options ...metric.Float64ObservableUpDownCounterOption) (metric.Float64ObservableUpDownCounter, error) { +func (m *meter) Float64ObservableUpDownCounter(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableUpDownCounter, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Float64ObservableUpDownCounter(name, options...)  	} @@ -267,7 +263,7 @@ func (m *meter) Float64ObservableUpDownCounter(name string, options ...metric.Fl  	return i, nil  } -func (m *meter) Float64ObservableGauge(name string, options ...metric.Float64ObservableGaugeOption) (metric.Float64ObservableGauge, error) { +func (m *meter) Float64ObservableGauge(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableGauge, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		return del.Float64ObservableGauge(name, options...)  	} @@ -279,7 +275,7 @@ func (m *meter) Float64ObservableGauge(name string, options ...metric.Float64Obs  }  // RegisterCallback captures the function that will be called during Collect. -func (m *meter) RegisterCallback(f metric.Callback, insts ...metric.Observable) (metric.Registration, error) { +func (m *meter) RegisterCallback(f metric.Callback, insts ...instrument.Asynchronous) (metric.Registration, error) {  	if del, ok := m.delegate.Load().(metric.Meter); ok {  		insts = unwrapInstruments(insts)  		return del.RegisterCallback(f, insts...) @@ -300,11 +296,11 @@ func (m *meter) RegisterCallback(f metric.Callback, insts ...metric.Observable)  }  type wrapped interface { -	unwrap() metric.Observable +	unwrap() instrument.Asynchronous  } -func unwrapInstruments(instruments []metric.Observable) []metric.Observable { -	out := make([]metric.Observable, 0, len(instruments)) +func unwrapInstruments(instruments []instrument.Asynchronous) []instrument.Asynchronous { +	out := make([]instrument.Asynchronous, 0, len(instruments))  	for _, inst := range instruments {  		if in, ok := inst.(wrapped); ok { @@ -318,9 +314,7 @@ func unwrapInstruments(instruments []metric.Observable) []metric.Observable {  }  type registration struct { -	embedded.Registration - -	instruments []metric.Observable +	instruments []instrument.Asynchronous  	function    metric.Callback  	unreg   func() error diff --git a/vendor/go.opentelemetry.io/otel/metric/meter.go b/vendor/go.opentelemetry.io/otel/metric/meter.go index 1d60cf57a..2f69d2ae5 100644 --- a/vendor/go.opentelemetry.io/otel/metric/meter.go +++ b/vendor/go.opentelemetry.io/otel/metric/meter.go @@ -17,91 +17,80 @@ package metric // import "go.opentelemetry.io/otel/metric"  import (  	"context" -	"go.opentelemetry.io/otel/metric/embedded" +	"go.opentelemetry.io/otel/attribute" +	"go.opentelemetry.io/otel/metric/instrument"  )  // MeterProvider provides access to named Meter instances, for instrumenting -// an application or package. +// an application or library.  // -// Warning: Methods may be added to this interface in minor releases. See -// package documentation on API implementation for information on how to set -// default behavior for unimplemented methods. +// Warning: methods may be added to this interface in minor releases.  type MeterProvider interface { -	embedded.MeterProvider - -	// Meter returns a new Meter with the provided name and configuration. -	// -	// A Meter should be scoped at most to a single package. The name needs to -	// be unique so it does not collide with other names used by -	// an application, nor other applications. To achieve this, the import path -	// of the instrumentation package is recommended to be used as name. -	// -	// If the name is empty, then an implementation defined default name will -	// be used instead. +	// Meter creates an instance of a `Meter` interface. The name must be the +	// name of the library providing instrumentation. This name may be the same +	// as the instrumented code only if that code provides built-in +	// instrumentation. If the name is empty, then a implementation defined +	// default name will be used instead.  	Meter(name string, opts ...MeterOption) Meter  }  // Meter provides access to instrument instances for recording metrics.  // -// Warning: Methods may be added to this interface in minor releases. See -// package documentation on API implementation for information on how to set -// default behavior for unimplemented methods. +// Warning: methods may be added to this interface in minor releases.  type Meter interface { -	embedded.Meter -  	// Int64Counter returns a new instrument identified by name and configured  	// with options. The instrument is used to synchronously record increasing  	// int64 measurements during a computational operation. -	Int64Counter(name string, options ...Int64CounterOption) (Int64Counter, error) +	Int64Counter(name string, options ...instrument.Int64Option) (instrument.Int64Counter, error)  	// Int64UpDownCounter returns a new instrument identified by name and  	// configured with options. The instrument is used to synchronously record  	// int64 measurements during a computational operation. -	Int64UpDownCounter(name string, options ...Int64UpDownCounterOption) (Int64UpDownCounter, error) +	Int64UpDownCounter(name string, options ...instrument.Int64Option) (instrument.Int64UpDownCounter, error)  	// Int64Histogram returns a new instrument identified by name and  	// configured with options. The instrument is used to synchronously record  	// the distribution of int64 measurements during a computational operation. -	Int64Histogram(name string, options ...Int64HistogramOption) (Int64Histogram, error) +	Int64Histogram(name string, options ...instrument.Int64Option) (instrument.Int64Histogram, error)  	// Int64ObservableCounter returns a new instrument identified by name and  	// configured with options. The instrument is used to asynchronously record  	// increasing int64 measurements once per a measurement collection cycle. -	Int64ObservableCounter(name string, options ...Int64ObservableCounterOption) (Int64ObservableCounter, error) +	Int64ObservableCounter(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableCounter, error)  	// Int64ObservableUpDownCounter returns a new instrument identified by name  	// and configured with options. The instrument is used to asynchronously  	// record int64 measurements once per a measurement collection cycle. -	Int64ObservableUpDownCounter(name string, options ...Int64ObservableUpDownCounterOption) (Int64ObservableUpDownCounter, error) +	Int64ObservableUpDownCounter(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableUpDownCounter, error)  	// Int64ObservableGauge returns a new instrument identified by name and  	// configured with options. The instrument is used to asynchronously record  	// instantaneous int64 measurements once per a measurement collection  	// cycle. -	Int64ObservableGauge(name string, options ...Int64ObservableGaugeOption) (Int64ObservableGauge, error) +	Int64ObservableGauge(name string, options ...instrument.Int64ObserverOption) (instrument.Int64ObservableGauge, error)  	// Float64Counter returns a new instrument identified by name and  	// configured with options. The instrument is used to synchronously record  	// increasing float64 measurements during a computational operation. -	Float64Counter(name string, options ...Float64CounterOption) (Float64Counter, error) +	Float64Counter(name string, options ...instrument.Float64Option) (instrument.Float64Counter, error)  	// Float64UpDownCounter returns a new instrument identified by name and  	// configured with options. The instrument is used to synchronously record  	// float64 measurements during a computational operation. -	Float64UpDownCounter(name string, options ...Float64UpDownCounterOption) (Float64UpDownCounter, error) +	Float64UpDownCounter(name string, options ...instrument.Float64Option) (instrument.Float64UpDownCounter, error)  	// Float64Histogram returns a new instrument identified by name and  	// configured with options. The instrument is used to synchronously record  	// the distribution of float64 measurements during a computational  	// operation. -	Float64Histogram(name string, options ...Float64HistogramOption) (Float64Histogram, error) +	Float64Histogram(name string, options ...instrument.Float64Option) (instrument.Float64Histogram, error)  	// Float64ObservableCounter returns a new instrument identified by name and  	// configured with options. The instrument is used to asynchronously record  	// increasing float64 measurements once per a measurement collection cycle. -	Float64ObservableCounter(name string, options ...Float64ObservableCounterOption) (Float64ObservableCounter, error) +	Float64ObservableCounter(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableCounter, error)  	// Float64ObservableUpDownCounter returns a new instrument identified by  	// name and configured with options. The instrument is used to  	// asynchronously record float64 measurements once per a measurement  	// collection cycle. -	Float64ObservableUpDownCounter(name string, options ...Float64ObservableUpDownCounterOption) (Float64ObservableUpDownCounter, error) +	Float64ObservableUpDownCounter(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableUpDownCounter, error)  	// Float64ObservableGauge returns a new instrument identified by name and  	// configured with options. The instrument is used to asynchronously record  	// instantaneous float64 measurements once per a measurement collection  	// cycle. -	Float64ObservableGauge(name string, options ...Float64ObservableGaugeOption) (Float64ObservableGauge, error) +	Float64ObservableGauge(name string, options ...instrument.Float64ObserverOption) (instrument.Float64ObservableGauge, error)  	// RegisterCallback registers f to be called during the collection of a  	// measurement cycle. @@ -114,12 +103,12 @@ type Meter interface {  	//  	// If no instruments are passed, f should not be registered nor called  	// during collection. -	RegisterCallback(f Callback, instruments ...Observable) (Registration, error) +	RegisterCallback(f Callback, instruments ...instrument.Asynchronous) (Registration, error)  }  // Callback is a function registered with a Meter that makes observations for  // the set of instruments it is registered with. The Observer parameter is used -// to record measurement observations for these instruments. +// to record measurment observations for these instruments.  //  // The function needs to complete in a finite amount of time and the deadline  // of the passed context is expected to be honored. @@ -132,28 +121,16 @@ type Meter interface {  type Callback func(context.Context, Observer) error  // Observer records measurements for multiple instruments in a Callback. -// -// Warning: Methods may be added to this interface in minor releases. See -// package documentation on API implementation for information on how to set -// default behavior for unimplemented methods.  type Observer interface { -	embedded.Observer - -	// ObserveFloat64 records the float64 value for obsrv. -	ObserveFloat64(obsrv Float64Observable, value float64, opts ...ObserveOption) -	// ObserveInt64 records the int64 value for obsrv. -	ObserveInt64(obsrv Int64Observable, value int64, opts ...ObserveOption) +	// ObserveFloat64 records the float64 value with attributes for obsrv. +	ObserveFloat64(obsrv instrument.Float64Observable, value float64, attributes ...attribute.KeyValue) +	// ObserveInt64 records the int64 value with attributes for obsrv. +	ObserveInt64(obsrv instrument.Int64Observable, value int64, attributes ...attribute.KeyValue)  }  // Registration is an token representing the unique registration of a callback  // for a set of instruments with a Meter. -// -// Warning: Methods may be added to this interface in minor releases. See -// package documentation on API implementation for information on how to set -// default behavior for unimplemented methods.  type Registration interface { -	embedded.Registration -  	// Unregister removes the callback registration from a Meter.  	//  	// This method needs to be idempotent and concurrent safe. diff --git a/vendor/go.opentelemetry.io/otel/metric/noop.go b/vendor/go.opentelemetry.io/otel/metric/noop.go new file mode 100644 index 000000000..f38619e39 --- /dev/null +++ b/vendor/go.opentelemetry.io/otel/metric/noop.go @@ -0,0 +1,143 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +//     http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package metric // import "go.opentelemetry.io/otel/metric" + +import ( +	"context" + +	"go.opentelemetry.io/otel/attribute" +	"go.opentelemetry.io/otel/metric/instrument" +) + +// NewNoopMeterProvider creates a MeterProvider that does not record any metrics. +func NewNoopMeterProvider() MeterProvider { +	return noopMeterProvider{} +} + +type noopMeterProvider struct{} + +func (noopMeterProvider) Meter(string, ...MeterOption) Meter { +	return noopMeter{} +} + +// NewNoopMeter creates a Meter that does not record any metrics. +func NewNoopMeter() Meter { +	return noopMeter{} +} + +type noopMeter struct{} + +func (noopMeter) Int64Counter(string, ...instrument.Int64Option) (instrument.Int64Counter, error) { +	return nonrecordingSyncInt64Instrument{}, nil +} + +func (noopMeter) Int64UpDownCounter(string, ...instrument.Int64Option) (instrument.Int64UpDownCounter, error) { +	return nonrecordingSyncInt64Instrument{}, nil +} + +func (noopMeter) Int64Histogram(string, ...instrument.Int64Option) (instrument.Int64Histogram, error) { +	return nonrecordingSyncInt64Instrument{}, nil +} + +func (noopMeter) Int64ObservableCounter(string, ...instrument.Int64ObserverOption) (instrument.Int64ObservableCounter, error) { +	return nonrecordingAsyncInt64Instrument{}, nil +} + +func (noopMeter) Int64ObservableUpDownCounter(string, ...instrument.Int64ObserverOption) (instrument.Int64ObservableUpDownCounter, error) { +	return nonrecordingAsyncInt64Instrument{}, nil +} + +func (noopMeter) Int64ObservableGauge(string, ...instrument.Int64ObserverOption) (instrument.Int64ObservableGauge, error) { +	return nonrecordingAsyncInt64Instrument{}, nil +} + +func (noopMeter) Float64Counter(string, ...instrument.Float64Option) (instrument.Float64Counter, error) { +	return nonrecordingSyncFloat64Instrument{}, nil +} + +func (noopMeter) Float64UpDownCounter(string, ...instrument.Float64Option) (instrument.Float64UpDownCounter, error) { +	return nonrecordingSyncFloat64Instrument{}, nil +} + +func (noopMeter) Float64Histogram(string, ...instrument.Float64Option) (instrument.Float64Histogram, error) { +	return nonrecordingSyncFloat64Instrument{}, nil +} + +func (noopMeter) Float64ObservableCounter(string, ...instrument.Float64ObserverOption) (instrument.Float64ObservableCounter, error) { +	return nonrecordingAsyncFloat64Instrument{}, nil +} + +func (noopMeter) Float64ObservableUpDownCounter(string, ...instrument.Float64ObserverOption) (instrument.Float64ObservableUpDownCounter, error) { +	return nonrecordingAsyncFloat64Instrument{}, nil +} + +func (noopMeter) Float64ObservableGauge(string, ...instrument.Float64ObserverOption) (instrument.Float64ObservableGauge, error) { +	return nonrecordingAsyncFloat64Instrument{}, nil +} + +// RegisterCallback creates a register callback that does not record any metrics. +func (noopMeter) RegisterCallback(Callback, ...instrument.Asynchronous) (Registration, error) { +	return noopReg{}, nil +} + +type noopReg struct{} + +func (noopReg) Unregister() error { return nil } + +type nonrecordingAsyncFloat64Instrument struct { +	instrument.Float64Observable +} + +var ( +	_ instrument.Float64ObservableCounter       = nonrecordingAsyncFloat64Instrument{} +	_ instrument.Float64ObservableUpDownCounter = nonrecordingAsyncFloat64Instrument{} +	_ instrument.Float64ObservableGauge         = nonrecordingAsyncFloat64Instrument{} +) + +type nonrecordingAsyncInt64Instrument struct { +	instrument.Int64Observable +} + +var ( +	_ instrument.Int64ObservableCounter       = nonrecordingAsyncInt64Instrument{} +	_ instrument.Int64ObservableUpDownCounter = nonrecordingAsyncInt64Instrument{} +	_ instrument.Int64ObservableGauge         = nonrecordingAsyncInt64Instrument{} +) + +type nonrecordingSyncFloat64Instrument struct { +	instrument.Synchronous +} + +var ( +	_ instrument.Float64Counter       = nonrecordingSyncFloat64Instrument{} +	_ instrument.Float64UpDownCounter = nonrecordingSyncFloat64Instrument{} +	_ instrument.Float64Histogram     = nonrecordingSyncFloat64Instrument{} +) + +func (nonrecordingSyncFloat64Instrument) Add(context.Context, float64, ...attribute.KeyValue)    {} +func (nonrecordingSyncFloat64Instrument) Record(context.Context, float64, ...attribute.KeyValue) {} + +type nonrecordingSyncInt64Instrument struct { +	instrument.Synchronous +} + +var ( +	_ instrument.Int64Counter       = nonrecordingSyncInt64Instrument{} +	_ instrument.Int64UpDownCounter = nonrecordingSyncInt64Instrument{} +	_ instrument.Int64Histogram     = nonrecordingSyncInt64Instrument{} +) + +func (nonrecordingSyncInt64Instrument) Add(context.Context, int64, ...attribute.KeyValue)    {} +func (nonrecordingSyncInt64Instrument) Record(context.Context, int64, ...attribute.KeyValue) {} diff --git a/vendor/go.opentelemetry.io/otel/metric/syncfloat64.go b/vendor/go.opentelemetry.io/otel/metric/syncfloat64.go deleted file mode 100644 index 0b2023c35..000000000 --- a/vendor/go.opentelemetry.io/otel/metric/syncfloat64.go +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metric // import "go.opentelemetry.io/otel/metric" - -import ( -	"context" - -	"go.opentelemetry.io/otel/metric/embedded" -) - -// Float64Counter is an instrument that records increasing float64 values. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Float64Counter interface { -	embedded.Float64Counter - -	// Add records a change to the counter. -	Add(ctx context.Context, incr float64, opts ...AddOption) -} - -// Float64CounterConfig contains options for synchronous counter instruments that -// record int64 values. -type Float64CounterConfig struct { -	description string -	unit        string -} - -// NewFloat64CounterConfig returns a new [Float64CounterConfig] with all opts -// applied. -func NewFloat64CounterConfig(opts ...Float64CounterOption) Float64CounterConfig { -	var config Float64CounterConfig -	for _, o := range opts { -		config = o.applyFloat64Counter(config) -	} -	return config -} - -// Description returns the configured description. -func (c Float64CounterConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Float64CounterConfig) Unit() string { -	return c.unit -} - -// Float64CounterOption applies options to a [Float64CounterConfig]. See -// [Option] for other options that can be used as a Float64CounterOption. -type Float64CounterOption interface { -	applyFloat64Counter(Float64CounterConfig) Float64CounterConfig -} - -// Float64UpDownCounter is an instrument that records increasing or decreasing -// float64 values. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Float64UpDownCounter interface { -	embedded.Float64UpDownCounter - -	// Add records a change to the counter. -	Add(ctx context.Context, incr float64, opts ...AddOption) -} - -// Float64UpDownCounterConfig contains options for synchronous counter -// instruments that record int64 values. -type Float64UpDownCounterConfig struct { -	description string -	unit        string -} - -// NewFloat64UpDownCounterConfig returns a new [Float64UpDownCounterConfig] -// with all opts applied. -func NewFloat64UpDownCounterConfig(opts ...Float64UpDownCounterOption) Float64UpDownCounterConfig { -	var config Float64UpDownCounterConfig -	for _, o := range opts { -		config = o.applyFloat64UpDownCounter(config) -	} -	return config -} - -// Description returns the configured description. -func (c Float64UpDownCounterConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Float64UpDownCounterConfig) Unit() string { -	return c.unit -} - -// Float64UpDownCounterOption applies options to a -// [Float64UpDownCounterConfig]. See [Option] for other options that can be -// used as a Float64UpDownCounterOption. -type Float64UpDownCounterOption interface { -	applyFloat64UpDownCounter(Float64UpDownCounterConfig) Float64UpDownCounterConfig -} - -// Float64Histogram is an instrument that records a distribution of float64 -// values. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Float64Histogram interface { -	embedded.Float64Histogram - -	// Record adds an additional value to the distribution. -	Record(ctx context.Context, incr float64, opts ...RecordOption) -} - -// Float64HistogramConfig contains options for synchronous counter instruments -// that record int64 values. -type Float64HistogramConfig struct { -	description string -	unit        string -} - -// NewFloat64HistogramConfig returns a new [Float64HistogramConfig] with all -// opts applied. -func NewFloat64HistogramConfig(opts ...Float64HistogramOption) Float64HistogramConfig { -	var config Float64HistogramConfig -	for _, o := range opts { -		config = o.applyFloat64Histogram(config) -	} -	return config -} - -// Description returns the configured description. -func (c Float64HistogramConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Float64HistogramConfig) Unit() string { -	return c.unit -} - -// Float64HistogramOption applies options to a [Float64HistogramConfig]. See -// [Option] for other options that can be used as a Float64HistogramOption. -type Float64HistogramOption interface { -	applyFloat64Histogram(Float64HistogramConfig) Float64HistogramConfig -} diff --git a/vendor/go.opentelemetry.io/otel/metric/syncint64.go b/vendor/go.opentelemetry.io/otel/metric/syncint64.go deleted file mode 100644 index 9a1a9dba8..000000000 --- a/vendor/go.opentelemetry.io/otel/metric/syncint64.go +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package metric // import "go.opentelemetry.io/otel/metric" - -import ( -	"context" - -	"go.opentelemetry.io/otel/metric/embedded" -) - -// Int64Counter is an instrument that records increasing int64 values. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Int64Counter interface { -	embedded.Int64Counter - -	// Add records a change to the counter. -	Add(ctx context.Context, incr int64, opts ...AddOption) -} - -// Int64CounterConfig contains options for synchronous counter instruments that -// record int64 values. -type Int64CounterConfig struct { -	description string -	unit        string -} - -// NewInt64CounterConfig returns a new [Int64CounterConfig] with all opts -// applied. -func NewInt64CounterConfig(opts ...Int64CounterOption) Int64CounterConfig { -	var config Int64CounterConfig -	for _, o := range opts { -		config = o.applyInt64Counter(config) -	} -	return config -} - -// Description returns the configured description. -func (c Int64CounterConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Int64CounterConfig) Unit() string { -	return c.unit -} - -// Int64CounterOption applies options to a [Int64CounterConfig]. See [Option] -// for other options that can be used as an Int64CounterOption. -type Int64CounterOption interface { -	applyInt64Counter(Int64CounterConfig) Int64CounterConfig -} - -// Int64UpDownCounter is an instrument that records increasing or decreasing -// int64 values. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Int64UpDownCounter interface { -	embedded.Int64UpDownCounter - -	// Add records a change to the counter. -	Add(ctx context.Context, incr int64, opts ...AddOption) -} - -// Int64UpDownCounterConfig contains options for synchronous counter -// instruments that record int64 values. -type Int64UpDownCounterConfig struct { -	description string -	unit        string -} - -// NewInt64UpDownCounterConfig returns a new [Int64UpDownCounterConfig] with -// all opts applied. -func NewInt64UpDownCounterConfig(opts ...Int64UpDownCounterOption) Int64UpDownCounterConfig { -	var config Int64UpDownCounterConfig -	for _, o := range opts { -		config = o.applyInt64UpDownCounter(config) -	} -	return config -} - -// Description returns the configured description. -func (c Int64UpDownCounterConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Int64UpDownCounterConfig) Unit() string { -	return c.unit -} - -// Int64UpDownCounterOption applies options to a [Int64UpDownCounterConfig]. -// See [Option] for other options that can be used as an -// Int64UpDownCounterOption. -type Int64UpDownCounterOption interface { -	applyInt64UpDownCounter(Int64UpDownCounterConfig) Int64UpDownCounterConfig -} - -// Int64Histogram is an instrument that records a distribution of int64 -// values. -// -// Warning: Methods may be added to this interface in minor releases. See -// [go.opentelemetry.io/otel/metric] package documentation on API -// implementation for information on how to set default behavior for -// unimplemented methods. -type Int64Histogram interface { -	embedded.Int64Histogram - -	// Record adds an additional value to the distribution. -	Record(ctx context.Context, incr int64, opts ...RecordOption) -} - -// Int64HistogramConfig contains options for synchronous counter instruments -// that record int64 values. -type Int64HistogramConfig struct { -	description string -	unit        string -} - -// NewInt64HistogramConfig returns a new [Int64HistogramConfig] with all opts -// applied. -func NewInt64HistogramConfig(opts ...Int64HistogramOption) Int64HistogramConfig { -	var config Int64HistogramConfig -	for _, o := range opts { -		config = o.applyInt64Histogram(config) -	} -	return config -} - -// Description returns the configured description. -func (c Int64HistogramConfig) Description() string { -	return c.description -} - -// Unit returns the configured unit. -func (c Int64HistogramConfig) Unit() string { -	return c.unit -} - -// Int64HistogramOption applies options to a [Int64HistogramConfig]. See -// [Option] for other options that can be used as an Int64HistogramOption. -type Int64HistogramOption interface { -	applyInt64Histogram(Int64HistogramConfig) Int64HistogramConfig -} diff --git a/vendor/go.opentelemetry.io/otel/sdk/internal/env/env.go b/vendor/go.opentelemetry.io/otel/sdk/internal/env/env.go index 59dcfab25..5e94b8ae5 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/internal/env/env.go +++ b/vendor/go.opentelemetry.io/otel/sdk/internal/env/env.go @@ -70,8 +70,8 @@ const (  // returned.  func firstInt(defaultValue int, keys ...string) int {  	for _, key := range keys { -		value := os.Getenv(key) -		if value == "" { +		value, ok := os.LookupEnv(key) +		if !ok {  			continue  		} @@ -88,10 +88,10 @@ func firstInt(defaultValue int, keys ...string) int {  }  // IntEnvOr returns the int value of the environment variable with name key if -// it exists, it is not empty, and the value is an int. Otherwise, defaultValue is returned. +// it exists and the value is an int. Otherwise, defaultValue is returned.  func IntEnvOr(key string, defaultValue int) int { -	value := os.Getenv(key) -	if value == "" { +	value, ok := os.LookupEnv(key) +	if !ok {  		return defaultValue  	} diff --git a/vendor/go.opentelemetry.io/otel/sdk/internal/internal.go b/vendor/go.opentelemetry.io/otel/sdk/internal/internal.go index dfeaaa8ca..84a02306e 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/internal/internal.go +++ b/vendor/go.opentelemetry.io/otel/sdk/internal/internal.go @@ -14,7 +14,16 @@  package internal // import "go.opentelemetry.io/otel/sdk/internal" -import "time" +import ( +	"fmt" +	"time" + +	"go.opentelemetry.io/otel" +) + +// UserAgent is the user agent to be added to the outgoing +// requests from the exporters. +var UserAgent = fmt.Sprintf("opentelemetry-go/%s", otel.Version())  // MonotonicEndTime returns the end time at present  // but offset from start, monotonically. diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go b/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go index 324dd4baf..c1d220408 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go +++ b/vendor/go.opentelemetry.io/otel/sdk/resource/auto.go @@ -18,7 +18,6 @@ import (  	"context"  	"errors"  	"fmt" -	"strings"  )  var ( @@ -46,65 +45,28 @@ type Detector interface {  // Detect calls all input detectors sequentially and merges each result with the previous one.  // It returns the merged error too.  func Detect(ctx context.Context, detectors ...Detector) (*Resource, error) { -	r := new(Resource) -	return r, detect(ctx, r, detectors) -} - -// detect runs all detectors using ctx and merges the result into res. This -// assumes res is allocated and not nil, it will panic otherwise. -func detect(ctx context.Context, res *Resource, detectors []Detector) error { -	var ( -		r    *Resource -		errs detectErrs -		err  error -	) - +	var autoDetectedRes *Resource +	var errInfo []string  	for _, detector := range detectors {  		if detector == nil {  			continue  		} -		r, err = detector.Detect(ctx) +		res, err := detector.Detect(ctx)  		if err != nil { -			errs = append(errs, err) +			errInfo = append(errInfo, err.Error())  			if !errors.Is(err, ErrPartialResource) {  				continue  			}  		} -		r, err = Merge(res, r) +		autoDetectedRes, err = Merge(autoDetectedRes, res)  		if err != nil { -			errs = append(errs, err) +			errInfo = append(errInfo, err.Error())  		} -		*res = *r  	} -	if len(errs) == 0 { -		return nil -	} -	return errs -} - -type detectErrs []error - -func (e detectErrs) Error() string { -	errStr := make([]string, len(e)) -	for i, err := range e { -		errStr[i] = fmt.Sprintf("* %s", err) +	var aggregatedError error +	if len(errInfo) > 0 { +		aggregatedError = fmt.Errorf("detecting resources: %s", errInfo)  	} - -	format := "%d errors occurred detecting resource:\n\t%s" -	return fmt.Sprintf(format, len(e), strings.Join(errStr, "\n\t")) -} - -func (e detectErrs) Unwrap() error { -	switch len(e) { -	case 0: -		return nil -	case 1: -		return e[0] -	} -	return e[1:] -} - -func (e detectErrs) Is(target error) bool { -	return len(e) != 0 && errors.Is(e[0], target) +	return autoDetectedRes, aggregatedError  } diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go b/vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go index 72320ca51..aa0f942f4 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go +++ b/vendor/go.opentelemetry.io/otel/sdk/resource/builtin.go @@ -20,8 +20,8 @@ import (  	"os"  	"path/filepath" +	"go.opentelemetry.io/otel"  	"go.opentelemetry.io/otel/attribute" -	"go.opentelemetry.io/otel/sdk"  	semconv "go.opentelemetry.io/otel/semconv/v1.17.0"  ) @@ -62,7 +62,7 @@ func (telemetrySDK) Detect(context.Context) (*Resource, error) {  		semconv.SchemaURL,  		semconv.TelemetrySDKName("opentelemetry"),  		semconv.TelemetrySDKLanguageGo, -		semconv.TelemetrySDKVersion(sdk.Version()), +		semconv.TelemetrySDKVersion(otel.Version()),  	), nil  } diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/config.go b/vendor/go.opentelemetry.io/otel/sdk/resource/config.go index f263919f6..f9a2a2999 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/config.go +++ b/vendor/go.opentelemetry.io/otel/sdk/resource/config.go @@ -71,11 +71,6 @@ func WithHost() Option {  	return WithDetectors(host{})  } -// WithHostID adds host ID information to the configured resource. -func WithHostID() Option { -	return WithDetectors(hostIDDetector{}) -} -  // WithTelemetrySDK adds TelemetrySDK version info to the configured resource.  func WithTelemetrySDK() Option {  	return WithDetectors(telemetrySDK{}) diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id.go b/vendor/go.opentelemetry.io/otel/sdk/resource/host_id.go deleted file mode 100644 index b8e934d4f..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id.go +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//	http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package resource // import "go.opentelemetry.io/otel/sdk/resource" - -import ( -	"context" -	"errors" -	"strings" - -	semconv "go.opentelemetry.io/otel/semconv/v1.17.0" -) - -type hostIDProvider func() (string, error) - -var defaultHostIDProvider hostIDProvider = platformHostIDReader.read - -var hostID = defaultHostIDProvider - -type hostIDReader interface { -	read() (string, error) -} - -type fileReader func(string) (string, error) - -type commandExecutor func(string, ...string) (string, error) - -// hostIDReaderBSD implements hostIDReader. -type hostIDReaderBSD struct { -	execCommand commandExecutor -	readFile    fileReader -} - -// read attempts to read the machine-id from /etc/hostid. If not found it will -// execute `kenv -q smbios.system.uuid`. If neither location yields an id an -// error will be returned. -func (r *hostIDReaderBSD) read() (string, error) { -	if result, err := r.readFile("/etc/hostid"); err == nil { -		return strings.TrimSpace(result), nil -	} - -	if result, err := r.execCommand("kenv", "-q", "smbios.system.uuid"); err == nil { -		return strings.TrimSpace(result), nil -	} - -	return "", errors.New("host id not found in: /etc/hostid or kenv") -} - -// hostIDReaderDarwin implements hostIDReader. -type hostIDReaderDarwin struct { -	execCommand commandExecutor -} - -// read executes `ioreg -rd1 -c "IOPlatformExpertDevice"` and parses host id -// from the IOPlatformUUID line. If the command fails or the uuid cannot be -// parsed an error will be returned. -func (r *hostIDReaderDarwin) read() (string, error) { -	result, err := r.execCommand("ioreg", "-rd1", "-c", "IOPlatformExpertDevice") -	if err != nil { -		return "", err -	} - -	lines := strings.Split(result, "\n") -	for _, line := range lines { -		if strings.Contains(line, "IOPlatformUUID") { -			parts := strings.Split(line, " = ") -			if len(parts) == 2 { -				return strings.Trim(parts[1], "\""), nil -			} -			break -		} -	} - -	return "", errors.New("could not parse IOPlatformUUID") -} - -type hostIDReaderLinux struct { -	readFile fileReader -} - -// read attempts to read the machine-id from /etc/machine-id followed by -// /var/lib/dbus/machine-id. If neither location yields an ID an error will -// be returned. -func (r *hostIDReaderLinux) read() (string, error) { -	if result, err := r.readFile("/etc/machine-id"); err == nil { -		return strings.TrimSpace(result), nil -	} - -	if result, err := r.readFile("/var/lib/dbus/machine-id"); err == nil { -		return strings.TrimSpace(result), nil -	} - -	return "", errors.New("host id not found in: /etc/machine-id or /var/lib/dbus/machine-id") -} - -type hostIDDetector struct{} - -// Detect returns a *Resource containing the platform specific host id. -func (hostIDDetector) Detect(ctx context.Context) (*Resource, error) { -	hostID, err := hostID() -	if err != nil { -		return nil, err -	} - -	return NewWithAttributes( -		semconv.SchemaURL, -		semconv.HostID(hostID), -	), nil -} diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_bsd.go b/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_bsd.go deleted file mode 100644 index 1778bbacf..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_bsd.go +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build dragonfly || freebsd || netbsd || openbsd || solaris -// +build dragonfly freebsd netbsd openbsd solaris - -package resource // import "go.opentelemetry.io/otel/sdk/resource" - -var platformHostIDReader hostIDReader = &hostIDReaderBSD{ -	execCommand: execCommand, -	readFile:    readFile, -} diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_darwin.go b/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_darwin.go deleted file mode 100644 index ba41409b2..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_darwin.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package resource // import "go.opentelemetry.io/otel/sdk/resource" - -var platformHostIDReader hostIDReader = &hostIDReaderDarwin{ -	execCommand: execCommand, -} diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_exec.go b/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_exec.go deleted file mode 100644 index 0080fc6b6..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_exec.go +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build bsd || darwin - -package resource // import "go.opentelemetry.io/otel/sdk/resource" - -import "os/exec" - -func execCommand(name string, arg ...string) (string, error) { -	cmd := exec.Command(name, arg...) -	b, err := cmd.Output() -	if err != nil { -		return "", err -	} - -	return string(b), nil -} diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_linux.go b/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_linux.go deleted file mode 100644 index 410579b8f..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_linux.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build linux -// +build linux - -package resource // import "go.opentelemetry.io/otel/sdk/resource" - -var platformHostIDReader hostIDReader = &hostIDReaderLinux{ -	readFile: readFile, -} diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_readfile.go b/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_readfile.go deleted file mode 100644 index df4dc92c1..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_readfile.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build bsd || linux - -package resource // import "go.opentelemetry.io/otel/sdk/resource" - -import "os" - -func readFile(filename string) (string, error) { -	b, err := os.ReadFile(filename) -	if err != nil { -		return "", nil -	} - -	return string(b), nil -} diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_unsupported.go b/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_unsupported.go deleted file mode 100644 index 89df9d688..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_unsupported.go +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// +build !darwin -// +build !dragonfly -// +build !freebsd -// +build !linux -// +build !netbsd -// +build !openbsd -// +build !solaris -// +build !windows - -package resource // import "go.opentelemetry.io/otel/sdk/resource" - -// hostIDReaderUnsupported is a placeholder implementation for operating systems -// for which this project currently doesn't support host.id -// attribute detection. See build tags declaration early on this file -// for a list of unsupported OSes. -type hostIDReaderUnsupported struct{} - -func (*hostIDReaderUnsupported) read() (string, error) { -	return "<unknown>", nil -} - -var platformHostIDReader hostIDReader = &hostIDReaderUnsupported{} diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_windows.go b/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_windows.go deleted file mode 100644 index 5b431c6ee..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/host_id_windows.go +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -//go:build windows -// +build windows - -package resource // import "go.opentelemetry.io/otel/sdk/resource" - -import ( -	"golang.org/x/sys/windows/registry" -) - -// implements hostIDReader -type hostIDReaderWindows struct{} - -// read reads MachineGuid from the windows registry key: -// SOFTWARE\Microsoft\Cryptography -func (*hostIDReaderWindows) read() (string, error) { -	k, err := registry.OpenKey( -		registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Cryptography`, -		registry.QUERY_VALUE|registry.WOW64_64KEY, -	) - -	if err != nil { -		return "", err -	} -	defer k.Close() - -	guid, _, err := k.GetStringValue("MachineGuid") -	if err != nil { -		return "", err -	} - -	return guid, nil -} - -var platformHostIDReader hostIDReader = &hostIDReaderWindows{} diff --git a/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go b/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go index 49958a9a6..c425ff05d 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go +++ b/vendor/go.opentelemetry.io/otel/sdk/resource/resource.go @@ -17,6 +17,7 @@ package resource // import "go.opentelemetry.io/otel/sdk/resource"  import (  	"context"  	"errors" +	"fmt"  	"sync"  	"go.opentelemetry.io/otel" @@ -50,8 +51,17 @@ func New(ctx context.Context, opts ...Option) (*Resource, error) {  		cfg = opt.apply(cfg)  	} -	r := &Resource{schemaURL: cfg.schemaURL} -	return r, detect(ctx, r, cfg.detectors) +	resource, err := Detect(ctx, cfg.detectors...) + +	var err2 error +	resource, err2 = Merge(resource, &Resource{schemaURL: cfg.schemaURL}) +	if err == nil { +		err = err2 +	} else if err2 != nil { +		err = fmt.Errorf("detecting resources: %s", []string{err.Error(), err2.Error()}) +	} + +	return resource, err  }  // NewWithAttributes creates a resource from attrs and associates the resource with a diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go b/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go index 43d5b0423..a2d7db490 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/batch_span_processor.go @@ -91,7 +91,7 @@ var _ SpanProcessor = (*batchSpanProcessor)(nil)  // NewBatchSpanProcessor creates a new SpanProcessor that will send completed  // span batches to the exporter with the supplied options.  // -// If the exporter is nil, the span processor will perform no action. +// If the exporter is nil, the span processor will preform no action.  func NewBatchSpanProcessor(exporter SpanExporter, options ...BatchSpanProcessorOption) SpanProcessor {  	maxQueueSize := env.BatchSpanProcessorMaxQueueSize(DefaultMaxQueueSize)  	maxExportBatchSize := env.BatchSpanProcessorMaxExportBatchSize(DefaultMaxExportBatchSize) diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/provider.go b/vendor/go.opentelemetry.io/otel/sdk/trace/provider.go index 0a018c14d..201c17817 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/provider.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/provider.go @@ -75,9 +75,8 @@ func (cfg tracerProviderConfig) MarshalLog() interface{} {  type TracerProvider struct {  	mu             sync.Mutex  	namedTracer    map[instrumentation.Scope]*tracer -	spanProcessors atomic.Pointer[spanProcessorStates] - -	isShutdown atomic.Bool +	spanProcessors atomic.Value +	isShutdown     bool  	// These fields are not protected by the lock mu. They are assumed to be  	// immutable after creation of the TracerProvider. @@ -120,11 +119,11 @@ func NewTracerProvider(opts ...TracerProviderOption) *TracerProvider {  	}  	global.Info("TracerProvider created", "config", o) -	spss := make(spanProcessorStates, 0, len(o.processors)) +	spss := spanProcessorStates{}  	for _, sp := range o.processors {  		spss = append(spss, newSpanProcessorState(sp))  	} -	tp.spanProcessors.Store(&spss) +	tp.spanProcessors.Store(spss)  	return tp  } @@ -137,11 +136,10 @@ func NewTracerProvider(opts ...TracerProviderOption) *TracerProvider {  //  // This method is safe to be called concurrently.  func (p *TracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer { -	// This check happens before the mutex is acquired to avoid deadlocking if Tracer() is called from within Shutdown(). -	if p.isShutdown.Load() { -		return trace.NewNoopTracerProvider().Tracer(name, opts...) -	}  	c := trace.NewTracerConfig(opts...) + +	p.mu.Lock() +	defer p.mu.Unlock()  	if name == "" {  		name = defaultTracerName  	} @@ -150,74 +148,44 @@ func (p *TracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.T  		Version:   c.InstrumentationVersion(),  		SchemaURL: c.SchemaURL(),  	} - -	t, ok := func() (trace.Tracer, bool) { -		p.mu.Lock() -		defer p.mu.Unlock() -		// Must check the flag after acquiring the mutex to avoid returning a valid tracer if Shutdown() ran -		// after the first check above but before we acquired the mutex. -		if p.isShutdown.Load() { -			return trace.NewNoopTracerProvider().Tracer(name, opts...), true -		} -		t, ok := p.namedTracer[is] -		if !ok { -			t = &tracer{ -				provider:             p, -				instrumentationScope: is, -			} -			p.namedTracer[is] = t -		} -		return t, ok -	}() +	t, ok := p.namedTracer[is]  	if !ok { -		// This code is outside the mutex to not hold the lock while calling third party logging code: -		// - That code may do slow things like I/O, which would prolong the duration the lock is held, -		//   slowing down all tracing consumers. -		// - Logging code may be instrumented with tracing and deadlock because it could try -		//   acquiring the same non-reentrant mutex. -		global.Info("Tracer created", "name", name, "version", is.Version, "schemaURL", is.SchemaURL) +		t = &tracer{ +			provider:             p, +			instrumentationScope: is, +		} +		p.namedTracer[is] = t +		global.Info("Tracer created", "name", name, "version", c.InstrumentationVersion(), "schemaURL", c.SchemaURL())  	}  	return t  }  // RegisterSpanProcessor adds the given SpanProcessor to the list of SpanProcessors.  func (p *TracerProvider) RegisterSpanProcessor(sp SpanProcessor) { -	// This check prevents calls during a shutdown. -	if p.isShutdown.Load() { -		return -	}  	p.mu.Lock()  	defer p.mu.Unlock() -	// This check prevents calls after a shutdown. -	if p.isShutdown.Load() { +	if p.isShutdown {  		return  	} - -	current := p.getSpanProcessors() -	newSPS := make(spanProcessorStates, 0, len(current)+1) -	newSPS = append(newSPS, current...) +	newSPS := spanProcessorStates{} +	newSPS = append(newSPS, p.spanProcessors.Load().(spanProcessorStates)...)  	newSPS = append(newSPS, newSpanProcessorState(sp)) -	p.spanProcessors.Store(&newSPS) +	p.spanProcessors.Store(newSPS)  }  // UnregisterSpanProcessor removes the given SpanProcessor from the list of SpanProcessors.  func (p *TracerProvider) UnregisterSpanProcessor(sp SpanProcessor) { -	// This check prevents calls during a shutdown. -	if p.isShutdown.Load() { -		return -	}  	p.mu.Lock()  	defer p.mu.Unlock() -	// This check prevents calls after a shutdown. -	if p.isShutdown.Load() { +	if p.isShutdown {  		return  	} -	old := p.getSpanProcessors() +	old := p.spanProcessors.Load().(spanProcessorStates)  	if len(old) == 0 {  		return  	} -	spss := make(spanProcessorStates, len(old)) -	copy(spss, old) +	spss := spanProcessorStates{} +	spss = append(spss, old...)  	// stop the span processor if it is started and remove it from the list  	var stopOnce *spanProcessorState @@ -241,13 +209,13 @@ func (p *TracerProvider) UnregisterSpanProcessor(sp SpanProcessor) {  	spss[len(spss)-1] = nil  	spss = spss[:len(spss)-1] -	p.spanProcessors.Store(&spss) +	p.spanProcessors.Store(spss)  }  // ForceFlush immediately exports all spans that have not yet been exported for  // all the registered span processors.  func (p *TracerProvider) ForceFlush(ctx context.Context) error { -	spss := p.getSpanProcessors() +	spss := p.spanProcessors.Load().(spanProcessorStates)  	if len(spss) == 0 {  		return nil  	} @@ -268,21 +236,18 @@ func (p *TracerProvider) ForceFlush(ctx context.Context) error {  // Shutdown shuts down TracerProvider. All registered span processors are shut down  // in the order they were registered and any held computational resources are released. -// After Shutdown is called, all methods are no-ops.  func (p *TracerProvider) Shutdown(ctx context.Context) error { -	// This check prevents deadlocks in case of recursive shutdown. -	if p.isShutdown.Load() { +	spss := p.spanProcessors.Load().(spanProcessorStates) +	if len(spss) == 0 {  		return nil  	} +  	p.mu.Lock()  	defer p.mu.Unlock() -	// This check prevents calls after a shutdown has already been done concurrently. -	if !p.isShutdown.CompareAndSwap(false, true) { // did toggle? -		return nil -	} +	p.isShutdown = true  	var retErr error -	for _, sps := range p.getSpanProcessors() { +	for _, sps := range spss {  		select {  		case <-ctx.Done():  			return ctx.Err() @@ -302,14 +267,10 @@ func (p *TracerProvider) Shutdown(ctx context.Context) error {  			}  		}  	} -	p.spanProcessors.Store(&spanProcessorStates{}) +	p.spanProcessors.Store(spanProcessorStates{})  	return retErr  } -func (p *TracerProvider) getSpanProcessors() spanProcessorStates { -	return *(p.spanProcessors.Load()) -} -  // TracerProviderOption configures a TracerProvider.  type TracerProviderOption interface {  	apply(tracerProviderConfig) tracerProviderConfig diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go b/vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go index f8770fff7..e8530a959 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/simple_span_processor.go @@ -19,13 +19,12 @@ import (  	"sync"  	"go.opentelemetry.io/otel" -	"go.opentelemetry.io/otel/internal/global"  )  // simpleSpanProcessor is a SpanProcessor that synchronously sends all  // completed Spans to a trace.Exporter immediately.  type simpleSpanProcessor struct { -	exporterMu sync.Mutex +	exporterMu sync.RWMutex  	exporter   SpanExporter  	stopOnce   sync.Once  } @@ -44,8 +43,6 @@ func NewSimpleSpanProcessor(exporter SpanExporter) SpanProcessor {  	ssp := &simpleSpanProcessor{  		exporter: exporter,  	} -	global.Warn("SimpleSpanProcessor is not recommended for production use, consider using BatchSpanProcessor instead.") -  	return ssp  } @@ -54,8 +51,8 @@ func (ssp *simpleSpanProcessor) OnStart(context.Context, ReadWriteSpan) {}  // OnEnd immediately exports a ReadOnlySpan.  func (ssp *simpleSpanProcessor) OnEnd(s ReadOnlySpan) { -	ssp.exporterMu.Lock() -	defer ssp.exporterMu.Unlock() +	ssp.exporterMu.RLock() +	defer ssp.exporterMu.RUnlock()  	if ssp.exporter != nil && s.SpanContext().TraceFlags().IsSampled() {  		if err := ssp.exporter.ExportSpans(context.Background(), []ReadOnlySpan{s}); err != nil { diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/span.go b/vendor/go.opentelemetry.io/otel/sdk/trace/span.go index 4fcca26e0..9fb483a99 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/span.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/span.go @@ -302,7 +302,7 @@ func (s *recordingSpan) addOverCapAttrs(limit int, attrs []attribute.KeyValue) {  // most a length of limit. Each string slice value is truncated in this fashion  // (the slice length itself is unaffected).  // -// No truncation is performed for a negative limit. +// No truncation is perfromed for a negative limit.  func truncateAttr(limit int, attr attribute.KeyValue) attribute.KeyValue {  	if limit < 0 {  		return attr @@ -410,7 +410,7 @@ func (s *recordingSpan) End(options ...trace.SpanEndOption) {  	}  	s.mu.Unlock() -	sps := s.tracer.provider.getSpanProcessors() +	sps := s.tracer.provider.spanProcessors.Load().(spanProcessorStates)  	if len(sps) == 0 {  		return  	} diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/span_exporter.go b/vendor/go.opentelemetry.io/otel/sdk/trace/span_exporter.go index c9bd52f7a..9fb3d6eac 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/span_exporter.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/span_exporter.go @@ -38,7 +38,7 @@ type SpanExporter interface {  	// must never be done outside of a new major release.  	// Shutdown notifies the exporter of a pending halt to operations. The -	// exporter is expected to perform any cleanup or synchronization it +	// exporter is expected to preform any cleanup or synchronization it  	// requires while honoring all timeouts and cancellations contained in  	// the passed context.  	Shutdown(ctx context.Context) error diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/span_processor.go b/vendor/go.opentelemetry.io/otel/sdk/trace/span_processor.go index 9c53657a7..e6ae19352 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/span_processor.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/span_processor.go @@ -62,11 +62,11 @@ type SpanProcessor interface {  type spanProcessorState struct {  	sp    SpanProcessor -	state sync.Once +	state *sync.Once  }  func newSpanProcessorState(sp SpanProcessor) *spanProcessorState { -	return &spanProcessorState{sp: sp} +	return &spanProcessorState{sp: sp, state: &sync.Once{}}  }  type spanProcessorStates []*spanProcessorState diff --git a/vendor/go.opentelemetry.io/otel/sdk/trace/tracer.go b/vendor/go.opentelemetry.io/otel/sdk/trace/tracer.go index 85a71227f..f17d924b8 100644 --- a/vendor/go.opentelemetry.io/otel/sdk/trace/tracer.go +++ b/vendor/go.opentelemetry.io/otel/sdk/trace/tracer.go @@ -51,7 +51,7 @@ func (tr *tracer) Start(ctx context.Context, name string, options ...trace.SpanS  	s := tr.newSpan(ctx, name, &config)  	if rw, ok := s.(ReadWriteSpan); ok && s.IsRecording() { -		sps := tr.provider.getSpanProcessors() +		sps := tr.provider.spanProcessors.Load().(spanProcessorStates)  		for _, sp := range sps {  			sp.sp.OnStart(ctx, rw)  		} diff --git a/vendor/go.opentelemetry.io/otel/sdk/version.go b/vendor/go.opentelemetry.io/otel/sdk/version.go deleted file mode 100644 index 2adddad86..000000000 --- a/vendor/go.opentelemetry.io/otel/sdk/version.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright The OpenTelemetry Authors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -//     http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package sdk // import "go.opentelemetry.io/otel/sdk" - -// Version is the current release version of the OpenTelemetry SDK in use. -func Version() string { -	return "1.15.1" -} diff --git a/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go b/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go index fc43808fe..c60b2a6bb 100644 --- a/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go +++ b/vendor/go.opentelemetry.io/otel/semconv/v1.17.0/httpconv/http.go @@ -12,8 +12,8 @@  // See the License for the specific language governing permissions and  // limitations under the License. -// Package httpconv provides OpenTelemetry HTTP semantic conventions for -// tracing telemetry. +// Package httpconv provides OpenTelemetry semantic convetions for the net/http +// package from the standard library.  package httpconv // import "go.opentelemetry.io/otel/semconv/v1.17.0/httpconv"  import ( @@ -58,10 +58,9 @@ var (  	}  ) -// ClientResponse returns trace attributes for an HTTP response received by a -// client from a server. It will return the following attributes if the related -// values are defined in resp: "http.status.code", -// "http.response_content_length". +// ClientResponse returns attributes for an HTTP response received by a client +// from a server. It will return the following attributes if the related values +// are defined in resp: "http.status.code", "http.response_content_length".  //  // This does not add all OpenTelemetry required attributes for an HTTP event,  // it assumes ClientRequest was used to create the span with a complete set of @@ -73,8 +72,8 @@ func ClientResponse(resp *http.Response) []attribute.KeyValue {  	return hc.ClientResponse(resp)  } -// ClientRequest returns trace attributes for an HTTP request made by a client. -// The following attributes are always returned: "http.url", "http.flavor", +// ClientRequest returns attributes for an HTTP request made by a client. The +// following attributes are always returned: "http.url", "http.flavor",  // "http.method", "net.peer.name". The following attributes are returned if the  // related values are defined in req: "net.peer.port", "http.user_agent",  // "http.request_content_length", "enduser.id". @@ -88,8 +87,7 @@ func ClientStatus(code int) (codes.Code, string) {  	return hc.ClientStatus(code)  } -// ServerRequest returns trace attributes for an HTTP request received by a -// server. +// ServerRequest returns attributes for an HTTP request received by a server.  //  // The server must be the primary server name if it is known. For example this  // would be the ServerName directive diff --git a/vendor/go.opentelemetry.io/otel/trace/noop.go b/vendor/go.opentelemetry.io/otel/trace/noop.go index 7cf6c7f3e..73950f207 100644 --- a/vendor/go.opentelemetry.io/otel/trace/noop.go +++ b/vendor/go.opentelemetry.io/otel/trace/noop.go @@ -37,7 +37,7 @@ func (p noopTracerProvider) Tracer(string, ...TracerOption) Tracer {  	return noopTracer{}  } -// noopTracer is an implementation of Tracer that performs no operations. +// noopTracer is an implementation of Tracer that preforms no operations.  type noopTracer struct{}  var _ Tracer = noopTracer{} @@ -53,7 +53,7 @@ func (t noopTracer) Start(ctx context.Context, name string, _ ...SpanStartOption  	return ContextWithSpan(ctx, span), span  } -// noopSpan is an implementation of Span that performs no operations. +// noopSpan is an implementation of Span that preforms no operations.  type noopSpan struct{}  var _ Span = noopSpan{} diff --git a/vendor/go.opentelemetry.io/otel/version.go b/vendor/go.opentelemetry.io/otel/version.go index 6c7fe114b..0e8e5e023 100644 --- a/vendor/go.opentelemetry.io/otel/version.go +++ b/vendor/go.opentelemetry.io/otel/version.go @@ -16,5 +16,5 @@ package otel // import "go.opentelemetry.io/otel"  // Version is the current release version of OpenTelemetry in use.  func Version() string { -	return "1.15.1" +	return "1.14.0"  } diff --git a/vendor/go.opentelemetry.io/otel/versions.yaml b/vendor/go.opentelemetry.io/otel/versions.yaml index b49ec1029..40df1fae4 100644 --- a/vendor/go.opentelemetry.io/otel/versions.yaml +++ b/vendor/go.opentelemetry.io/otel/versions.yaml @@ -14,7 +14,7 @@  module-sets:    stable-v1: -    version: v1.15.1 +    version: v1.14.0      modules:        - go.opentelemetry.io/otel        - go.opentelemetry.io/otel/bridge/opentracing @@ -26,16 +26,16 @@ module-sets:        - go.opentelemetry.io/otel/example/passthrough        - go.opentelemetry.io/otel/example/zipkin        - go.opentelemetry.io/otel/exporters/jaeger -      - go.opentelemetry.io/otel/exporters/otlp/internal/retry +      - go.opentelemetry.io/otel/exporters/zipkin        - go.opentelemetry.io/otel/exporters/otlp/otlptrace        - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc        - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp +      - go.opentelemetry.io/otel/exporters/otlp/internal/retry        - go.opentelemetry.io/otel/exporters/stdout/stdouttrace -      - go.opentelemetry.io/otel/exporters/zipkin -      - go.opentelemetry.io/otel/sdk        - go.opentelemetry.io/otel/trace +      - go.opentelemetry.io/otel/sdk    experimental-metrics: -    version: v0.38.1 +    version: v0.37.0      modules:        - go.opentelemetry.io/otel/example/opencensus        - go.opentelemetry.io/otel/example/prometheus diff --git a/vendor/modules.txt b/vendor/modules.txt index cd288b1fb..1d1b68fcb 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -731,10 +731,10 @@ github.com/uptrace/bun/dialect/pgdialect  # github.com/uptrace/bun/dialect/sqlitedialect v1.1.13  ## explicit; go 1.18  github.com/uptrace/bun/dialect/sqlitedialect -# github.com/uptrace/bun/extra/bunotel v1.1.13 +# github.com/uptrace/bun/extra/bunotel v1.1.12  ## explicit; go 1.18  github.com/uptrace/bun/extra/bunotel -# github.com/uptrace/opentelemetry-go-extra/otelsql v0.2.0 +# github.com/uptrace/opentelemetry-go-extra/otelsql v0.1.21  ## explicit; go 1.18  github.com/uptrace/opentelemetry-go-extra/otelsql  # github.com/vmihailenco/msgpack/v5 v5.3.5 @@ -760,8 +760,8 @@ github.com/yuin/goldmark/renderer  github.com/yuin/goldmark/renderer/html  github.com/yuin/goldmark/text  github.com/yuin/goldmark/util -# go.opentelemetry.io/otel v1.15.1 -## explicit; go 1.19 +# go.opentelemetry.io/otel v1.14.0 +## explicit; go 1.18  go.opentelemetry.io/otel  go.opentelemetry.io/otel/attribute  go.opentelemetry.io/otel/baggage @@ -779,42 +779,39 @@ go.opentelemetry.io/otel/semconv/v1.10.0  go.opentelemetry.io/otel/semconv/v1.12.0  go.opentelemetry.io/otel/semconv/v1.17.0  go.opentelemetry.io/otel/semconv/v1.17.0/httpconv -# go.opentelemetry.io/otel/exporters/jaeger v1.15.1 -## explicit; go 1.19 +# go.opentelemetry.io/otel/exporters/jaeger v1.14.0 +## explicit; go 1.18  go.opentelemetry.io/otel/exporters/jaeger  go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/agent  go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/jaeger  go.opentelemetry.io/otel/exporters/jaeger/internal/gen-go/zipkincore  go.opentelemetry.io/otel/exporters/jaeger/internal/third_party/thrift/lib/go/thrift -# go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 -## explicit; go 1.19 +# go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.14.0 +## explicit; go 1.18  go.opentelemetry.io/otel/exporters/otlp/internal/retry -# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1 -## explicit; go 1.19 +# go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.14.0 +## explicit; go 1.18  go.opentelemetry.io/otel/exporters/otlp/otlptrace -go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal  go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/otlpconfig  go.opentelemetry.io/otel/exporters/otlp/otlptrace/internal/tracetransform -# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1 -## explicit; go 1.19 +# go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.14.0 +## explicit; go 1.18  go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc -# go.opentelemetry.io/otel/metric v0.38.1 -## explicit; go 1.19 +# go.opentelemetry.io/otel/metric v0.37.0 +## explicit; go 1.18  go.opentelemetry.io/otel/metric -go.opentelemetry.io/otel/metric/embedded  go.opentelemetry.io/otel/metric/global  go.opentelemetry.io/otel/metric/instrument  go.opentelemetry.io/otel/metric/internal/global -# go.opentelemetry.io/otel/sdk v1.15.1 -## explicit; go 1.19 -go.opentelemetry.io/otel/sdk +# go.opentelemetry.io/otel/sdk v1.14.0 +## explicit; go 1.18  go.opentelemetry.io/otel/sdk/instrumentation  go.opentelemetry.io/otel/sdk/internal  go.opentelemetry.io/otel/sdk/internal/env  go.opentelemetry.io/otel/sdk/resource  go.opentelemetry.io/otel/sdk/trace -# go.opentelemetry.io/otel/trace v1.15.1 -## explicit; go 1.19 +# go.opentelemetry.io/otel/trace v1.14.0 +## explicit; go 1.18  go.opentelemetry.io/otel/trace  # go.opentelemetry.io/proto/otlp v0.19.0  ## explicit; go 1.14  | 
