-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert Cleanup interaction of exemplar and aggregation (#5913)
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) ```
- Loading branch information
Showing
16 changed files
with
169 additions
and
165 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
// Copyright The OpenTelemetry Authors | ||
// SPDX-License-Identifier: Apache-2.0 | ||
|
||
package aggregate // import "go.opentelemetry.io/otel/sdk/metric/internal/aggregate" | ||
|
||
import ( | ||
"context" | ||
|
||
"go.opentelemetry.io/otel/attribute" | ||
"go.opentelemetry.io/otel/sdk/metric/exemplar" | ||
) | ||
|
||
// dropReservoir returns a [FilteredReservoir] that drops all measurements it is offered. | ||
func dropReservoir[N int64 | float64](attribute.Set) FilteredExemplarReservoir[N] { | ||
return &dropRes[N]{} | ||
} | ||
|
||
type dropRes[N int64 | float64] struct{} | ||
|
||
// Offer does nothing, all measurements offered will be dropped. | ||
func (r *dropRes[N]) Offer(context.Context, N, []attribute.KeyValue) {} | ||
|
||
// Collect resets dest. No exemplars will ever be returned. | ||
func (r *dropRes[N]) Collect(dest *[]exemplar.Exemplar) { | ||
*dest = (*dest)[:0] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
// Copyright The OpenTelemetry Authors | ||
// SPDX-License-Identifier: Apache-2.0 | ||
|
||
package aggregate | ||
|
||
import ( | ||
"testing" | ||
|
||
"github.com/stretchr/testify/assert" | ||
|
||
"go.opentelemetry.io/otel/attribute" | ||
"go.opentelemetry.io/otel/sdk/metric/exemplar" | ||
) | ||
|
||
func TestDrop(t *testing.T) { | ||
t.Run("Int64", testDropFiltered[int64]) | ||
t.Run("Float64", testDropFiltered[float64]) | ||
} | ||
|
||
func testDropFiltered[N int64 | float64](t *testing.T) { | ||
r := dropReservoir[N](*attribute.EmptySet()) | ||
|
||
var dest []exemplar.Exemplar | ||
r.Collect(&dest) | ||
|
||
assert.Empty(t, dest, "non-sampled context should not be offered") | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.