Zero-Code Instrumentation of an Envoy TCP Proxy Using eBPF

(sergiocipriano.com)

39 points | by sergiocipriano 2 hours ago

4 comments

  • otterley 1 hour ago
    Could you not have gotten all this information by changing the Envoy log format to add the required fields? In your blog post, you show the default log format, and suggest that there was no way whatsoever to get this data from the logs. But according to the documentation, Envoy has rich support for many additional fields including detailed latency statistics.

    I wonder if you added complexity to the architecture when a simple log format change would have sufficed.

    • sergiocipriano 43 minutes ago
      To my knowledge, Envoy does not provide this type of information for TCP proxying. I wanted request/response latency, but the available metrics are limited to connection-level information
      • otterley 41 minutes ago
        Why aren’t you using HTTP proxying if the underlying protocol is HTTP?

        TCP proxying, in my experience, is typically only used for routing TLS or other non-HTTP TCP requests. In the former case, the proxy should not be able to observe the requests and responses.

        • sergiocipriano 3 minutes ago
          We currently only provide TCP load balancers, so HTTP-level proxying was not an option. Since the customer was not using TLS, this solution worked.
  • chrisweekly 1 hour ago
    Great post, thanks for sharing! I appreciate all the details, including context for the problem, the complete setup, and the results. Bookmarked for future reference.
  • a012 2 hours ago
    I was also on the verge of installing OBI to troubleshoot networking issue on one of our clusters. So maybe next time there’s a similar incident
  • the_arun 1 hour ago
    Great article! What is the name of tool used for writing the block diagram?
    • ethaligan 58 minutes ago
      Judging by the font embedded in the SVG file, it looks like it was created using Excalidraw. It's a great tool if you're looking for that hand-drawn aesthetic!