hashicorp / hashicorp/consul

Consul Connect Envoy request mirroring

Open
#9,827 10 comments 6 reactions 0 assignees View on GitHub
help-wanted theme/connect theme/envoy/xds type/enhancement
Dominant language
Go
Stars
30.1k
Forks
4.6k
Avg merge
1d 18h
Merged PRs (30d)
39

Description

#### Feature Description

I would like to enable Envoy's request mirroring onto listeners (LDS) for silent traffic mirroring between clusters (CDS), while using Connect's XDS provider.

#### Use Case(s)

- green/blue roll-outs with active traffic sent to the opposite group to check for performance regressions
- stream of production traffic to a testing service for rapid development and load testing

#### Note

I am more than willing to PR this myself, I have looked through the Connect XDS codebase a bit but I am not confident on where exactly this code should go. If there are any pointers I will attempt to kick-start a PR on this.

Edit: As a small note "envoy request mirroring" brings up this blog post: https://blog.markvincze.com/shadow-mirroring-with-envoy/ -- from a requirements perspective I want to state that what we need is just about everything that's covered there. We could even cut out the % based traffic and just have "blast service (x) with 100% traffic, go for it."

Contributor guide

Open the contributing guide

Research direction

Start in the Connect XDS codebase, tracing how LDS and CDS are generated and use the linked shadow-mirroring article as the requirements reference. Done means Connect's XDS provider can configure silent Envoy request mirroring between clusters for the stated rollout and testing use cases; confirm the design with maintainers before coding.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems, infrastructure, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.