Skip to content
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

es_dead_letter_index #748

Open
ltflb-bgdi opened this issue Jul 24, 2024 · 1 comment
Open

es_dead_letter_index #748

ltflb-bgdi opened this issue Jul 24, 2024 · 1 comment
Assignees

Comments

@ltflb-bgdi
Copy link

Describe the enhancement:

The new output option es_deadletter_index allows to send events which returned from elastic with an error code to a dedicated deadletter index/datastream. This works very well to analyse issues like mapping errors etc.

Currently it seems that failing messages are forwarded to the deadletter index regardless of the error type.
IMO it would make sense to improve this behavior and not forward messages with certain types of errors.
See the example below.

Describe a specific use case for the enhancement or feature:

Our deadletter index contains events which failed due to read timeouts.

ConnectionTimeout caused by - ReadTimeoutError(HTTPSConnectionPool(host='acme.es.eu-central-1.aws.cloud.es.io', port=443): Read timed out. (read timeout=30))

These errors are caused by cloudfront log congestion during some peak hours or when redriving events from the continuing dealetter que. IMO these events should not be sent to the deadletter queue, since they would be kind lost (unparsed) and cause even more congestion. These cases should be still handled by the continuing queue and finally the continuing dlq.

@zmoog
Copy link
Contributor

zmoog commented Oct 8, 2024

@ltflb-bgdi, we release version v1.18.0 that contains one change that should improve this scenario.

Starting from v1.18.0, the ES output will not forward retryable errors to the dead letter index (DLI).

For example, if the Elasticsearch client returns an error that does not contain the HTTP status code (probably a connection error) or the status code is 429, the ES output will skip the DLI.

@zmoog zmoog self-assigned this Oct 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants