Quality of ServiceΒΆ

Ocelot supports one QoS capability at the current time. You can set on a per Route basis if you want to use a circuit breaker when making requests to a downstream service. This uses an awesome .NET library called Polly check them out here.

The first thing you need to do if you want to use the administration API is bring in the relevant NuGet package..

Install-Package Ocelot.Provider.Polly

Then in your ConfigureServices method

public virtual void ConfigureServices(IServiceCollection services)

Then add the following section to a Route configuration.

"QoSOptions": {

You must set a number greater than 0 against ExceptionsAllowedBeforeBreaking for this rule to be implemented. Duration of break means the circuit breaker will stay open for 1 second after it is tripped. TimeoutValue means if a request takes more than 5 seconds it will automatically be timed out.

You can set the TimeoutValue in isolation of the ExceptionsAllowedBeforeBreaking and DurationOfBreak options.

"QoSOptions": {

There is no point setting the other two in isolation as they affect each other :)

If you do not add a QoS section QoS will not be used however Ocelot will default to a 90 second timeout on all downstream requests. If someone needs this to be configurable open an issue.