/metalens

Stream-based visual programming language for systems observability

Primary LanguageRustOtherNOASSERTION

Metalens logo

Stream-based visual programming language for systems observability.

Metalens allows to build observability programs in a reactive and visual way. On Linux, these programs are compiled into eBPF and run in the kernel context, providing both efficiency and security.

WARNING: Currently, this repository contains only an experimental, throw-away proof-of-concept and the project is in the development stage.

Running the server

Docker

If you'd like to run the server using Docker, you need to build the image first.

For that, you need to switch the current directory to docker and run build-image.sh:

cd docker && ./build-images.sh

Then, from the root directory, run either docker/run-server.sh on Linux or docker/run-macos.sh on MacOS.

Linux

To build the project, you need to install the latest version of the Rust compiler first. Please follow the instructions at https://rustup.rs/.

To run the server, you need to have the CAP_BPF capabilities. Or you can simply run the server using sudo:

sudo cargo run

Running the front-end

cd frontend && \
  npm update && \
  npm start

The front-end should automatically connect to the WebSocket server that runs locally.

License

The core components are available under the terms of the Apache 2.0 license or the MIT license at your choice. The front-end code is distributed under the terms of GNU Affero General Public License.