Repository navigation
sdk/metric: Add experimental Enabled method to synchronous instruments - #6016
Conversation
Opening this to get feedback on whether or not I'm headed in the right direction based on the details listed in open-telemetry#6002. This is a replacement for open-telemetry#5768 Fixes open-telemetry#6002 There are still some tests I would add, but overall I'm mostly looking to reviewers to let me know if this is the correct approach (defining an interface in `x` and using that interface in the SDK) Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #6016 +/- ##
=====================================
Coverage 82.1% 82.2%
=====================================
Files 273 273
Lines 23643 23647 +4
=====================================
+ Hits 19433 19448 +15
+ Misses 3865 3852 -13
- Partials 345 347 +2 |
There was a problem hiding this comment.
Nice work 👍 Overall, I think this is the direction we agreed on during the SIG meetings.
I think it would be good to also add an example in sdk/metric/example_test.go and add some benchmarks.
You can look at #5692 for reference.
Co-authored-by: Robert Pająk <pellared@hotmail.com>
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
Co-authored-by: Robert Pająk <pellared@hotmail.com>
pellared
left a comment
There was a problem hiding this comment.
Just one refactoring request from my side. The rest LGTM👍
After a second thought, I do not think it is really necessary.
Is the PR description up to date? Looks like a pretty complete PR unless I am missing something 😉 |
Signed-off-by: Alex Boten <223565+codeboten@users.noreply.github.com>
|
Updated the description, thanks for all the reviews/suggestions! |
### Added - Add `Reset` method to `SpanRecorder` in `go.opentelemetry.io/otel/sdk/trace/tracetest`. (#5994) - Add `EnabledInstrument` interface in `go.opentelemetry.io/otel/sdk/metric/internal/x`. This is an experimental interface that is implemented by synchronous instruments provided by `go.opentelemetry.io/otel/sdk/metric`. Users can use it to avoid performing computationally expensive operations when recording measurements. It does not fall within the scope of the OpenTelemetry Go versioning and stability [policy](./VERSIONING.md) and it may be changed in backwards incompatible ways or removed in feature releases. (#6016) ### Changed - The default global API now supports full auto-instrumentation from the `go.opentelemetry.io/auto` package. See that package for more information. (#5920) - Propagate non-retryable error messages to client in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#5929) - Propagate non-retryable error messages to client in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#5929) - Propagate non-retryable error messages to client in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#5929) - Performance improvements for attribute value `AsStringSlice`, `AsFloat64Slice`, `AsInt64Slice`, `AsBoolSlice`. (#6011) - Change `EnabledParameters` to have a `Severity` field instead of a getter and setter in `go.opentelemetry.io/otel/log`. (#6009) ### Fixed - Fix inconsistent request body closing in `go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp`. (#5954) - Fix inconsistent request body closing in `go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp`. (#5954) - Fix inconsistent request body closing in `go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp`. (#5954) - Fix invalid exemplar keys in `go.opentelemetry.io/otel/exporters/prometheus`. (#5995) - Fix attribute value truncation in `go.opentelemetry.io/otel/sdk/trace`. (#5997) - Fix attribute value truncation in `go.opentelemetry.io/otel/sdk/log`. (#6032)
Fixes #6002