provide a way to categorize incoming traffic from outside the mesh
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 11.5k
- Forks
- 1.4k
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 53
Description
## Feature Request
Add a way to manually categorize "unmeshed" traffic with a unique name in addition to the source IP address.
### What problem are you trying to solve?
Presently, any traffic that arrives to a pod from outside the service mesh (e.g. from an ingress or other load-balancer) is categorized only by its source IP address, and there is no way to further break down rps/error rates beyond that. Since multiple sources might share an internal load balancer (for example a GCP CloudComposer or DataFlow job talking to an internal LB deployed for a service in a GKE cluster), it would be extremely helpful to see in tap or the linkerd web console what the actual source of the traffic is.
### How should the problem be solved?
If an `l5d-src-override` header is present in an incoming http request, linkerd should categorize that request as coming from the service name specified in that header.
(I'm not sure if there's a good solution for non-http traffic, although I am tempted to recommend going _extremely_ old-school and supporting something like [ident](https://en.wikipedia.org/wiki/Ident_protocol))
### Any alternatives you've considered?
Psychic powers? :)
### How would users interact with this feature?
Ideally this would be totally transparent: manually tagged traffic would look like any other source in the linkerd ui/cli, possibly with some sort of highlight to make clear that it was manually rather than automatically categorized?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how tap and the Linkerd web console currently categorize unmeshed traffic by source IP. Determine where an incoming HTTP request's l5d-src-override header would be handled, and define completion as tagged traffic appearing under the specified service name in the UI and CLI; non-HTTP behavior remains unresolved.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- gcp, kubernetes
- Domain
- networking, observability
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100