Whamm: Reusable Monitoring and Testing Modules for WebAssembly

With the monitoring and debugging tool Whamm, developers access Wasm at runtime. Modules can be reused independently of the specific app.

listen Print view
Laptop with code lines

(Image: Zakharchuk/Shutterstock.com)

1 min. read

A new WebAssembly tool controls and analyzes Wasm applications at runtime. Developers use it to monitor, test, and debug Wasm apps. It analyzes resource usage of workloads, cache utilization, and adherence to security policies. Furthermore, it can access modules, components, and kernel events.

Whamm provides a specialized domain-specific language in the style of DTrace, which triggers actions when events occur under specific conditions. To integrate this code into the Wasm application at runtime, there are two approaches: either modify the application's bytecode or access it at the runtime level. The latter has the advantage that the application itself remains untouched, although this option depends on the engine's capabilities. The only one that currently allows such instrumentation at all, according to Whamm author Elizabeth Gilbert, is Wizard.

During engine injection, the monitoring module in the Wizard engine operates alongside the application being monitored.

(Image: ejrgilbert.github.io/whamm/)

Gilbert recommends that developers leverage the capabilities of engine injection for their projects and only implement requirements that go beyond this by modifying the bytecode.

Another advantage of engine injection is that these Whamm modules can be reused for other projects, as they are independent of the specific application.

More information about Whamm can be found on the GitHub page, in the documentation, or in a video of a talk by Gilbert at this year's KubCon.

Videos by heise

(who)

Don't miss any news – follow us on Facebook, LinkedIn or Mastodon.

This article was originally published in German. It was translated with technical assistance and editorially reviewed before publication.