Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup interaction of exemplar and aggregation #5899

Merged
merged 8 commits into from
Oct 21, 2024

Conversation

dashpole
Copy link
Contributor

@dashpole dashpole commented Oct 18, 2024

Follow-up to #5861. This is an attempt to:

  • Limit the API surface of the aggregate package
  • Try to use predefined types (e.g. exemplar.Filter) over custom functions where possible.
  • Avoid using nil, and use No-Ops where it makes sense

This makes aggregate.NewFilteredExemplarReservoir no longer exported, removes the aggregate.FilteredExemplarReservoir interface, and removes the aggregate.dropReservoir.

@dashpole dashpole added Skip Changelog PRs that do not require a CHANGELOG.md entry area:metrics Part of OpenTelemetry Metrics labels Oct 18, 2024
Copy link

codecov bot commented Oct 18, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 84.6%. Comparing base (bf6a7e1) to head (e626e3f).
Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##            main   #5899     +/-   ##
=======================================
- Coverage   84.6%   84.6%   -0.1%     
=======================================
  Files        272     271      -1     
  Lines      22864   22855      -9     
=======================================
- Hits       19347   19337     -10     
- Misses      3172    3173      +1     
  Partials     345     345             

see 6 files with indirect coverage changes

@dashpole dashpole merged commit 8041156 into open-telemetry:main Oct 21, 2024
32 checks passed
@dashpole dashpole deleted the refactor_exemplar branch October 21, 2024 19:37
XSAM added a commit to XSAM/opentelemetry-go that referenced this pull request Oct 23, 2024
XSAM added a commit that referenced this pull request Oct 23, 2024
Topic: #5249

This reverts commit 8041156 (PR: #5899)
due to the performance degradation found by Benchmarks CI
https://github.com/open-telemetry/opentelemetry-go/actions/runs/11447364022/job/31848519243

Here is the benchmark test on my machine:

```
goos: darwin
goarch: arm64
pkg: go.opentelemetry.io/otel/sdk/metric
                                       │   old.txt   │                new.txt                 │
                                       │   sec/op    │    sec/op     vs base                  │
Instrument/instrumentImpl/aggregate-10   3.378µ ± 3%   49.366µ ± 1%  +1361.40% (p=0.000 n=10)
Instrument/observable/observe-10         2.288µ ± 2%   37.791µ ± 1%  +1551.73% (p=0.000 n=10)
geomean                                  2.780µ         43.19µ       +1453.65%

                                       │   old.txt    │                 new.txt                 │
                                       │     B/op     │     B/op       vs base                  │
Instrument/instrumentImpl/aggregate-10   1.245Ki ± 1%   22.363Ki ± 0%  +1696.08% (p=0.000 n=10)
Instrument/observable/observe-10           823.0 ± 1%    17432.5 ± 0%  +2018.17% (p=0.000 n=10)
geomean                                  1.000Ki         19.51Ki       +1850.48%

                                       │  old.txt   │                new.txt                │
                                       │ allocs/op  │  allocs/op   vs base                  │
Instrument/instrumentImpl/aggregate-10   1.000 ± 0%   21.000 ± 0%  +2000.00% (p=0.000 n=10)
Instrument/observable/observe-10         1.000 ± 0%   16.000 ± 0%  +1500.00% (p=0.000 n=10)
```
@MrAlias MrAlias added this to the v1.32.0 milestone Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:metrics Part of OpenTelemetry Metrics Skip Changelog PRs that do not require a CHANGELOG.md entry
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants