Comcast / Ravel

Apache License 2.0
7 stars 4 forks source link

Possible replacement for GoPacket #5

Open bediger4000 opened 4 years ago

bediger4000 commented 4 years ago

This probably isn't the best way to throw out an idea, but here we go...

Ravel uses Google's GoPacket packge (tgithub.com/google/gopacket) to collect stats about SYN, SYN+ACK, etc packets. If gopacket become a performance drag, it might be possible to get a performance boots from pfring

https://pkg.go.dev/github.com/google/gopacket/pfring?tab=doc

abgordon commented 4 years ago

Thanks for submitting and good to hear from you! I opened an issue that I see as a prerequisite for someone outside of the organization working on this (or anything): https://github.com/Comcast/Ravel/issues/6

Interesting idea, gopacket has not been recognized as a performance bottleneck but we haven't done any strict benchmarking. The Hyperloglog lib needs to be removed (https://github.com/Comcast/Ravel/pull/13), around 500k-750k PPS load it causes shared-map panics, addition of mutex slows it to the point of not reporting prometheus metrics.

Flow statistics produced by that are deemed low-value so we are removing that instead of further refactoring