You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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
The text was updated successfully, but these errors were encountered:
@yskopets do you have any thoughts on how existing trace libraries will work under Wasm? Is it reasonable to suspect that most of them will "just work" when built for a Wasm target and wrapped with an Envoy Wasm tracing ABI shim?
Is it reasonable to suspect that most of them will "just work" when built for a Wasm target and wrapped with an Envoy Wasm tracing ABI shim?
This would be optimal though I'm skeptical it's going to be easy to make this work. At a high level I think it's a great idea to start working on other extension types and see how we can make that work, especially as we navigate the envoy specific vs. non-envoy specific ABI.
My suggestion would be to start as @yskopets suggests and let's do a design proposal for an Envoy WASM tracing plugin ABI, and let's figure out where the process/design holes are. cc @jplevyak@PiotrSikora
Right now, Envoy has roughly 3 categories of tracers:
Envoy-agnostic (dynamic_ot)
Almost Envoy-agnostic (opencensus)
Envoy-native (datadog, lightstep, xray, zipkin)
So,
Envoy-agnostic tracers should "just work".
Almost Envoy-agnostic - opencensus - hard to say. OpenCensus is very unique.
Envoy-native tracers will definitely require some changes:
TLS logic should be completely removed from the tracer
it would be necessary for Envoy to expose to a Wasm extension parts of API like ClusterManager, Runtime::Loader, etc. So, it might be more reasonable to slightly redesign the tracer instead.
Title: design
Wasm
ABI for tracersContext:
Envoy
moved tolibc++
,dynamic_ot
-based tracers got broken because they were relying onC++
ABIC
ABI insteadWasm
ABIProposal:
Wasm
ABI for tracersWasm
upstreaming PRs, namely:envoy.tracers.v1alpha0
The text was updated successfully, but these errors were encountered: