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

Remove dependency on batchprocessor from service package #6730

Merged
merged 1 commit into from
Dec 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .chloggen/rmdepbatch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: deprecation

# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
component: batchprocessor

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Deprecate metric views funcs, for OC and Otel.

# One or more tracking issues or pull requests related to the change
issues: [6730]
2 changes: 0 additions & 2 deletions component/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,4 @@ replace go.opentelemetry.io/collector/pdata => ../pdata

replace go.opentelemetry.io/collector/semconv => ../semconv

replace go.opentelemetry.io/collector/processor/batchprocessor => ../processor/batchprocessor

replace go.opentelemetry.io/collector/extension/zpagesextension => ../extension/zpagesextension
2 changes: 0 additions & 2 deletions consumer/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,6 @@ replace go.opentelemetry.io/collector/pdata => ../pdata

replace go.opentelemetry.io/collector/semconv => ../semconv

replace go.opentelemetry.io/collector/processor/batchprocessor => ../processor/batchprocessor

replace go.opentelemetry.io/collector/extension/zpagesextension => ../extension/zpagesextension

replace go.opentelemetry.io/collector/component => ../component
Expand Down
2 changes: 0 additions & 2 deletions exporter/loggingexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,3 @@ replace go.opentelemetry.io/collector/pdata => ../../pdata
replace go.opentelemetry.io/collector/semconv => ../../semconv

replace go.opentelemetry.io/collector/extension/zpagesextension => ../../extension/zpagesextension

replace go.opentelemetry.io/collector/processor/batchprocessor => ../../processor/batchprocessor
2 changes: 0 additions & 2 deletions exporter/otlpexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,4 @@ replace go.opentelemetry.io/collector/semconv => ../../semconv

replace go.opentelemetry.io/collector/extension/zpagesextension => ../../extension/zpagesextension

replace go.opentelemetry.io/collector/processor/batchprocessor => ../../processor/batchprocessor

replace go.opentelemetry.io/collector/consumer => ../../consumer
2 changes: 0 additions & 2 deletions exporter/otlphttpexporter/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,4 @@ replace go.opentelemetry.io/collector/semconv => ../../semconv

replace go.opentelemetry.io/collector/extension/zpagesextension => ../../extension/zpagesextension

replace go.opentelemetry.io/collector/processor/batchprocessor => ../../processor/batchprocessor

replace go.opentelemetry.io/collector/consumer => ../../consumer
2 changes: 0 additions & 2 deletions extension/ballastextension/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,4 @@ replace go.opentelemetry.io/collector/semconv => ../../semconv

replace go.opentelemetry.io/collector/extension/zpagesextension => ../zpagesextension

replace go.opentelemetry.io/collector/processor/batchprocessor => ../../processor/batchprocessor

replace go.opentelemetry.io/collector/consumer => ../../consumer
2 changes: 0 additions & 2 deletions extension/zpagesextension/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,4 @@ replace go.opentelemetry.io/collector/pdata => ../../pdata

replace go.opentelemetry.io/collector/semconv => ../../semconv

replace go.opentelemetry.io/collector/processor/batchprocessor => ../../processor/batchprocessor

