refactor: O11Y-630 - Sampling and conditional logic for LOGS moved from exporters to processors #288
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
To avoid buffering logs that should be discarded due to the sampling config, the stop sampling logs in the exporter to do it in the processors.
"Conditional logic" refers to the logic that was inside the ConditionLogRecordExporter (Used to allow different filtering rules for crashes vs normal logs)
How did you test this change?
Unit tests
Are there any deployment considerations?
No
Note
Replaces exporter-based log sampling and crash/normal filtering with processor-based equivalents and updates the log pipeline and tests accordingly.
ConditionalLogRecordProcessorto filter crash (io.opentelemetry.crash) vs normal logs.SamplingLogProcessorto apply sampling before downstream processing.ConditionalLogRecordExporterandSamplingLogExporter.InstrumentationManager.createLoggerProcessorto chainSamplingLogProcessor→ConditionalLogRecordProcessor→RoutingLogRecordProcessor, and simplifiescreateLogExporterto only build a composite in debug mode.ConditionalLogRecordProcessorandSamplingLogProcessor.Written by Cursor Bugbot for commit 2067fb3. This will update automatically on new commits. Configure here.