Skip to content

Commit 6c2697c

Browse files
[exporterhelper] Rename Timeout/QueueSettings to Config (#11132)
#### Description This PR renames `TimeoutSettings` and `QueueSettings` (as well as the corresponding `NewDefault` functions) to `TimeoutConfig` and `QueueConfig`, for naming consistency reasons. The previous struct/function names are kept as deprecated aliases of the new ones for now. #### Link to tracking issue Updates #6767 (edit: reworded by @mx-psi) #### Testing No behavior changes were made, so no additional testing should be necessary. The references to the aforementioned structs/functions in existing tests have been renamed as well. This means the deprecated function aliases are not tested, lowering the coverage a bit. #### Documentation The new functions are documented identically to the previous ones.
1 parent 8f3ca8a commit 6c2697c

25 files changed

+119
-83
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Use this changelog template to create an entry for release notes.
2+
3+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
4+
change_type: 'deprecation'
5+
6+
# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver)
7+
component: exporterhelper
8+
9+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
10+
note: "Deprecate TimeoutSettings/QueueSettings in favor of TimeoutConfig/QueueConfig."
11+
12+
# One or more tracking issues or pull requests related to the change
13+
issues: [6767]
14+
15+
# Optional: The change log or logs in which this entry should be included.
16+
# e.g. '[user]' or '[user, api]'
17+
# Include 'user' if the change is relevant to end users.
18+
# Include 'api' if there is a change to a library API.
19+
# Default: '[user]'
20+
change_logs: [api]

exporter/debugexporter/factory.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func createTracesExporter(ctx context.Context, set exporter.Settings, config com
5454
return exporterhelper.NewTracesExporter(ctx, set, config,
5555
debugExporter.pushTraces,
5656
exporterhelper.WithCapabilities(consumer.Capabilities{MutatesData: false}),
57-
exporterhelper.WithTimeout(exporterhelper.TimeoutSettings{Timeout: 0}),
57+
exporterhelper.WithTimeout(exporterhelper.TimeoutConfig{Timeout: 0}),
5858
exporterhelper.WithShutdown(otlptext.LoggerSync(exporterLogger)),
5959
)
6060
}
@@ -66,7 +66,7 @@ func createMetricsExporter(ctx context.Context, set exporter.Settings, config co
6666
return exporterhelper.NewMetricsExporter(ctx, set, config,
6767
debugExporter.pushMetrics,
6868
exporterhelper.WithCapabilities(consumer.Capabilities{MutatesData: false}),
69-
exporterhelper.WithTimeout(exporterhelper.TimeoutSettings{Timeout: 0}),
69+
exporterhelper.WithTimeout(exporterhelper.TimeoutConfig{Timeout: 0}),
7070
exporterhelper.WithShutdown(otlptext.LoggerSync(exporterLogger)),
7171
)
7272
}
@@ -78,7 +78,7 @@ func createLogsExporter(ctx context.Context, set exporter.Settings, config compo
7878
return exporterhelper.NewLogsExporter(ctx, set, config,
7979
debugExporter.pushLogs,
8080
exporterhelper.WithCapabilities(consumer.Capabilities{MutatesData: false}),
81-
exporterhelper.WithTimeout(exporterhelper.TimeoutSettings{Timeout: 0}),
81+
exporterhelper.WithTimeout(exporterhelper.TimeoutConfig{Timeout: 0}),
8282
exporterhelper.WithShutdown(otlptext.LoggerSync(exporterLogger)),
8383
)
8484
}

exporter/exporterhelper/batch_sender_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ func TestBatchSender_ShutdownDeadlock(t *testing.T) {
575575
func TestBatchSenderWithTimeout(t *testing.T) {
576576
bCfg := exporterbatcher.NewDefaultConfig()
577577
bCfg.MinSizeItems = 10
578-
tCfg := NewDefaultTimeoutSettings()
578+
tCfg := NewDefaultTimeoutConfig()
579579
tCfg.Timeout = 50 * time.Millisecond
580580
be, err := newBaseExporter(defaultSettings, defaultDataType, newNoopObsrepSender,
581581
WithBatcher(bCfg, WithRequestBatchFuncs(fakeBatchMergeFunc, fakeBatchMergeSplitFunc)),

exporter/exporterhelper/common.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ func WithShutdown(shutdown component.ShutdownFunc) Option {
6464
}
6565
}
6666

67-
// WithTimeout overrides the default TimeoutSettings for an exporter.
68-
// The default TimeoutSettings is 5 seconds.
69-
func WithTimeout(timeoutSettings TimeoutSettings) Option {
67+
// WithTimeout overrides the default TimeoutConfig for an exporter.
68+
// The default TimeoutConfig is 5 seconds.
69+
func WithTimeout(timeoutConfig TimeoutConfig) Option {
7070
return func(o *baseExporter) error {
71-
o.timeoutSender.cfg = timeoutSettings
71+
o.timeoutSender.cfg = timeoutConfig
7272
return nil
7373
}
7474
}
@@ -86,10 +86,10 @@ func WithRetry(config configretry.BackOffConfig) Option {
8686
}
8787
}
8888

89-
// WithQueue overrides the default QueueSettings for an exporter.
90-
// The default QueueSettings is to disable queueing.
89+
// WithQueue overrides the default QueueConfig for an exporter.
90+
// The default QueueConfig is to disable queueing.
9191
// This option cannot be used with the new exporter helpers New[Traces|Metrics|Logs]RequestExporter.
92-
func WithQueue(config QueueSettings) Option {
92+
func WithQueue(config QueueConfig) Option {
9393
return func(o *baseExporter) error {
9494
if o.marshaler == nil || o.unmarshaler == nil {
9595
return fmt.Errorf("WithQueue option is not available for the new request exporters, use WithRequestQueue instead")
@@ -252,7 +252,7 @@ func newBaseExporter(set exporter.Settings, signal component.DataType, osf obsre
252252
queueSender: &baseRequestSender{},
253253
obsrepSender: osf(obsReport),
254254
retrySender: &baseRequestSender{},
255-
timeoutSender: &timeoutSender{cfg: NewDefaultTimeoutSettings()},
255+
timeoutSender: &timeoutSender{cfg: NewDefaultTimeoutConfig()},
256256

257257
set: set,
258258
obsrep: obsReport,

exporter/exporterhelper/common_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ func TestBaseExporterWithOptions(t *testing.T) {
5050
defaultSettings, defaultDataType, newNoopObsrepSender,
5151
WithStart(func(context.Context, component.Host) error { return want }),
5252
WithShutdown(func(context.Context) error { return want }),
53-
WithTimeout(NewDefaultTimeoutSettings()),
53+
WithTimeout(NewDefaultTimeoutConfig()),
5454
)
5555
require.NoError(t, err)
5656
require.Equal(t, want, be.Start(context.Background(), componenttest.NewNopHost()))
@@ -73,7 +73,7 @@ func TestQueueOptionsWithRequestExporter(t *testing.T) {
7373
require.Nil(t, bs.marshaler)
7474
require.Nil(t, bs.unmarshaler)
7575
_, err = newBaseExporter(exportertest.NewNopSettings(), defaultDataType, newNoopObsrepSender,
76-
WithRetry(configretry.NewDefaultBackOffConfig()), WithQueue(NewDefaultQueueSettings()))
76+
WithRetry(configretry.NewDefaultBackOffConfig()), WithQueue(NewDefaultQueueConfig()))
7777
require.Error(t, err)
7878

7979
_, err = newBaseExporter(exportertest.NewNopSettings(), defaultDataType, newNoopObsrepSender,

exporter/exporterhelper/logs_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ func TestLogsRequestExporter_Default_ExportError(t *testing.T) {
156156
}
157157

158158
func TestLogsExporter_WithPersistentQueue(t *testing.T) {
159-
qCfg := NewDefaultQueueSettings()
159+
qCfg := NewDefaultQueueConfig()
160160
storageID := component.MustNewIDWithName("file_storage", "storage")
161161
qCfg.StorageID = &storageID
162162
rCfg := configretry.NewDefaultBackOffConfig()
@@ -253,7 +253,7 @@ func TestLogsExporter_WithRecordEnqueueFailedMetrics(t *testing.T) {
253253
t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) })
254254

255255
rCfg := configretry.NewDefaultBackOffConfig()
256-
qCfg := NewDefaultQueueSettings()
256+
qCfg := NewDefaultQueueConfig()
257257
qCfg.NumConsumers = 1
258258
qCfg.QueueSize = 2
259259
wantErr := errors.New("some-error")

exporter/exporterhelper/metrics_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ func TestMetricsRequestExporter_Default_ExportError(t *testing.T) {
157157
}
158158

159159
func TestMetricsExporter_WithPersistentQueue(t *testing.T) {
160-
qCfg := NewDefaultQueueSettings()
160+
qCfg := NewDefaultQueueConfig()
161161
storageID := component.MustNewIDWithName("file_storage", "storage")
162162
qCfg.StorageID = &storageID
163163
rCfg := configretry.NewDefaultBackOffConfig()
@@ -255,7 +255,7 @@ func TestMetricsExporter_WithRecordEnqueueFailedMetrics(t *testing.T) {
255255
t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) })
256256

257257
rCfg := configretry.NewDefaultBackOffConfig()
258-
qCfg := NewDefaultQueueSettings()
258+
qCfg := NewDefaultQueueConfig()
259259
qCfg.NumConsumers = 1
260260
qCfg.QueueSize = 2
261261
wantErr := errors.New("some-error")

exporter/exporterhelper/queue_sender.go

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@ import (
2222

2323
const defaultQueueSize = 1000
2424

25-
// QueueSettings defines configuration for queueing batches before sending to the consumerSender.
26-
type QueueSettings struct {
25+
// Deprecated: [v0.110.0] Use QueueConfig instead.
26+
type QueueSettings = QueueConfig
27+
28+
// QueueConfig defines configuration for queueing batches before sending to the consumerSender.
29+
type QueueConfig struct {
2730
// Enabled indicates whether to not enqueue batches before sending to the consumerSender.
2831
Enabled bool `mapstructure:"enabled"`
2932
// NumConsumers is the number of consumers from the queue. Defaults to 10.
@@ -37,9 +40,14 @@ type QueueSettings struct {
3740
StorageID *component.ID `mapstructure:"storage"`
3841
}
3942

40-
// NewDefaultQueueSettings returns the default settings for QueueSettings.
43+
// Deprecated: [v0.110.0] Use NewDefaultQueueConfig instead.
4144
func NewDefaultQueueSettings() QueueSettings {
42-
return QueueSettings{
45+
return NewDefaultQueueConfig()
46+
}
47+
48+
// NewDefaultQueueConfig returns the default config for QueueConfig.
49+
func NewDefaultQueueConfig() QueueConfig {
50+
return QueueConfig{
4351
Enabled: true,
4452
NumConsumers: 10,
4553
// By default, batches are 8192 spans, for a total of up to 8 million spans in the queue
@@ -49,8 +57,8 @@ func NewDefaultQueueSettings() QueueSettings {
4957
}
5058
}
5159

52-
// Validate checks if the QueueSettings configuration is valid
53-
func (qCfg *QueueSettings) Validate() error {
60+
// Validate checks if the QueueConfig configuration is valid
61+
func (qCfg *QueueConfig) Validate() error {
5462
if !qCfg.Enabled {
5563
return nil
5664
}

exporter/exporterhelper/queue_sender_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
)
2727

2828
func TestQueuedRetry_StopWhileWaiting(t *testing.T) {
29-
qCfg := NewDefaultQueueSettings()
29+
qCfg := NewDefaultQueueConfig()
3030
qCfg.NumConsumers = 1
3131
rCfg := configretry.NewDefaultBackOffConfig()
3232
be, err := newBaseExporter(defaultSettings, defaultDataType, newObservabilityConsumerSender,
@@ -60,7 +60,7 @@ func TestQueuedRetry_StopWhileWaiting(t *testing.T) {
6060
}
6161

6262
func TestQueuedRetry_DoNotPreserveCancellation(t *testing.T) {
63-
qCfg := NewDefaultQueueSettings()
63+
qCfg := NewDefaultQueueConfig()
6464
qCfg.NumConsumers = 1
6565
rCfg := configretry.NewDefaultBackOffConfig()
6666
be, err := newBaseExporter(defaultSettings, defaultDataType, newObservabilityConsumerSender,
@@ -89,7 +89,7 @@ func TestQueuedRetry_DoNotPreserveCancellation(t *testing.T) {
8989
}
9090

9191
func TestQueuedRetry_RejectOnFull(t *testing.T) {
92-
qCfg := NewDefaultQueueSettings()
92+
qCfg := NewDefaultQueueConfig()
9393
qCfg.QueueSize = 0
9494
qCfg.NumConsumers = 0
9595
set := exportertest.NewNopSettings()
@@ -119,7 +119,7 @@ func TestQueuedRetryHappyPath(t *testing.T) {
119119
queueOptions: []Option{
120120
withMarshaler(mockRequestMarshaler),
121121
withUnmarshaler(mockRequestUnmarshaler(&mockRequest{})),
122-
WithQueue(QueueSettings{
122+
WithQueue(QueueConfig{
123123
Enabled: true,
124124
QueueSize: 10,
125125
NumConsumers: 1,
@@ -210,7 +210,7 @@ func TestQueuedRetry_QueueMetricsReported(t *testing.T) {
210210
tt, err := componenttest.SetupTelemetry(defaultID)
211211
require.NoError(t, err)
212212

213-
qCfg := NewDefaultQueueSettings()
213+
qCfg := NewDefaultQueueConfig()
214214
qCfg.NumConsumers = 0 // to make every request go straight to the queue
215215
rCfg := configretry.NewDefaultBackOffConfig()
216216
set := exporter.Settings{ID: defaultID, TelemetrySettings: tt.TelemetrySettings(), BuildInfo: component.NewDefaultBuildInfo()}
@@ -248,14 +248,14 @@ func TestNoCancellationContext(t *testing.T) {
248248
assert.True(t, d.IsZero())
249249
}
250250

251-
func TestQueueSettings_Validate(t *testing.T) {
252-
qCfg := NewDefaultQueueSettings()
251+
func TestQueueConfig_Validate(t *testing.T) {
252+
qCfg := NewDefaultQueueConfig()
253253
assert.NoError(t, qCfg.Validate())
254254

255255
qCfg.QueueSize = 0
256256
assert.EqualError(t, qCfg.Validate(), "queue size must be positive")
257257

258-
qCfg = NewDefaultQueueSettings()
258+
qCfg = NewDefaultQueueConfig()
259259
qCfg.NumConsumers = 0
260260

261261
assert.EqualError(t, qCfg.Validate(), "number of queue consumers must be positive")
@@ -276,7 +276,7 @@ func TestQueueRetryWithDisabledQueue(t *testing.T) {
276276
withMarshaler(mockRequestMarshaler),
277277
withUnmarshaler(mockRequestUnmarshaler(&mockRequest{})),
278278
func() Option {
279-
qs := NewDefaultQueueSettings()
279+
qs := NewDefaultQueueConfig()
280280
qs.Enabled = false
281281
return WithQueue(qs)
282282
}(),
@@ -340,7 +340,7 @@ func TestQueuedRetryPersistenceEnabled(t *testing.T) {
340340
require.NoError(t, err)
341341
t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) })
342342

343-
qCfg := NewDefaultQueueSettings()
343+
qCfg := NewDefaultQueueConfig()
344344
storageID := component.MustNewIDWithName("file_storage", "storage")
345345
qCfg.StorageID = &storageID // enable persistence
346346
rCfg := configretry.NewDefaultBackOffConfig()
@@ -366,7 +366,7 @@ func TestQueuedRetryPersistenceEnabledStorageError(t *testing.T) {
366366
require.NoError(t, err)
367367
t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) })
368368

369-
qCfg := NewDefaultQueueSettings()
369+
qCfg := NewDefaultQueueConfig()
370370
storageID := component.MustNewIDWithName("file_storage", "storage")
371371
qCfg.StorageID = &storageID // enable persistence
372372
rCfg := configretry.NewDefaultBackOffConfig()
@@ -385,7 +385,7 @@ func TestQueuedRetryPersistenceEnabledStorageError(t *testing.T) {
385385
}
386386

387387
func TestQueuedRetryPersistentEnabled_NoDataLossOnShutdown(t *testing.T) {
388-
qCfg := NewDefaultQueueSettings()
388+
qCfg := NewDefaultQueueConfig()
389389
qCfg.NumConsumers = 1
390390
storageID := component.MustNewIDWithName("file_storage", "storage")
391391
qCfg.StorageID = &storageID // enable persistence to ensure data is re-queued on shutdown

exporter/exporterhelper/retry_sender_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func mockRequestMarshaler(Request) ([]byte, error) {
3636
}
3737

3838
func TestQueuedRetry_DropOnPermanentError(t *testing.T) {
39-
qCfg := NewDefaultQueueSettings()
39+
qCfg := NewDefaultQueueConfig()
4040
rCfg := configretry.NewDefaultBackOffConfig()
4141
mockR := newMockRequest(2, consumererror.NewPermanent(errors.New("bad data")))
4242
be, err := newBaseExporter(defaultSettings, defaultDataType, newObservabilityConsumerSender,
@@ -60,7 +60,7 @@ func TestQueuedRetry_DropOnPermanentError(t *testing.T) {
6060
}
6161

6262
func TestQueuedRetry_DropOnNoRetry(t *testing.T) {
63-
qCfg := NewDefaultQueueSettings()
63+
qCfg := NewDefaultQueueConfig()
6464
rCfg := configretry.NewDefaultBackOffConfig()
6565
rCfg.Enabled = false
6666
be, err := newBaseExporter(defaultSettings, defaultDataType, newObservabilityConsumerSender, withMarshaler(mockRequestMarshaler),
@@ -86,7 +86,7 @@ func TestQueuedRetry_DropOnNoRetry(t *testing.T) {
8686
}
8787

8888
func TestQueuedRetry_OnError(t *testing.T) {
89-
qCfg := NewDefaultQueueSettings()
89+
qCfg := NewDefaultQueueConfig()
9090
qCfg.NumConsumers = 1
9191
rCfg := configretry.NewDefaultBackOffConfig()
9292
rCfg.InitialInterval = 0
@@ -115,7 +115,7 @@ func TestQueuedRetry_OnError(t *testing.T) {
115115
}
116116

117117
func TestQueuedRetry_MaxElapsedTime(t *testing.T) {
118-
qCfg := NewDefaultQueueSettings()
118+
qCfg := NewDefaultQueueConfig()
119119
qCfg.NumConsumers = 1
120120
rCfg := configretry.NewDefaultBackOffConfig()
121121
rCfg.InitialInterval = time.Millisecond
@@ -164,7 +164,7 @@ func (e wrappedError) Unwrap() error {
164164
}
165165

166166
func TestQueuedRetry_ThrottleError(t *testing.T) {
167-
qCfg := NewDefaultQueueSettings()
167+
qCfg := NewDefaultQueueConfig()
168168
qCfg.NumConsumers = 1
169169
rCfg := configretry.NewDefaultBackOffConfig()
170170
rCfg.InitialInterval = 10 * time.Millisecond
@@ -197,7 +197,7 @@ func TestQueuedRetry_ThrottleError(t *testing.T) {
197197
}
198198

199199
func TestQueuedRetry_RetryOnError(t *testing.T) {
200-
qCfg := NewDefaultQueueSettings()
200+
qCfg := NewDefaultQueueConfig()
201201
qCfg.NumConsumers = 1
202202
qCfg.QueueSize = 1
203203
rCfg := configretry.NewDefaultBackOffConfig()

0 commit comments

Comments
 (0)