If I read your question correctly maybe https://github.com/Shopify/toxiproxy can help?
On Tue, Mar 1, 2022 at 3:30 PM Aleksandar Lazic <[email protected]> wrote: > > Hi Shawn. > > On 01.03.22 23:09, Shawn Heisey wrote: > > I was thinking about ways to help pinpoint problems a client is having > connecting to services. And a thought > > occurred to me. > > > > Is there any kind of software available that can stand up a broken HTTP > server, such that it is broken in very > > specific and configurable ways? > > > > Imagine a bit of software that can listen on a port and exhibit > configurable failure scenarios. Including but > > certainly not limited to these: > > > > * SSL negotiation issues > > * Simulate dropped packets by ignoring incoming packets or failing to > send outgoing packets. > > * Timeouts, delays, no response, or incorrect behavior at various phases: > > ** TCP > > ** SSL > > ** GET/HEAD/POST > > > > Does anything like this already exist? It would be an awesome > troubleshooting tool. Configure it to fail in some > > way, have a client try connecting to it with their software, and if they > get the same error that they do when trying > > it with the real server, then you've possibly pinpointed what the > problem on the real server is, without diving into > > logs or packet captures. And the client may not know anything about the > software they're using other than "it works > > fine connecting to XXX", making them an exceedingly unreliable source of > information. > > > > So I'm not interested in something that can analyze network traffic or > logs. I can already do that. I am imagining > > a server that can intentionally misbehave. > > > > And here's why I am asking my question on the haproxy mailing list: I > think haproxy itself would serve as the > > perfect starting point for this idea. Imagine having configuration > directives for haproxy that tell it to > > intentionally misbehave, either on the frontend or the backend. It > could run side by side with a production > > instance, on another port or on another machine, with a nearly identical > config to production that has misbehave > > configuration directives. > > > > Side note: I think haproxy would be a perfect fit at $DAY_JOB to replace > a couple of problematic pieces of software, > > but I until I understand better how that software is configured, I can't > mention it as a possible solution. I really > > like haproxy. Please keep up the good work. I'm looking for ways I can > contribute to the project's success. > > I don't know such a tool but this sounds like a interesting project Idea. > > Maybe some parts could be done via LUA but as HAProxy internally handle a > lot of errors it could be tricky to force > HAProxy do behave "weird" and not standard compliant. > http://www.arpalert.org/src/haproxy-lua-api/2.5/index.html > > As you can see in the repo from Tim https://github.com/TimWolla/h-app-roxy > that HAProxy and lua can be a quite powerful > combination. > > > Thanks, > > Shawn > > Regards > Alex > >

