diff --git a/exporters/trace/jaeger/jaeger.go b/exporters/trace/jaeger/jaeger.go index 453bf536035..05a29e2d0e0 100644 --- a/exporters/trace/jaeger/jaeger.go +++ b/exporters/trace/jaeger/jaeger.go @@ -42,6 +42,9 @@ type options struct { // BufferMaxCount defines the total number of traces that can be buffered in memory BufferMaxCount int + // BatchMaxCount defines the maximum number of spans sent in one batch + BatchMaxCount int + Config *sdktrace.Config // RegisterGlobal is set to true if the trace provider of the new pipeline should be @@ -65,6 +68,13 @@ func WithBufferMaxCount(bufferMaxCount int) Option { } } +// WithBatchMaxCount defines the maximum number of spans in one batch +func WithBatchMaxCount(batchMaxCount int) Option { + return func(o *options) { + o.BatchMaxCount = batchMaxCount + } +} + // WithSDK sets the SDK config for the exporter pipeline. func WithSDK(config *sdktrace.Config) Option { return func(o *options) { @@ -134,6 +144,11 @@ func NewRawExporter(endpointOption EndpointOption, opts ...Option) (*Exporter, e bundler.BufferedByteLimit = o.BufferMaxCount } + // The default value bundler uses is 10, increase to send larger batches + if o.BatchMaxCount != 0 { + bundler.BundleCountThreshold = o.BatchMaxCount + } + e.bundler = bundler return e, nil }