Apply failureAccrual to all external outgoing requests

What do I mean by external outgoing and internal outgoing requests?

  • external outgoing requests: all requests routing through 4140 to outside k8s,
    example: curl -> l5d -> https://google.com
  • internal outgoing requests: all the requests through 4140 to internal k8s services
    example: curl -> l5d -> helloworld-pod

What is my Goal?

  • To disable failure accrual to one of my EXTERNAL OUTGOING requests.
  • To have failure accrual enabled to all other outgoing requests.

What I have:
With linkerd configured to route to external endpoints, below is my config. I have disabled failure accrual

  client:
    kind: io.l5d.static
    configs:
    - prefix: /#/io.l5d.k8s
      failureAccrual:
        kind: io.l5d.successRate
        successRate: 0.9
        requests: 10
        backoff:
          kind: constant
          ms: 600000
      loadBalancer:
        kind: ewma
        maxEffort: 10
        decayTimeMs: 15000

    - prefix: "/$/io.buoyant.rinet/4222/{service}"
      tls:
        commonName: "{service}"
      failureAccrual:
        kind: none

issue
linkerd is enabling circuit breaking on the endpoint with port 4222,
How to view resultant linkerd config? [update: from, /admin/registry.json]

Hmm, that configuration looks correct to me. I used the linkerd-examples failure accrual demo to test that different failure accrual settings can be applied per client prefix. For instance, this config applies a different setting to each of the 3 services in the demo:

  client:
    kind: io.l5d.static
    configs:
    - prefix: /#/io.l5d.fs/service1
      failureAccrual:
        kind: none
    - prefix: /#/io.l5d.fs/service2
      failureAccrual:
        kind: io.l5d.consecutiveFailures
        failures: 5
        backoff:
          kind: constant
          ms: 10000
    - prefix: /#/io.l5d.fs/service3
      failureAccrual:
        kind: io.l5d.successRate
        successRate: 0.9
        requests: 20
        backoff:
          kind: constant
          ms: 10000

How are you verifying that failure accrual is still happening in the 4222 client?

1 Like

Thanks Kevin :slight_smile: , simplified… :+1:

- prefix: "/$/io.buoyant.rinet/"
  failureAccrual:
    kind: none
1 Like