The Destination Profile API---provided by linkerd2-proxy-api v0.1.3-- allows the proxy to discovery route information for an HTTP service. As the proxy processes outbound requests, in addition to doing address resolution through the Destination service, the proxy may also discover profiles including route patterns and labels. When the proxy has route information for a destination, it applies the RequestMatch for each route to find the first-matching route. The route's labels are used to expose `route_`-prefixed HTTP metrics (and each label is prefixed with `rt_`). Furthermore, if a route includes ResponseMatches, they are used to perform classification (i.e. for the `response_total` and `route_response_total` metrics). A new `proxy::http::profiles` module implements a router that consumes routes from an infinite stream of route lists. The `app::profiles` module implements a client that continually and repeatedly tries to establish a watch for the destination's routes (with some backoff). Route discovery does not _block_ routing; that is, the first request to a destination will likely be processed before the route information is retrieved from the controller (i.e. on the default route). Route configuration is applied in a best-effort fashion. |
||
---|---|---|
.. | ||
support | ||
discovery.rs | ||
shutdown.rs | ||
telemetry.rs | ||
transparency.rs |