You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2026-06-03 18:35:08 +02:00
Flatten sdk/metric/aggregation into sdk/metric (#4435)
* Deprecate the aggregation pkg * Decouple the internal/aggregate from aggregation pkg * Add Aggregation to the metric pkg * Do not use sdk/metric/aggregation in stdoutmetric exporter * Update all generated templates * Update prom exporter * Fix view example * Add changes to changelog * Update CHANGELOG.md Co-authored-by: Robert Pająk <pellared@hotmail.com> * Rename Sum to AggregationSum * Fix comments * Centralize validation of aggregation in pipeline * Remove validation of agg in manual_reader selector opt * Fix merge --------- Co-authored-by: Robert Pająk <pellared@hotmail.com>
This commit is contained in:
@@ -30,7 +30,6 @@ import (
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/oconf"
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/otest"
|
||||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/metric/aggregation"
|
||||
"go.opentelemetry.io/otel/sdk/metric/metricdata"
|
||||
)
|
||||
|
||||
@@ -41,7 +40,7 @@ type clientShim struct {
|
||||
func (clientShim) Temporality(metric.InstrumentKind) metricdata.Temporality {
|
||||
return metricdata.CumulativeTemporality
|
||||
}
|
||||
func (clientShim) Aggregation(metric.InstrumentKind) aggregation.Aggregation {
|
||||
func (clientShim) Aggregation(metric.InstrumentKind) metric.Aggregation {
|
||||
return nil
|
||||
}
|
||||
func (clientShim) ForceFlush(ctx context.Context) error {
|
||||
|
||||
@@ -23,7 +23,6 @@ import (
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/transform"
|
||||
"go.opentelemetry.io/otel/internal/global"
|
||||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/metric/aggregation"
|
||||
"go.opentelemetry.io/otel/sdk/metric/metricdata"
|
||||
metricpb "go.opentelemetry.io/proto/otlp/metrics/v1"
|
||||
)
|
||||
@@ -70,7 +69,7 @@ func (e *Exporter) Temporality(k metric.InstrumentKind) metricdata.Temporality {
|
||||
}
|
||||
|
||||
// Aggregation returns the Aggregation to use for an instrument kind.
|
||||
func (e *Exporter) Aggregation(k metric.InstrumentKind) aggregation.Aggregation {
|
||||
func (e *Exporter) Aggregation(k metric.InstrumentKind) metric.Aggregation {
|
||||
return e.aggregationSelector(k)
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@ import (
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/envconfig"
|
||||
"go.opentelemetry.io/otel/internal/global"
|
||||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/metric/aggregation"
|
||||
"go.opentelemetry.io/otel/sdk/metric/metricdata"
|
||||
)
|
||||
|
||||
@@ -204,9 +203,9 @@ func withEnvAggPreference(n string, fn func(metric.AggregationSelector)) func(e
|
||||
case "explicit_bucket_histogram":
|
||||
fn(metric.DefaultAggregationSelector)
|
||||
case "base2_exponential_bucket_histogram":
|
||||
fn(func(kind metric.InstrumentKind) aggregation.Aggregation {
|
||||
fn(func(kind metric.InstrumentKind) metric.Aggregation {
|
||||
if kind == metric.InstrumentKindHistogram {
|
||||
return aggregation.Base2ExponentialHistogram{
|
||||
return metric.AggregationBase2ExponentialHistogram{
|
||||
MaxSize: 160,
|
||||
MaxScale: 20,
|
||||
NoMinMax: false,
|
||||
|
||||
@@ -24,7 +24,6 @@ import (
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/metric/aggregation"
|
||||
"go.opentelemetry.io/otel/sdk/metric/metricdata"
|
||||
)
|
||||
|
||||
@@ -111,7 +110,7 @@ func TestWithEnvAggPreference(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
envValue string
|
||||
want map[metric.InstrumentKind]aggregation.Aggregation
|
||||
want map[metric.InstrumentKind]metric.Aggregation
|
||||
}{
|
||||
{
|
||||
name: "default do not set the selector",
|
||||
@@ -124,7 +123,7 @@ func TestWithEnvAggPreference(t *testing.T) {
|
||||
{
|
||||
name: "explicit_bucket_histogram",
|
||||
envValue: "explicit_bucket_histogram",
|
||||
want: map[metric.InstrumentKind]aggregation.Aggregation{
|
||||
want: map[metric.InstrumentKind]metric.Aggregation{
|
||||
metric.InstrumentKindCounter: metric.DefaultAggregationSelector(metric.InstrumentKindCounter),
|
||||
metric.InstrumentKindHistogram: metric.DefaultAggregationSelector(metric.InstrumentKindHistogram),
|
||||
metric.InstrumentKindUpDownCounter: metric.DefaultAggregationSelector(metric.InstrumentKindUpDownCounter),
|
||||
@@ -136,9 +135,9 @@ func TestWithEnvAggPreference(t *testing.T) {
|
||||
{
|
||||
name: "base2_exponential_bucket_histogram",
|
||||
envValue: "base2_exponential_bucket_histogram",
|
||||
want: map[metric.InstrumentKind]aggregation.Aggregation{
|
||||
want: map[metric.InstrumentKind]metric.Aggregation{
|
||||
metric.InstrumentKindCounter: metric.DefaultAggregationSelector(metric.InstrumentKindCounter),
|
||||
metric.InstrumentKindHistogram: aggregation.Base2ExponentialHistogram{
|
||||
metric.InstrumentKindHistogram: metric.AggregationBase2ExponentialHistogram{
|
||||
MaxSize: 160,
|
||||
MaxScale: 20,
|
||||
NoMinMax: false,
|
||||
|
||||
@@ -32,9 +32,7 @@ import (
|
||||
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric"
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/retry"
|
||||
"go.opentelemetry.io/otel/internal/global"
|
||||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/metric/aggregation"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -354,23 +352,8 @@ func WithTemporalitySelector(selector metric.TemporalitySelector) GenericOption
|
||||
}
|
||||
|
||||
func WithAggregationSelector(selector metric.AggregationSelector) GenericOption {
|
||||
// Deep copy and validate before using.
|
||||
wrapped := func(ik metric.InstrumentKind) aggregation.Aggregation {
|
||||
a := selector(ik)
|
||||
cpA := a.Copy()
|
||||
if err := cpA.Err(); err != nil {
|
||||
cpA = metric.DefaultAggregationSelector(ik)
|
||||
global.Error(
|
||||
err, "using default aggregation instead",
|
||||
"aggregation", a,
|
||||
"replacement", cpA,
|
||||
)
|
||||
}
|
||||
return cpA
|
||||
}
|
||||
|
||||
return newGenericOption(func(cfg Config) Config {
|
||||
cfg.Metrics.AggregationSelector = wrapped
|
||||
cfg.Metrics.AggregationSelector = selector
|
||||
return cfg
|
||||
})
|
||||
}
|
||||
|
||||
@@ -26,7 +26,6 @@ import (
|
||||
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal/envconfig"
|
||||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/metric/aggregation"
|
||||
"go.opentelemetry.io/otel/sdk/metric/metricdata"
|
||||
)
|
||||
|
||||
@@ -417,7 +416,7 @@ func TestConfigs(t *testing.T) {
|
||||
// all" was set.
|
||||
var undefinedKind metric.InstrumentKind
|
||||
got := c.Metrics.AggregationSelector
|
||||
assert.Equal(t, aggregation.Drop{}, got(undefinedKind))
|
||||
assert.Equal(t, metric.AggregationDrop{}, got(undefinedKind))
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -443,8 +442,8 @@ func TestConfigs(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func dropSelector(metric.InstrumentKind) aggregation.Aggregation {
|
||||
return aggregation.Drop{}
|
||||
func dropSelector(metric.InstrumentKind) metric.Aggregation {
|
||||
return metric.AggregationDrop{}
|
||||
}
|
||||
|
||||
func deltaSelector(metric.InstrumentKind) metricdata.Temporality {
|
||||
|
||||
@@ -24,7 +24,6 @@ import (
|
||||
"go.opentelemetry.io/otel"
|
||||
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp/internal"
|
||||
"go.opentelemetry.io/otel/sdk/metric"
|
||||
"go.opentelemetry.io/otel/sdk/metric/aggregation"
|
||||
"go.opentelemetry.io/otel/sdk/metric/metricdata"
|
||||
cpb "go.opentelemetry.io/proto/otlp/collector/metrics/v1"
|
||||
mpb "go.opentelemetry.io/proto/otlp/metrics/v1"
|
||||
@@ -39,7 +38,7 @@ func (c *client) Temporality(k metric.InstrumentKind) metricdata.Temporality {
|
||||
return metric.DefaultTemporalitySelector(k)
|
||||
}
|
||||
|
||||
func (c *client) Aggregation(k metric.InstrumentKind) aggregation.Aggregation {
|
||||
func (c *client) Aggregation(k metric.InstrumentKind) metric.Aggregation {
|
||||
return metric.DefaultAggregationSelector(k)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user