elastic / elastic/logstash

Improve pipeline reload feature.

Open
#16,104 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
14.9k
Forks
3.5k
Avg merge
1d 4h
Merged PRs (30d)
88

Description

### Issue description
There are number of situations which can prevent pipeline(s) from reloading:
- general cases where plugins do not have an ability to shutdown or abort the batch
- depending on which plugin is being used, users may not get a same expectation. Some plugins, for example `http-output` aborts the batch and reloads when using PQ but not a case when using memory queue.
- some plugins internally handles the abort batch. For example, [`http-output` raises `PluginInternalQueueLeftoverError`](https://github.com/logstash-plugins/logstash-output-http/blob/main/lib/logstash/outputs/http.rb#L183C13-L183C45) when received shutdown and has inflight events. Or, `es-output` has its own way of handling (`raise org.logstash.execution.AbortedBatchException.new if abort_batch_present?`) after LS 8.8+ versions.
- specific cases:
- such as https://github.com/elastic/logstash/issues/16101

### Acceptance Criteria
We need to address
- pipeline reload standardization all across the plugins.
- test pipeline-to-pipeline communications

Contributor guide

Open the contributing guide

Research direction

Start by reading the linked http-output shutdown handling and the es-output abort behavior described in the issue, then review the specific case in issue 16101. The work is done when pipeline reload behavior is standardized across plugins and pipeline-to-pipeline communication is tested.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
data-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.