Fluent Bit has an Engine that helps to coordinate the data ingestion from input plugins and call the Scheduler to decide when is time to flush the data through one or multiple output plugins. The Scheduler flush new data every a fixed time of seconds and Schedule retries when asked.
Once an output plugin gets call to flush some data, after processing that data it can notify the Engine three possible return statuses:
If the return status was OK, it means it was successfully able to process and flush the data, if it returned an Error status, means that an unrecoverable error happened and the engine should not try to flush that data again. If a Retry was requested, the Engine will ask the Scheduler to retry to flush that data, the Scheduler will decide how many seconds to wait before that happen.
The Scheduler provides a simple configuration option called Retry_Limit which can be set independently on each output section. This option allows to disable retries or impose a limit to try N times and then discard the data after reaching that limit:
Integer value to set the maximum number of retries allowed. N must be >= 1 (default: 1)
When Retry_Limit is set to False, means that there is not limit for the number of retries that the Scheduler can do.
When Retry_Limit is set to no_retries, means that reries are disabled and Scheduler would not try to send data to destination if it failed first time.
The following example configure two outputs where the HTTP plugin have an unlimited number of retries and the Elasticsearch plugin have a limit of 5 times:
[OUTPUT]Name httpHost 192.168.5.6Port 8080Retry_Limit False[OUTPUT]Name esHost 192.168.5.20Port 9200Logstash_Format OnRetry_Limit 5