Thats correct. The sub heading of the web page mentions monitoring for "local Docker containers". If you want production network monitoring then there are plenty of existing tools out there like Pixie or Kubeshark.
The intention is to sell this software in a similar way to Sublime Text. So a one-off fee for a perpetual license. The main difference from Sublime is that Trayce's source code is available. If GPL3 isn't compatible with such a model then I'll have to re-evaluate what license to use..
IANAL, but GPL3 is compatible with selling the software (see Linux distros). However, it forces you to open up the complete source code and it allows the users to fork and recompile it as they see fit (but they must also open up their changes if they distribute it).
Great question! What differentiates Trayce from other HTTP clients are:
- An ebpf-based network monitor which allows instant monitoring of HTTP(S), GRPC, MySQL, PostgreSQL. Most of those apps can only monitor HTTP using a proxy. Trayce does not use a proxy, it reads the traffic from the kernel layer.
- UI is based on Flutter, not Electron or any other browser-based framework.
Thanks. Looks awesome. You mention the Chrome network tab but you should also check out the Firefox network tab which is probably better and more powerful, for some more inspiration.
I won't explain what ebpf is because google can do a better job of that than me but essentially this program hooks into the low-level system calls being made by your programs, so its able to grab un-encrypted network traffic before its encrypted and sent over the network. "zero-configuration" here mean you dont have to do much manual configuration to get this working.
I'm using the term "low level system calls" loosely here since the poster asked for ELI5. Trayce actually uses a combination of kprobes for system calls and uprobes to monitor calls to OpenSSL or the Go crypto/tls package. More details are here: https://github.com/evanrolfe/trayce_agent/blob/main/docs/REA...
It looks[1] like github actions only run on amd64 hosts, so if you use a platform matrix like in this example[2] I am fairly certain it is running under qemu just based on the fact that is takes roughly 10 times longer to run. I am aware of Blaze[3] has arm64 runners.
If you are willing to pay for it, you can also setup a runner that uses AWS Graviton EC2 instances[4], we do that at my workplace for our multi architecture builds.
Are you running on Mac or Linux? What linux kernel version do you have in docker, run: `uname -r`. If you are using Mac with Docker Desktop then the first thing I would do is make sure thats on the latest version.