envoyproxy/envoy

proposal: design Wasm ABI for tracing providers

Open

#10,563 opened on Mar 28, 2020

View on GitHub
 (3 comments) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
area/wasmdesign proposalhelp wanted

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

Title: design Wasm ABI for tracers

Context:

  • after Envoy moved to libc++, dynamic_ot-based tracers got broken because they were relying on C++ ABI
  • following that, a potential new tracing provider expressed its interest in C ABI instead
  • so, it seems that tracing providers could benefit from having their own Wasm ABI

Proposal:

  • Let's try to design Wasm ABI for tracers
  • Along the way, let's expand on ideas that came out of reviews for Wasm upstreaming PRs, namely:
    • ABI should be modular and complementary to proxy-wasm/spec
    • ABI should use versioning scheme similar to regular Envoy extensions, e.g. envoy.tracers.v1alpha0
    • ABI should support usage model consistent with regular Envoy extensions, e.g. it should be possible to have N instances of the same extension type each with a different configuration
    • ABI should be optimized for data passing from Envoy to the Wasm extension in just 1 function call

Contributor guide