-
Notifications
You must be signed in to change notification settings - Fork 2.1k
[batchprocessor] Modernize the batch processor #13583
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
Changes from all commits
d6de3b9
87dd799
6f85cfc
02e1542
da8eb04
edc0344
442e579
bafd2fa
85f422d
b063f2c
e63a8da
885b159
c9fea4c
eee8fa7
1943bf1
5d9f023
376ff58
a55408f
2d84427
aa1d320
63e3073
6931e59
34d4fda
c1b410c
c7bc393
c74bbbc
51edd99
9c6b772
cb940e8
52a1b63
12df2ac
943cb7a
14d9af7
56f0abe
95c6c60
4564002
fd11c7c
1a2a574
b0f1032
ca17ab4
197c99b
c46f3e8
2174afc
561ce65
42639ae
86f6d44
18b2b59
23445f2
695d1b8
6c049ba
bc9a0b9
420d989
4bd69b3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| change_type: enhancement | ||
|
|
||
| component: processor/batch | ||
|
|
||
| note: batch processor implemented by exporterhelper behind feature flags | ||
|
|
||
| issues: [13582] | ||
|
|
||
| subtext: | | ||
| there are two feature gates: | ||
| - processor.batch.useExporterHelper: use the new implementation | ||
| - processor.batch.propagateErrors: return errors, implies backpressure | ||
| new features are functional however the processor produces exporter metrics, | ||
| see https://github.com/open-telemetry/opentelemetry-collector/issues/14038 | ||
|
|
||
| change_logs: [user] |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -112,3 +112,21 @@ metadata-key values. | |
|
|
||
| The number of batch processors currently in use is exported as the | ||
| `otelcol_processor_batch_metadata_cardinality` metric. | ||
|
|
||
| ## Modernization feature gates | ||
|
|
||
| There are two feature gates currently defined for this component, | ||
| which we are in the processor of modernizing. | ||
|
|
||
| - `processor.batch.useExporterHelper`: Use the new exporterhelper-based QueueBatch logic, the same logic used in all exporters | ||
| - `processor.batch.propagateErrors`: Sets the exporterhelper's `WaitForResult` to true, making it delay in order to return errors from the pipeline | ||
|
|
||
| This mode is currently behind a feature gate and still experimental, | ||
| mainly because metrics emitted by the component are incorrectly named. | ||
| At present, when the exporterhelper mode is used, the component emits | ||
| exporter metrics. See [#14038](https://github.com/open-telemetry/opentelemetry-collector/issues/14038). | ||
|
|
||
| As we move towards finalizing these feature gates, it would be reasonable | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think porting these features back to batch processor is great! One question I have is: How detrimental is/isn't it to be using both of these components at the same time in the same pipeline once this is all complete? The reason I ask is that today we are using both the batch processor and the exporter helper in all of our pipelines, because much of this was set up long ago and we don't rely on the batching capabilities of exporterhelper. As these converge in implementation, I wonder how many people will be left with similar/identical batching capability configured across both by mistake. If this is prone to misuse in any way, I wonder if we can detect it and warn in the logs since exporterhelper and batch processor are well-known core components. |
||
| to enable at least one more feature of the underlying QueueBatch logic, | ||
| the `num_consumers` parameter which is currently set to 1 can be raised | ||
| to enable concurrent-batching behavior. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you configure the feature gates in
metadata.yamlinstead?See https://github.com/open-telemetry/opentelemetry-collector/tree/main/featuregate#with-mdatagen