dylibso / observe-sdk

Continuous runtime observablity SDKs to monitor WebAssembly code.
https://dev.dylibso.com/docs/observe/overview
Apache License 2.0
156 stars 7 forks source link

Add native support of Observe-SDK in wasmtime runtime #82

Open shivanshuraj1333 opened 1 year ago

shivanshuraj1333 commented 1 year ago

As discussed over a mail thread, if someone wants to monitor their wasmplugins running inside Envoy proxy which uses Wasmtime runtime, atm observe-sdk can't be used because the runtime is the default one and we can't modify it to have the observe-sdk embedded into it. Similar scenario happens when we use spin, since spin also uses wasmtime as wasm runtime.

One thing we can do that came out of a discussion with @nilslice is that, we can integrate observe-sdk in wasmtime and create/maintain a fork of wasmtime with builtin observe-sdk.

This issue is to track the discussion/work around this.

nilslice commented 1 year ago

Thank you, @shivanshu1333! We're working on this as we speak -- led by some research done by @zshipko. We'll update here soon!

zshipko commented 1 year ago

Hey, just wanted to drop in with an end of the week update - I'm still working on some of the changes needed for a synchronous version of the observe-sdk, I am mostly just doing a straight conversion from tokio to threads, but am getting to a point where I'm concerned about the number of threads we might be spawning so I want to get a better handle on that before moving forward.

I think I will be in a good position to start integrating with the wasmtime C api next week!

bhelx commented 1 year ago

Quick update here: We have a fork that modifies the Wasmtime C API to include the observe SDK, but we're still trying to figure out how to preserve the imports. The API is different enough from the rust API to cause some extra work.

calebschoepp commented 3 weeks ago

Hey, I'm wondering if this fork still exists?

nilslice commented 3 weeks ago

@calebschoepp - no, all interest in this moved to WAMR and we are not supporting wasmtime C API at the moment.