replace go.opentelemetry.io/collector/consumer => ../../consumer
3 changes: 0 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ require (
go.opentelemetry.io/collector/extension/zpagesextension v0.67.0
go.opentelemetry.io/collector/featuregate v0.67.0
go.opentelemetry.io/collector/pdata v1.0.0-rc1
go.opentelemetry.io/collector/processor/batchprocessor v0.67.0
go.opentelemetry.io/collector/semconv v0.67.0
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.4
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.36.4
Expand Down Expand Up @@ -96,8 +95,6 @@ replace go.opentelemetry.io/collector/pdata => ./pdata

replace go.opentelemetry.io/collector/extension/zpagesextension => ./extension/zpagesextension

replace go.opentelemetry.io/collector/processor/batchprocessor => ./processor/batchprocessor

retract (
v0.57.1 // Release failed, use v0.57.2
v0.57.0 // Release failed, use v0.57.2
Expand Down
11 changes: 10 additions & 1 deletion processor/batchprocessor/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,16 @@ const (
triggerBatchSize
)

func init() {
// TODO: Find a way to handle the error.
_ = view.Register(metricViews()...)
}

// Deprecated: [v0.68.0] will be removed soon, views are initialize in init.
var MetricViews = metricViews

// MetricViews returns the metrics views related to batching
func MetricViews() []*view.View {
func metricViews() []*view.View {
processorTagKeys := []tag.Key{processorTagKey}

countBatchSizeTriggerSendView := &view.View{
Expand Down Expand Up @@ -101,6 +109,7 @@ func MetricViews() []*view.View {
}
}

// Deprecated: [v0.68.0] will be removed soon, views are initialize in the service for the moment until a generic solution is provided.
func OtelMetricsViews() ([]otelview.View, error) {
var views []otelview.View
var err error
Expand Down
11 changes: 7 additions & 4 deletions processor/batchprocessor/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,14 @@ func TestBatchProcessorMetrics(t *testing.T) {
"batch_send_size",
"batch_send_size_bytes",
}
views := MetricViews()
views := metricViews()
for i, viewName := range viewNames {
assert.Equal(t, "processor/batch/"+viewName, views[i].Name)
}
}

type testTelemetry struct {
meter view.Meter
promHandler http.Handler
useOtel bool
meterProvider *sdkmetric.MeterProvider
Expand Down Expand Up @@ -89,11 +90,13 @@ func telemetryTest(t *testing.T, testFunc func(t *testing.T, tel testTelemetry,
}

func setupTelemetry(t *testing.T, useOtel bool) testTelemetry {
views := MetricViews()
// Unregister the views first since they are registered by the init, this way we reset them.
views := metricViews()
view.Unregister(views...)
require.NoError(t, view.Register(views...))
t.Cleanup(func() { view.Unregister(views...) })

telemetry := testTelemetry{
meter: view.NewMeter(),
useOtel: useOtel,
}

Expand Down Expand Up @@ -137,7 +140,7 @@ func (tt *testTelemetry) NewProcessorCreateSettings() processor.CreateSettings {
}

func (tt *testTelemetry) assertMetrics(t *testing.T, expected expectedMetrics) {
for _, v := range MetricViews() {
for _, v := range metricViews() {
// Forces a flush for the opencensus view data.
_, _ = view.RetrieveData(v.Name)
}
Expand Down
2 changes: 0 additions & 2 deletions processor/memorylimiterprocessor/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,6 @@ replace go.opentelemetry.io/collector/pdata => ../../pdata

replace go.opentelemetry.io/collector/semconv => ../../semconv

replace go.opentelemetry.io/collector/processor/batchprocessor => ../batchprocessor

replace go.opentelemetry.io/collector/extension/zpagesextension => ../../extension/zpagesextension

replace go.opentelemetry.io/collector/consumer => ../../consumer
2 changes: 0 additions & 2 deletions receiver/otlpreceiver/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,4 @@ replace go.opentelemetry.io/collector/semconv => ../../semconv

replace go.opentelemetry.io/collector/extension/zpagesextension => ../../extension/zpagesextension

replace go.opentelemetry.io/collector/processor/batchprocessor => ../../processor/batchprocessor

replace go.opentelemetry.io/collector/consumer => ../../consumer
47 changes: 36 additions & 11 deletions service/telemetry.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import (
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/propagation"
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
"go.opentelemetry.io/otel/sdk/metric/aggregation"
otelview "go.opentelemetry.io/otel/sdk/metric/view"
"go.opentelemetry.io/otel/sdk/resource"
"go.uber.org/zap"
Expand All @@ -44,7 +45,7 @@ import (
"go.opentelemetry.io/collector/config/configtelemetry"
"go.opentelemetry.io/collector/featuregate"
"go.opentelemetry.io/collector/internal/obsreportconfig"
"go.opentelemetry.io/collector/processor/batchprocessor"
"go.opentelemetry.io/collector/obsreport"
semconv "go.opentelemetry.io/collector/semconv/v1.5.0"
"go.opentelemetry.io/collector/service/telemetry"
)
Expand Down Expand Up @@ -190,12 +191,8 @@ func (tel *telemetryInitializer) initOpenCensus(cfg telemetry.Config, telAttrs m
tel.ocRegistry = ocmetric.NewRegistry()
metricproducer.GlobalManager().AddProducer(tel.ocRegistry)

var views []*view.View
views = append(views, batchprocessor.MetricViews()...)
views = append(views, obsreportconfig.AllViews(cfg.Metrics.Level)...)

tel.views = views
if err := view.Register(views...); err != nil {
tel.views = obsreportconfig.AllViews(cfg.Metrics.Level)
if err := view.Register(tel.views...); err != nil {
return nil, err
}

Expand Down Expand Up @@ -229,13 +226,10 @@ func (tel *telemetryInitializer) initOpenTelemetry(attrs map[string]string, prom
resAttrs = append(resAttrs, attribute.String(k, v))
}

var views []otelview.View

batchViews, err := batchprocessor.OtelMetricsViews()
views, err := batchViews()
if err != nil {
return fmt.Errorf("error creating otel metrics views for batch processor: %w", err)
}
views = append(views, batchViews...)

res, err := resource.New(context.Background(), resource.WithAttributes(resAttrs...))
if err != nil {
Expand Down Expand Up @@ -294,3 +288,34 @@ func textMapPropagatorFromConfig(props []string) (propagation.TextMapPropagator,
}
return propagation.NewCompositeTextMapPropagator(textMapPropagators...), nil
}

func batchViews() ([]otelview.View, error) {
var views []otelview.View
var err error

v, err := otelview.New(
otelview.MatchInstrumentName(obsreport.BuildProcessorCustomMetricName("batch", "batch_send_size")),
otelview.WithSetAggregation(aggregation.ExplicitBucketHistogram{
Boundaries: []float64{10, 25, 50, 75, 100, 250, 500, 750, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 20000, 30000, 50000, 100000},
}),
)
if err != nil {
return nil, err
}
views = append(views, v)

v, err = otelview.New(
otelview.MatchInstrumentName(obsreport.BuildProcessorCustomMetricName("batch", "batch_send_size_bytes")),
otelview.WithSetAggregation(aggregation.ExplicitBucketHistogram{
Boundaries: []float64{10, 25, 50, 75, 100, 250, 500, 750, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 20000, 30000, 50000,
100_000, 200_000, 300_000, 400_000, 500_000, 600_000, 700_000, 800_000, 900_000,
1000_000, 2000_000, 3000_000, 4000_000, 5000_000, 6000_000, 7000_000, 8000_000, 9000_000},
}),
)
if err != nil {
return nil, err
}
views = append(views, v)

return views, nil
}