Circuit Breaker Backend issue


I am hoping to implement a circuit-breaker for some of my backends. I have the rule:

traefik.backend.circuitbreaker.expression=ResponseCodeRatio(500, 600, 500, 600) > 0.20

However, when a single downstream service in the backend goes down, the entire backend goes down. I don't want this behaviour, i would like just the service instance to be taken out of the backend pool.

Is this possible?


Hi @mojo, welcome here !

Could you share a bit more of your configuration so we can check it please?

Hi, thanks for your response. I am using Traefik for Service Fabric. My configuration is

<Extension Name="Traefik">
          <Labels xmlns="">
            <Label Key="traefik.frontend.rule">PathPrefixStrip: /circuit-breaker</Label>
            <Label Key="traefik.backend.circuitbreaker.expression">ResponseCodeRatio(500, 600, 500, 600) > 0.20</Label>
            <Label Key="traefik.frontend.headers.customFrameOptionsValue">DENY</Label>
            <Label Key="traefik.enable">true</Label>
            <Label Key="traefik.frontend.passHostHeader">true</Label>

This results in the following output in Traefik:

Once a circuit breaker is applied - a fault is created in a single service, the entire backend is removed. This seems odd for circuit breaking behaviour, i would expect the service instance to be removed not the entire backend.

Any help would be much appreciated.