Unable to setup "per service" circuit breaking configuration

Below is picture of my simple setup on k8s environment, I need to configure service1 -> failureaccrual-consecutive and service2 -> failureaccrual-none.

using static client config
I used static config in my client but wasn’t able to apply failure accrual settings,

routers:
    - protocol: http
      label: outgoing
      dtab: |
        /srv        => /#/io.l5d.k8s/default/http;
        /host       => /srv;
        /svc        => /host;
        /host/world => /srv/world-v1;
      client:
        kind: io.l5d.static
        configs:
        - prefix: /#/io.l5d.k8s/default/http
          loadBalancer:
            kind: ewma
        - prefix: /#/io.l5d.k8s/default/http/service1
          failureAccrual:
            kind: io.l5d.consecutiveFailures
            failures: 3
            backoff:
              kind: constant
              ms: 120000
        - prefix: /#/io.l5d.k8s/default/http/service2
          failureAccrual:
            kind: none

Hi @zshaik! Are you using transformers (such as the daemonset transformer)? If so, the client prefix you want to match on actually includes a transformer prefix as well. Usually this is something like /%/io.l5d.k8s.daemonset/default/http/l5d/#/io.l5d.k8s/default/http/service1. You can find the full client name by either clicking on the abbreviated client name in the linkerd admin dashboard (it will expand to the full name) or by looking at the /admin/metrics.json stats scoped under /rt/outgoing/client.

2 Likes

@Alex Perfect! I am now able to configure it per service! :eyeglasses:
Thanks Alex.

1 Like