diff --git a/exporter/exporterhelper/queue_sender.go b/exporter/exporterhelper/queue_sender.go index 506ac302561..b77412552bc 100644 --- a/exporter/exporterhelper/queue_sender.go +++ b/exporter/exporterhelper/queue_sender.go @@ -59,6 +59,10 @@ func (qCfg *QueueSettings) Validate() error { return errors.New("queue size must be positive") } + if qCfg.NumConsumers <= 0 { + return errors.New("number of queue consumers must be positive") + } + return nil } diff --git a/exporter/exporterhelper/queue_sender_test.go b/exporter/exporterhelper/queue_sender_test.go index 322282a6972..928fbe1e6bf 100644 --- a/exporter/exporterhelper/queue_sender_test.go +++ b/exporter/exporterhelper/queue_sender_test.go @@ -173,6 +173,11 @@ func TestQueueSettings_Validate(t *testing.T) { qCfg.QueueSize = 0 assert.EqualError(t, qCfg.Validate(), "queue size must be positive") + qCfg = NewDefaultQueueSettings() + qCfg.NumConsumers = 0 + + assert.EqualError(t, qCfg.Validate(), "number of queue consumers must be positive") + // Confirm Validate doesn't return error with invalid config when feature is disabled qCfg.Enabled = false assert.NoError(t, qCfg.Validate())