Add BatchSpanProcessor.create(SpanExporter) to match SimpleSpanProcessor#8564
Conversation
|
|
|
|
/easycla |
`SimpleSpanProcessor` exposes both `create(SpanExporter)` and `builder(SpanExporter)`, but `BatchSpanProcessor` only exposed `builder(SpanExporter)`. This asymmetry is an easy trap: since `SimpleSpanProcessor.create(exporter)` compiles, it's natural to assume `BatchSpanProcessor.create(exporter)` does too. Add a `create(SpanExporter)` factory to `BatchSpanProcessor` returning a default-configured processor (equivalent to `builder(exporter).build()`), mirroring `SimpleSpanProcessor`. Purely additive and backward-compatible. Fixes open-telemetry#8561
32c0d45 to
4e459b3
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8564 +/- ##
=========================================
Coverage 90.96% 90.96%
- Complexity 10207 10209 +2
=========================================
Files 1013 1013
Lines 27160 27162 +2
Branches 3182 3182
=========================================
+ Hits 24706 24709 +3
Misses 1730 1730
+ Partials 724 723 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
jkwatson
left a comment
There was a problem hiding this comment.
I think this is a good addition to make things consistent. I'll let @jack-berg weigh in as well, of course.
|
Thank you for your contribution @jimbobbennett! 🎉 We would like to hear from you about your experience contributing to OpenTelemetry by taking a few minutes to fill out this survey. |
What
Adds a
BatchSpanProcessor.create(SpanExporter)convenience factory returning a default-configured processor (equivalent tobuilder(exporter).build()), mirroring the existingSimpleSpanProcessor.create(SpanExporter).Why
SimpleSpanProcessorexposes bothcreate(SpanExporter)andbuilder(SpanExporter), butBatchSpanProcessoronly exposedbuilder(SpanExporter). SinceSimpleSpanProcessor.create(exporter)compiles, it's natural to assumeBatchSpanProcessor.create(exporter)does too — but it fails withcannot find symbol: method create(SpanExporter). This is purely additive and backward-compatible; the builder stays for configuration.Fixes #8561
Details
create(SpanExporter)static factory with@since 1.64.0Javadoc.SimpleSpanProcessor.createDefaults()andcreateNull().docs/apidiffs/current_vs_latest/opentelemetry-sdk-trace.txt.