EIDA / mediatorws

EIDA NG Mediator/Federator web services
GNU General Public License v3.0
6 stars 6 forks source link

Per client retry-budget #89

Closed damb closed 4 years ago

damb commented 4 years ago

Drop requests to data centers (DC) not available.

Implement a endpoint request filtering algorithm based on a per client retry-budget. The algorithm is described within Site Reliability Engineering (Beyer et al.). The retry budget is based on a distributed HTTP response code time series (Redis). An error ratio is computed by means of an rolling window approach where status codes are constantly updated and periodically removed based on a configurable TTL.

Currently only endpoint HTTP status codes 500 and 503 are considered as errors (in future error status codes might be configurable, too).

Features and Changes:

Note: This PR implements a per client retry-budget, only. At the time being a per (endpoint-)request retry-budget is not used.

damb commented 4 years ago

Unittests with respect to the response code stats are still missing.